アプリインストール直後のUXを向上させる!AppsFlyerを使ったDeferred Deep Link
こんにちは!
株式会社Caratでロボキャリアアドバイザーアプリ「GLIT」のフロントエンド開発を担当している小笠原です。
早速ですがDeferred Deep Link (ディファードディープリンク)という機能をご存知でしょうか?
ディープリンクには馴染みがあってもDeferred Deep Linkは初めて聞くという方もいるかと思います。
今回GLITアプリにDeferred Deep Linkを実装したので、Deferred Deep Linkの概要とReact NativeアプリでAppsFlyerを使った実装方法をご紹介します!
ディープリンクとDeferred Deep Linkの違い
ディープリンクとは
Deferred Deep Linkの説明の前にまずディープリンクとはなんでしょうか?
ディープリンクとは「ユーザーをアプリ内コンテンツへ遷移させるリンク」のことで、一般的にウェブページやEメールのリンク、別のモバイルアプリなどから遷移することが多いです。
ディープリンク例:
iPhoneのSafariでウェブサイトを閲覧中にTwitterのリンクをタップ
Twitterアプリでリンク先のコンテンツが開く(※ Twitterアプリをインストール済みの場合)
Deferred Deep Linkとは
対してDeferred Deep Linkもディープリンクの一種であり、「ユーザーをアプリ内コンテンツへ遷移させるリンク」は同じですが、アプリインストール前であっても動作するところが異なります。
これはどういうことかと言うと上記のディープリンク例にあるように、ディープリンクはアプリがインストール済みの場合、ユーザーを誘導できるのですが、アプリがインストールされていない場合、アプリストアへ遷移させることしかできません。
しかしDeferred Deep Linkを使えば、アプリのインストール後にアプリを起動したタイミングでユーザーを任意のアプリ内コンテンツに遷移させることが可能です。
今回GLITで行ったDeferred Deep Link例:
iPhoneのSafariでGLIT Web版の求人ページを閲覧
求人ページのバナーからアプリをインストール
アプリを起動し、オンボーディングが完了するとWebで閲覧していた求人ページに遷移
AppsFlyerとは
AppsFlyerはモバイルアプリ広告の効果計測及び最適化のためのツールです。
イスラエル発の企業が開発しており、世界最大のマーケットシェアを持っています。
日本語にも対応していて日本のサービスにも導入しやすいです。
AppsFlyerを使ったDeferred Deep Linkの実装
前提条件
React Nativeアプリがある
AppsFlyerプラグインが導入されている
AppsFlyerプラグインの導入方法を知りたい方はこちらを参照してください。
https://support.appsflyer.com/hc/ja/articles/217108646-React-Nativeプラグインの概要
Deferred Deep Linkの構造
Deferred Deep Linkは下記の構造によって実現されます。
カスタムアトリビューションリンクのパラメータと値をカスタムリンクに含める
deep_link_value
[任意] deep_link_sub1
ユーザーがカスタムリンクをクリックすると、AppsFlyerにパラメータの値が送られる
ユーザーがアプリを起動時に上記のパラメータを取得する
取得したパラメータに応じてアプリ内のコンテンツに遷移させる
データ構成を決める
まずはカスタムアトリビューションリンクのパラメータの値を決めましょう。
起動時にどのようなハンドリングをしたいかでdeep_link_valueに入れる値を決めます。
deep_link_valueだけでは足りない場合、deep_link_sub1、deep_link_sub2といったパラメータも使うことができます。
アプリ内でコンバージョンデータを取得する
アプリ起動時にAppsFlyer SDKを用いて上記のパラメータの値を取得します。
下記のようにonInstallConversionData関数を実装することでdeep_link_value等の値を取得できます。
const onInstallConversionDataCanceller = appsFlyer.onInstallConversionData(
(res) => {
const isFirstLaunch = res?.data?.is_first_launch;
if (isFirstLaunch && JSON.parse(isFirstLaunch) === true) {
const deep_link_value = res.data.deep_link_value;
alert(`This is first launch and deep_link_value is ${deep_link_value}`);
} else {
alert('This is not first launch');
}
}
);
appsFlyer.initSdk(/*...*/);
取得したコンバージョンデータを元に特定のコンテンツを表示する等のハンドリングを追加します。
開発環境でテストする
エミュレータでDeferred Deep Linkの挙動をテストする場合は、下記のようにすればOKです。
開発用のカスタムリンクを作成する
エミュレータを起動し、開発用のカスタムリンクをクリック
App ID (iOSはbundle identifier、Androidはapplication id)を1で設定したものに合わせてアプリをビルド
3でビルドしたアプリを起動
onInstallConversionDataでパラメータが取得できているか確認
まとめ
今回はDeferred Deep Linkの概要とReact NativeでAppsFlyerを使って実装する方法をご紹介しました。
参考になりましたらぜひスキとフォローお願いします!
Caratでは下記職種の採用活動も行っているので、ご興味あれば気軽にDM等でご連絡ください。
この記事が気に入ったらサポートをしてみませんか?