測定 SDK で遅延ディープリンクを有効にする

ディープリンクを作成したら、アプリ キャンペーンで使用できるように、測定 SDK でそのディープリンクを有効にする必要があります。

この記事では、サポート対象サードパーティの App Attribution Partner(AAP)や最新の Firebase 向け Google アナリティクス(GA4F)SDK において、遅延ディープリンク(DDL)を有効にする方法を説明します。詳しくは、サードパーティのツールを使ってモバイルアプリのコンバージョンをトラッキングする方法をご覧ください。


始める前に

サポート対象 AAP で DDL を有効にするには、有効なディープリンクをその添付フィードに適切に含めるか、広告グループの DDL として送る必要があります。


手順

サポート対象の AAP で DDL を有効にする方法

DDL について、現在 Google がサポートしているサードパーティ AAP は次のとおりです。

  • Adjust
  • AppsFlyer
  • Branch
  • Kochava
  • Singular
: その他の AAP はそれぞれ異なる開発段階にあるため、AppsFlyer Onelink などのサードパーティのディープリンクや、その他の「スマートリンク」はサポート対象外です。DDL の有効化に関する最新情報については、各 AAP の担当者にお問い合わせください。

ご自身が選んだ AAP で DDL を有効にするには、次の手順を行います。

Adjust

Google 広告に対する DDL ポストバックは、追加設定不要で有効です。この設定を無効にするか、動作を変更したい場合は、遅延ディープリンクのコールバックを設定する必要があります。

AppsFlyer

  1. AppsFlyer で [Configuration > Integrated Partners] の順にクリックし、[Google Ads (AdWords)] を選択します。
  2. [Integration] タブで [Deferred deep linking with Google feeds] を有効にします。
  3. [Save integration] をクリックします。

Branch

DDL ポストバックを有効にするには、Branch により許可リストに登録されている必要があります。この機能を利用するには、Branch のサポートチームにお問い合わせください。

Kochava

[Perform Deeplink Request](ディープリンク リクエストを実施)の設定が有効であることを確認します。これは、Google 広告への DDL ポストバックを有効にするようにデフォルトで設定されています。

Singular

Google 広告に対する DDL ポストバックは、追加設定不要で有効です。

詳しくは、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 を設定できます。

curl "www.googleadservices.com/pagead/conversion/app/deeplink?&rdid=<<デバイスの広告 ID>>&id_type=adid&bundleid=<<アプリケーション パッケージ>>&deeplink=<<受信するディープリンク>>&ddl_test=1"

ディープリンクが正しく設定されたかどうかを確認するには、次のリクエストを使用してレスポンスを確認します。

curl "www.googleadservices.com/pagead/conversion/app/deeplink?&rdid=<<デバイスの広告 ID>>&id_type=adid&bundleid=<<アプリケーション パッケージ>>&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


関連リンク

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
検索
検索をクリア
検索を終了
メインメニュー
7910750788418815481
true
ヘルプセンターを検索
true
true
true
true
true
73067
false
false
false