前言
通常为了提高App的下载安装量我们会在各个渠道投放广告,可是投放了广告之后,除了第三方平台提供给我们参考数据之外,我们该如何得知各个渠道的一个投放效果呢?今天就跟大家讲讲如何获取到推广来源的信息进行统计
生成推广链接
首先我们知道,如果我们要在GooglePlay投放广告,那么就会提供给用户一个点击广告的入口和跳转GooglePlay的下载地址,而这里我们可以通过《Google Play 网址构建工具》生成前往GooglePlay的下载地址,这里需要工程师提供应用ID(包名),其他参数由运营同学按照自己的需求设定,例如设置参数广告的来源、媒介以及关键词等等…
https://play.google.com/store/apps/details?id=com.example.application
&referrer=utm_source%3Dgoogle
%26utm_medium%3Dcpc
%26utm_term%3Drunning%252Bshoes
%26utm_content%3Dlogolink
%26utm_campaign%3Dspring_sale
当用户通过访问这个下载地址就会跳转到Play商店,等用户进行安装完成App之后,在启动App的时候程式就可以顺理成章的拿到这些参数,然后统计到安装的来源以及区分下载渠道了。
实现统计来源
利用 Google Play 广告系列衡量功能,我们可以了解是哪些广告系列和流量来源将用户引荐到 Google Play 商店下载您的应用。Google建议所有开发者都实现 Google Play 商店广告系列衡量功能。
当我们的应用在 Google Play 商店中被下载时,Play 商店应用会在我们的应用安装期间向其广播一条 INSTALL_REFERRER Intent。如果将用户引荐到您应用的 Google Play 商店页面的链接中有 referrer 参数,此 Intent 就会包含这个参数的值。
1.使用 Android 版 Google Analytics(分析)SDK v4 来衡量广告系列和流量来源
通过使用 SDK 中提供的 BroadcastReceiver内置接收器实现 Google Play 商店广告系列衡量功能,需要将 Google Analytics(分析)接收器添加到 AndroidManifest.xml 文件,相关代码:
<application>
<!-- Used for Google Play Store Campaign Measurement-->
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.CampaignTrackingService"
android:enabled="true"
android:exported="false" />
</application>
2.使用自定义广播接收器来衡量广告系列和流量来源(已弃用)
当用户在Play商店安装应用成功之后,我们的App第一次启动会收到一条“com.android.vending.INSTALL_REFERRER”广播,我们可以通过该广播接收到应用的referrer值,相关代码:
自定义广播接收参数
public class InstallReferrerBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = "" + intent.getAction();
if (action.equals("com.android.vending.INSTALL_REFERRER")) {
Bundle extras = intent.getExtras();
if (extras != null) {
String referrer = extras.containsKey("referrer") ? extras.getString("referrer") : "";
// 格式:utm_source=&utm_medium=&utm_term=&utm_content=
}
}
}
}
在AndroidManifest.xml里面注册广播
<!-- 自定义安装广播监听 -->
<receiver
android:name=".receiver.InstallReferrerBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
3.使用Play Install Referrer API来衡量广告系列和流量来源
Google在2017年推出了Play Install Referrer API,该API为应用程序提供了一种可靠而强大的机制,可以直接从Play商店检索推荐信息。与旧的install_referrer意向广播相比,这是一大进步,因此许多开发人员立即进行了切换。现在,由于已被新的API取代,Google决定在2020年3月1日弃用install_referrer意图广播机制。在此日期之后,新版本的Play商店将在应用安装后不再广播install_referrer意图。
Install Referrer API还提供了更好的性能,在我们的应用程序和Play商店之间使用安全的通信渠道,并提供了针对欺骗和归因欺诈的更强大的解决方案。如何使用Install Referrer API?相关代码:
将以下行添加到应用的 build.gradle 文件的依赖项部分:
dependencies {
...
implementation 'com.android.installreferrer:installreferrer:2.1'
}
连接到 Google Play,获取安装引荐来源
private InstallReferrerClient mReferrerClient;
private void initInstallReferrer() {
mReferrerClient = InstallReferrerClient.newBuilder(this).build();
mReferrerClient.startConnection(new InstallReferrerStateListener() {
@Override
public void onInstallReferrerSetupFinished(int responseCode) {
switch (responseCode) {
case InstallReferrerClient.InstallReferrerResponse.OK:
// Connection established.(连接已建立)
try {
/**
* utm_source: 广告系列来源,用于确定具体的搜索引擎、简报或其他来源
* utm_medium: 广告系列媒介,用于确定电子邮件或采用每次点击费用 (CPC) 的广告等媒介
* utm_term: 广告系列字词,用于付费搜索,为广告提供关键字
* utm_content: 广告系列内容,用于 A/B 测试和内容定位广告,以区分指向相同网址的不同广告或链接
* utm_campaign: 广告系列名称,用于关键字分析,以标识具体的产品推广活动或战略广告系列
* gclid: Google Ads 自动标记参数,用于衡量广告。此值会动态生成,请勿修改
*/
ReferrerDetails response = mReferrerClient.getInstallReferrer();
// 已安装软件包的引荐来源网址
String installReferrer = response.getInstallReferrer();
// 引荐来源网址点击事件发生时的时间戳(以秒为单位)
long referrerClickTimestampSeconds = response.getReferrerClickTimestampSeconds();
// 安装开始时的时间戳(以秒为单位)
long installBeginTimestampSeconds = response.getInstallBeginTimestampSeconds();
// 用于检查用户在过去 7 天内是否曾与应用的免安装体验互动
boolean instantExperienceLaunched = response.getGooglePlayInstantParam();
} catch (RemoteException e) {
e.printStackTrace();
}
break;
case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
// API not available on the current Play Store app. (当前Play商店应用中不提供API)
break;
case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
// Connection couldn't be established. (无法建立连接)
break;
}
// 断开服务连接,获取引荐来源信息后,请对 InstallReferrerClient 实例调用 endConnection() 方法来断开连接。断开连接将有助于避免出现泄露和性能问题。
mReferrerClient.endConnection();
}
@Override
public void onInstallReferrerServiceDisconnected() {
// Try to restart the connection on the next request to (尝试在下一个请求重新启动连接)
// Google Play by calling the startConnection() method. (通过调用startConnection方法)
}
});
}
结语
通过Google Play 广告系列归因,可以帮助我们清楚的知道是哪些广告系列、网站和其他应用将用户引荐到 Google Play 商店下载我们的应用,这会让我们更清楚的知道各个渠道的广告投放效果,这也是App安装来源追踪技术在渠道推广中的意义和价值所在。