admin管理员组文章数量:1604632
应用上架google play之后随之而来的问题是推广,多广告渠道投放后,如何区分用户是通过哪个渠道广告点击进来安装我们的应用。Google官方提供的有两种解决方案,我也是刚摸索清楚,于是想着记录下来:
一,通过installReferrer获取
1,集成installReffer
在app build.gradle文件中添加,我个人比较偏向于这种方式来集成,不要问我为什么,就是因为简单。但是弊端也是很明显的,相对于我介绍的第二种方式来说测试起来可能比较困难,有利有弊,根据自己的实际情况去权衡。
implementation ‘com.android.installreferrer:installreferrer:1.1’
2,上完整代码
*private void getConnect() {
mReferrerClient = InstallReferrerClient.newBuilder(this).build();
mReferrerClient.startConnection(installReferrerStateListener);
}
InstallReferrerStateListener installReferrerStateListener = new InstallReferrerStateListener() {
@Override
public void onInstallReferrerSetupFinished(int responseCode) {
switch (responseCode) {
case InstallReferrerClient.InstallReferrerResponse.OK:
// Connection established 已建立连接
ReferrerDetails response = null;
try {
response = mReferrerClient.getInstallReferrer();
if (response != null) {
response.getInstallReferrer();
response.getReferrerClickTimestampSeconds();
response.getInstallBeginTimestampSeconds();
mPresenter.uploadRefferInfo(response.getInstallReferrer(), response.getReferrerClickTimestampSeconds(), response.getInstallBeginTimestampSeconds());
MyPrefUtils.putString("reffer", response.getInstallReferrer());
}
Log.e("isFirst", response.getInstallReferrer() + "------>" + response.getInstallBeginTimestampSeconds() + "---------->" + response.getReferrerClickTimestampSeconds());
// MyToastUtil.showToast(response.getInstallReferrer());
} catch (RemoteException e) {
// Log.e("isFirst", e.getMessage());
MyPrefUtils.putString("reffer", "");
e.printStackTrace();
}
break;
case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
// API not available on the current Play Store app 已安装的Play Store应用程序不支持的Referrer API
// Log.e("isFirst", "FEATURE_NOT_SUPPORTED");
MyPrefUtils.putString("reffer", "");
break;
case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
// Connection could not be established 由不正确的用法引起的一般错误
MyPrefUtils.putString("reffer", "");
break;
}
}
@Override
public void onInstallReferrerServiceDisconnected() {
getConnect();
}
};*
[google官方参考文献](https://developer.android/google/play/installreferrer/library)
***国内很多手机没有自带或者安装google play,加入上面代码会回调 FEATURE_NOT_SUPPORTED状态中。所以测试前最好是先上梯子,安装个google play。到这里一切顺利,你应该就能拿到google play给你返回的默认值了,默认获取的信息为:utm_source=googleplay&utm_medium=organic***
二,通过analytics来获取
1,集成
implementation ‘com.google.android.gms:play-services-analytics:17.0.2’
2,老规矩上代码
//manifest文件中注册广播接收者
<receiver
android:name="com.berikanuang.android.main.ui.activity.PlayRefferReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
//service
<service
android:name="com.google.android.gms.analytics.CampaignTrackingService"
android:enabled="true"
android:exported="false" />
public class DemoRefferReceiver extends CampaignTrackingReceiver {
@Override
public void onReceive( Context context,Intent intent) {
String referrer = intent.getStringExtra("referrer");
MyToastUtil.showToast(referrer );
Log.e("ReferrerDemo", referrer);
}
}
写完上述代码,调试的话 在android studio控制台里面输入命令行,举个栗子:
adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n 你的组件名/你的包名.DemoRefferReceiver --es “referrer” “utm_source%3Dgoogle%26utm_medium%3Dbanner%26utm_term%3Drunning%252Bshoes%26utm_content%3Dtextlink%26utm_campaign%3Dspring_sale”
把里面的组件名,包名换成自己的就OK.
另外,我这里自己测试了下发送广播的方法,一样可以测试通过,比较简单:
//测试发送广播的接口
Intent intent = new Intent();
intent.setAction(“com.android.vending.INSTALL_REFERRER”);
intent.putExtra(“referrer”,“1232”);
intent.setComponent( new ComponentName( “组件名” ,
“包名.DemoRefferReceiver”) );
sendBroadcast(intent);
然后去你的BroadCastReceiver里面去看有没有收到消息吧~
前方有坑: 重要的事情说三遍~
我上面提到的组件名,是appId ,网上一些不良博客上面都写的包名。
我上面提到的组件名,是appId ,网上一些不良博客上面都写的包名。
我上面提到的组件名,是appId ,网上一些不良博客上面都写的包名。
最近在研究google play上面的数据买点数据fireBase的接入,写一篇博客记录一下吧,希望这篇文章对大家有帮助
版权声明:本文标题:Android应用GooglePlay广告推广渠道来源区分功能的接入 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728464980a1159345.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论