在衡量 SDK 中启用延迟深层链接

创建深层链接后,您需要先在衡量 SDK 中进行启用,才能在应用广告系列中使用这些链接。

本文介绍了如何在支持的第三方应用归因合作伙伴 (AAP) 或最新版 Google Analytics for Firebase (GA4F) SDK 中启用延迟深层链接 (DDL)。了解如何使用第三方工具跟踪移动应用转化情况


准备工作

若要在受支持的 AAP 中启用 DDL,您必须拥有有效的深层链接,这些链接已正确包含在附加的 Feed 中或已作为广告组 DDL 提交。


操作说明

如何在支持的 AAP 中启用 DDL

Google 目前支持用于 DDL 的第三方 AAP 如下所示:

  • Adjust
  • AppsFlyer
  • Branch
  • Kochava
  • Singular
注意:其他 AAP 正处于不同的开发阶段。不支持 AppsFlyer Onelink 等第三方深层链接以及其他“智能链接”。如需了解 DDL 启用情况的最新动态,请与相应的 AAP 代表联系。

请按照以下步骤在您选择的 AAP 中启用 DDL。

Adjust

无需进行其他设置即可启用向 Google Ads 的 DDL 回传。如果您要停用或更改这一行为,则需要设置延迟深层链接回调。

AppsFlyer

  1. 在 AppsFlyer,依次点击 Configuration > Integrated Partners(配置 > 集成的合作伙伴),然后选择 Google Ads (Adwords)
  2. Integration(集成)标签页下,启用“Deferred deep linking with Google feeds”(采用 Google 信息流的延迟深层链接)。
  3. 点击 Save integration(保存对接)。

Branch

您必须被 Branch 列入许可名单才能启用 DDL 回传。请与 Branch 支持团队联系,以获取对该功能的访问权限。

Kochava

确保已启用“执行深层链接请求”设置。此设置默认设为启用向 Google Ads 的 DDL 回传。

Singular

无需进行其他设置即可启用向 Google Ads 的 DDL 回传。

不妨详细了解如何通过应用归因合作伙伴跟踪应用转化情况

如何在 GA4F SDK 中启用 DDL

您可以按以下步骤,使用 Android 17.2.0 或更高版本,在 GA4F SDK 中启用 DDL:

在 GA4F SDK 中启用 DDL 的步骤

1. 将您的应用配置为使用 Google Analytics for Firebase

在应用 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. 获取深层链接

在主要启动 activity 类中设置 SharedPreferences 更改监听器,在 DDL 可用时触发。如果您是之后才在应用生命周期中注册监听器,系统可能已检索深层链接。在这种情况下,监听器将不会触发,您可以通过读取 SharedPreferences 来直接查询深层链接的值。

GA4F 会将深层链接储存在 SharedPreferences 文件 google.analytics.deferred.deeplink.prefs 中,使用的键为 deeplink。GA4F 还会在同一个 SharedPreferences 文件中,使用 timestamp 键来存储广告点击时间戳。请注意,时间戳的格式为微秒(即毫秒后跟一点和微秒);如果类型为 Double,就会使用 Long 存储在 SharedPreferences 中。如需解析实际值,请使用 Double.longBitsToDouble(...)

示例

/**
* 应用的主要启动 activity。
*/

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 中检查日志消息显示的 gmp_version 是否至少为 18200。搜索关键字 deferred 将会过滤 Google Analytics for Firebase 中与该功能相关的所有调试消息。

示例

D/FA: Deferred Deep Link feature enabled.
FA-SVC:
正在上传 data. app, uncompressed size, data: <<应用 文件包>>,

gmp_version:
18200


相关链接

该内容对您有帮助吗?

您有什么改进建议?
搜索
清除搜索内容
关闭搜索框
主菜单
11853163812695530858
true
搜索支持中心
true
true
true
true
true
73067
false
false
false