广告系列衡量 - Android SDK v2(旧版)

本文档简要介绍了如何使用 Android 版 Google Analytics(分析)SDK v2 来衡量广告系列和流量来源。

概览

在 Google Analytics(分析)中衡量广告系列可让您将应用内的用户活动归因于特定的广告系列和流量来源,从而帮助您提高营销渠道的价值。

Android 版 Google Analytics(分析)SDK 提供了以下几种广告系列衡量方式:

  • Google Play 广告系列衡量 - 了解是哪些广告系列、网站和应用将用户引荐到您应用的 Google Play 商店页面下载您的应用。
  • 衡量常规广告系列 - 了解是哪些广告系列或流量来源启动了您的应用(已安装您的应用)。
  • 衡量引荐流量 - 了解是哪个引荐流量来源(如网站或其他应用)在安装您的应用后启动了您的应用。

下文将介绍何时及如何在您的应用中实现每种广告系列衡量功能。

Google Play 广告系列衡量

利用 Google Play 广告系列衡量功能,您可以了解是哪些广告系列和流量来源将用户引荐到 Google Play 商店下载您的应用。我们建议所有开发者实现 Google Play 商店广告系列衡量功能。

Google Play 广告系列衡量机制的运作方式

Google Play 商店广告系列衡量功能需要使用广告系列参数,以便在您的应用从 Google Play 商店下载时将广告系列和流量来源信息传递到您的应用。

下文详尽地说明了 Google Play 广告系列衡量功能的工作原理:

  1. 用户点击广告、网站或应用中的链接后,转到您应用的 Google Play 商店页面。该链接使用广告系列参数进行标记。
  2. 用户下载并安装您的应用后,Google Play 商店会在包含这些广告系列参数的设备上广播 INSTALL_REFERRER intent。
  3. 然后,您的应用将使用下方提供的 BroadcastReceiver 对象来响应该 intent,读取广告系列参数并使用这些参数更新 Google Analytics(分析)广告系列信息。

实现 Google Play 广告系列衡量

要实施 Google Play 商店广告系列衡量,请按以下步骤操作:

1. 将新的 BroadcastReceiver 添加到 AndroidManifest.xml 文件中

以下 BroadcastReceiver 允许应用在安装您的应用后响应 Google Play 商店的 INSTALL_REFERRER intent 广播。按如下方式将其添加到 AndroidManifest.xml 文件中:

<!-- Used for install referral measurement-->
<service android:name="com.google.analytics.tracking.android.CampaignTrackingService"/>
<receiver android:name="com.google.analytics.tracking.android.CampaignTrackingReceiver" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>

2. 将广告系列参数添加到 Google Play 商店链接中

广告系列参数用于将将用户引荐到您应用的 Google Play 商店页面的广告系列或流量来源的相关信息传递到应用的 Google Analytics(分析)实现中。

要了解如何构建广告系列参数字符串,请使用 Google Play 网址构建工具,或参阅广告系列参数参考部分。

构建好广告系列参数字符串后,请将其作为 referrer 参数的值添加到 Google Play 商店网址中,如下例所示:

https://play.google.com/store/apps/details?id=com.example.app
&referrer=utm_source%3Dgoogle
%26utm_medium%3Dcpc
%26utm_term%3Drunning%252Bshoes
%26utm_content%3DdisplayAd1
%26utm_campaign%3Dshoe%252Bcampaign

Google Play 商店只会将 referrer 参数的值传递给应用的 Google Analytics(分析)实现,因此请务必确保它显示在您的 Google Play 商店链接中。

衡量常规广告系列

常规广告系列衡量可用于将广告系列或流量来源与已安装您的应用的用户关联起来。

例如,如果您通过投放付费广告系列来覆盖已安装您应用的现有用户,则可以使用常规广告系列衡量功能来衡量该广告系列带来的哪些应用启动。

实施常规的广告系列衡量

若要为常规广告系列设置广告系列值,请调用 setCampaign() 并将广告系列参数字符串作为参数传递。

典型的实现可能会在应用启动时调用 setCampaign(),并检查启动它的 intent,以查看是否存在有效的广告系列参数:

