ディープリンクを作成したら、アプリ キャンペーンで使用できるように、測定 SDK でそのディープリンクを有効にする必要があります。
この記事では、サポート対象サードパーティの App Attribution Partner(AAP)や最新の Firebase 向け Google アナリティクス(GA4F)SDK において、遅延ディープリンク(DDL)を有効にする方法を説明します。詳しくは、サードパーティのツールを使ってモバイルアプリのコンバージョンをトラッキングする方法をご覧ください。
始める前に
サポート対象 AAP で DDL を有効にするには、有効なディープリンクをその添付フィードに適切に含めるか、広告グループの DDL として送る必要があります。
手順
サポート対象の AAP で DDL を有効にする方法
DDL について、現在 Google がサポートしているサードパーティ AAP は次のとおりです。
- Adjust
- AppsFlyer
- Branch
- Kochava
- Singular
ご自身が選んだ AAP で DDL を有効にするには、次の手順を行います。
Adjust
AppsFlyer
- AppsFlyer で [Configuration > Integrated Partners] の順にクリックし、[Google Ads (AdWords)] を選択します。
- [Integration] タブで [Deferred deep linking with Google feeds] を有効にします。
- [Save integration] をクリックします。
Branch
Kochava
Singular
詳しくは、App Attribution Partner によるアプリ コンバージョンのトラッキングについてをご覧ください。
GA4F SDK で DDL を有効にする方法
GA4F SDK で DDL を有効にするには、Android バージョン 17.2.0 以降のバージョンを使用します。手順は次のとおりです。
GA4F SDK で DDL を有効にする手順
1. Firebase 向け Google アナリティクスを使用するようにアプリを設定する
アプリの build.gradle で、firebase-core
へのすべての依存関係を削除します。次に、firebase-analytics
バージョン 17.2.0 以降に対する依存関係を追加または更新します。下の例では、SDK の新しいバージョンを使用しています。
dependencies {
...
implementation 'com.google.firebase:firebase-analytics:21.0.0'
...
}
2. アプリでこの機能を有効にする
アプリケーション マニフェスト内のアプリケーション タグに、次のメタデータタグを追加します。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myawesome.app">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainActivity">
<!-- 遅延ディープリンクを有効にするために追加する値 -->
<meta-data android:name="google_analytics_deferred_deep_link_enabled" android:value="true"/>
<activity
android:name=".MainActivity" >
</activity>
</application>
</manifest>
この機能を有効にすると、設定した対応キャンペーンでアプリが起動されたときに、設定したディープリンクが GA4F によって取得されます。
3. ディープリンクを取得する
メインの起動アクティビティ クラス内に SharedPreferences 変更リスナーをセットアップします。これは、DDL が使用可能になるとトリガーされます。アプリのライフサイクルの後半でリスナーを登録する場合は、ディープリンクがすでに取得されている可能性があります。その場合リスナーはトリガーされないため、SharedPreferences を読み取ることでディープリンクの値をすぐに確認できます。
GA4F では、SharedPreferences ファイルの google.analytics.deferred.deeplink.prefs
で、キー deeplink
とともにディープリンクが保存されます。同じ SharedPreferences ファイルで、広告クリックのタイムスタンプもキー timestamp
とともに保存されます。タイムスタンプはマイクロ秒形式(ミリ秒の後にドットとマイクロ秒が続く)で表され、型が Double のときは Long を使用して SharedPreferences に保存されます。実際の値を解析するには、Double.longBitsToDouble(...) を使用します。
例:
/**
* アプリのメインの起動アクティビティ。
*/
public class MainActivity extends AppCompatActivity {
private SharedPreferences preferences;
private SharedPreferences.OnSharedPreferenceChangeListener deepLinkListener;
@Override
protected void onStart() {
super.onStart();
preferences.registerOnSharedPreferenceChangeListener(deepLinkListener);
}
@Override
protected void onStop() {
super.onStop();
preferences.unregisterOnSharedPreferenceChangeListener(deepLinkListener);
deepLinkListener = null;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
preferences =
getSharedPreferences("google.analytics.deferred.deeplink.prefs", MODE_PRIVATE);
deepLinkListener = (sharedPreferences, key) -> {
Log.d("DEEPLINK_LISTENER", "Deep link changed");
if ("deeplink".equals(key)) {
String deeplink = sharedPreferences.getString(key, null);
Double cTime = Double.longBitsToDouble(sharedPreferences.getLong("timestamp", 0));
Log.d("DEEPLINK_LISTENER", "Deep link retrieved: " + deeplink);
showDeepLinkResult(deeplink);
}
};
}
public void showDeepLinkResult(String result) {
String toastText = result;
if (toastText == null) {
toastText = "The deep link retrieval failed";
} else if (toastText.isEmpty()) {
toastText = "Deep link empty";
}
Toast.makeText(MainActivity.this, toastText, Toast.LENGTH_LONG).show();
Log.d("DEEPLINK", toastText);
}
}
4. 診断テスト用のデータを準備する
実装を検証するには、テストに使用するデバイスの広告 ID を取得します。次のコマンドを使用すると、アプリが受け取る DDL を設定できます。
"www.googleadservices.com/pagead/conversion/app/deeplink?&rdid=<<デバイスの広告 ID>>&id_type=adid&bundleid=<<アプリケーション パッケージ>>&deeplink=<<受信するディープリンク>>&ddl_test=1"
ディープリンクが正しく設定されたかどうかを確認するには、次のリクエストを使用してレスポンスを確認します。
このテスト用ディープリンクは 24 時間後に期限切れになります。テスト用ディープリンクの有効期限が切れた場合は、この手順を繰り返します。
5. テスト用 DDL を取得するためにテストモードを有効にする
デバイスでテストを開始するために DDL テストモードを有効にします。
adb shell setprop debug.deferred.deeplink <<アプリケーション パッケージ>>
次に、ご利用のデバイスでデバッグモードを有効にします。アプリの使用を開始して、Logcat のログ メッセージに 18200
以降の gmp_version
が表示されているかチェックします。キーワード「deferred
」を検索すると、Firebase 向け Google アナリティクスからその機能に関連するすべてのデバッグ メッセージがフィルタされます。
例:
D/FA: Deferred Deep Link feature enabled.
FA-SVC: Uploading data. app, uncompressed size, data: <<アプリケーション パッケージ>>,
…
gmp_version: 18200