public class SampleActivity extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the intent that started this Activity.
    Intent intent = this.getIntent();
    Uri uri = intent.getData();

    // Call setContext() here so that we can access EasyTracker
    // to update campaign information before calling activityStart().
    EasyTracker.getInstance().setContext(this);

    if (intent.getData() != null) {
      EasyTracker.getTracker().setCampaign(uri.getPath());
    }
    ... // The rest of your onCreate() code.
  }

  @Override
  public void onStart() {
    super.onStart();
    EasyTracker.getInstance().activityStart(this);
    ... // The rest of your onStart() code.
  }


  @Override
  public void onStop() {
    super.onStop();
    EasyTracker.getInstance().activityStop(this);
    ... // The rest of your onStop() code.
  }
}

衡量引荐

引荐来源衡量与其他类型的广告系列衡量类似,可让您衡量在用户的设备上启动了您应用的引荐来源。不过,引荐流量衡量使用的是“google.com”或“myOtherApp”等简单字符串,而不是广告系列参数字符串。

设置引荐来源(如“google.com”)时,来源维度会设置为“google.com”,而媒介维度会隐式设置为“referrer”

与广告系列衡量一样,设置引荐来源在默认情况下会使下一次发送调用启动新会话。

在以下代码段中,我们假设您已使用 Google Analytics(分析)广告系列参数或描述引荐来源的简单 referrer 参数标记了任何会打开您应用的链接。如果 referrer 参数不存在,且缺少其他广告系列参数,则系统会使用新的引荐来源更新用户的广告系列信息:

public class SampleActivity extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the intent that started this Activity.
    Intent intent = this.getIntent();
    Uri uri = intent.getData();

    // Call setContext() here so that we can access EasyTracker
    // to update campaign information before activityStart() is called.
    EasyTracker.getInstance().setContext(this);

    if (uri != null) {
      if(uri.getQueryParmeter("utm_source") != null) {    // Use campaign parameters if avaialble.
        EasyTracker.getTracker().setCampaign(uri.getPath());
      } else if (uri.getQueryParameter("referrer") != null) {    // Otherwise, try to find a referrer parameter.
        EasyTracker.getTracker().setReferrer(uri.getQueryParameter("referrer"));
      }
    }
  }


  @Override
    public void onStart() {
    super.onStart();
    EasyTracker.getInstance().activityStart(this);
    ... // The rest of your onStart() code.
  }


  @Override
  public void onStop() {
    super.onStop();
    EasyTracker.getInstance().activityStop(this);
    ... // The rest of your onStop() code.
  }
}

已知问题

  • CampaignTrackingReceiver 的 javadoc 在其用法示例中使用了不正确的类路径。如需了解正确的用法,请参阅实现 Google Play 广告系列衡量
  • 每个应用只能指定一个 BroadcastReceiver 类。如果您需要整合来自不同 SDK 的两个或多个 BroadcastReceivers,则需要创建自己的 BroadcastReceiver 类,用于接收所有广播并为每种类型的广播调用相应的 BroadcastReceivers
  • Google Play 广告系列衡量目前不支持从 Play 商店网页版发起的“网站到设备”安装。

广告系列参数

广告系列参数用于传递将用户带到您的应用中的流量来源和广告系列的相关信息。

  • 在一般的广告系列衡量中,未经编码的广告系列参数字符串会作为参数传递给 setCampaign()
  • 在 Google Play 广告系列衡量中,指向您应用的 Play 商店页面的所有网址都会附加一个 referrer 参数(使用经过编码的广告系列参数字符串作为其值)。

以下示例展示了可用于常规广告系列衡量且未经编码的有效广告系列字符串:

"utm_campaign=my_campaign&utm_source=google&utm_medium=cpc&utm_term=my_keyword&utm_content=ad_variation1"

下表列出了可在 Google Play 或常规广告系列衡量中使用的可用广告系列参数。

参数 说明 示例
utm_campaign 广告系列名称,用于关键字分析,以标识具体的产品推广活动或战略广告系列。 utm_campaign=spring_sale
utm_source 广告系列来源,用于确定具体的搜索引擎、简报或其他来源。 utm_source=google
utm_medium 广告系列媒介,用于确定电子邮件或采用每次点击费用 (CPC) 的广告等媒介。 utm_medium=cpc
utm_term 广告系列字词,用于付费搜索,为广告提供关键字 utm_term=running+shoes
utm_content 广告系列内容,用于 A/B 测试和内容定位广告,以区分指向相同网址的不同广告或链接 utm_content=logolink
utm_content=textlink
gclid Google Ads 自动标记参数,用于衡量 Google Ads。此值会动态生成,请勿修改。

Google Play 网址构建工具

请使用 Google Play 网址构建工具生成网址,以进行 Google Play 广告系列衡量。