Google Analytics获取广告渠道信息

最近公司的项目需要用Google Analytics来获取广告渠道信息,老大当时把该需求丢给我时,我也是一脸懵逼,摸索了好几天,才摸清一丢丢套路。想着以后可能还会用到,就随笔记下,好了,废话不多说了,come baby!

首先

-获取google-services.json放至src目录
-在项目级build.gradle下放入google-services,一定要是最新版本

dependencies {
        classpath 'com.google.gms:google-services:3.1.0'
}

-在应用级build.gradle末尾加上

apply plugin: 'com.google.gms.google-services'

-在应用级build.gradle的dependencies中加上

compile 'com.google.android.gms:play-services-analytics:11.0.4'
compile 'com.google.android.gms:play-services-places:11.0.4'
compile 'com.google.android.gms:play-services-ads:11.0.4'

其次

在AndroidManifest.xml里面加上:
<receiver android:name=".receiver.PlayCampaignReceiver"
   android:enabled="true"
   android:exported="true">
   <intent-filter>
      <action android:name="android.intent.action.EDIT"/>
      <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>
<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" />
<receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" 
 android:enabled="true">
   <intent-filter>
     <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
   </intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false"/>

com.google.android.gms.analytics.CampaignTrackingReceiver
com.google.android.gms.analytics.CampaignTrackingService
com.google.android.gms.analytics.AnalyticsReceiver
com.google.android.gms.analytics.AnalyticsService
以上四个配置是Google官方需要配置的
PlayCampaignReceiver是我自定义用来接收GooglePlay通过CampaignTrackingReceiver中的<action android:name="com.android.vending.INSTALL_REFERRER" />的“referrer”
发送渠道消息,所以com.android.vending.INSTALL_REFERRER一定要写。

最后

在自定义的PlayCampaignReceiver中接收“referrer”参数
public class PlayCampaignReceiver extends BroadcastReceiver {
    private static final String LOGTAG = "PlayCampaignReceiver";

    /**
     * anid:广告网络
     * utm_source:广告系列来源(原始引荐来源,例如 google、citysearch、newsletter4)
     * utm_medium:广告系列媒介(营销媒介,例如 cpc、banner、email)
     * utm_term:广告系列字词(付费关键字,例如 running+shoes)
     * utm_content:广告系列内容(广告特有的内容,用于区分不同的广告)
     * utm_campaign:广告系列名称(产品、促销代码或标语)
     */

    @Override
    public void onReceive(Context context, Intent intent) {
        new CampaignTrackingReceiver().onReceive(context, intent);
        Log.i(LOGTAG, "onReceive intent=" + intent);
        //处理referrer参数
        String referrer = "";
        Bundle extras = intent.getExtras();
        if (extras != null) {
            referrer = extras.getString("referrer");
            // 得到相应的广告信息 是url 参数格式,需要解析
            // 格式: utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=11
            Toast.makeText(context, "谷歌的Referer is: " + referrer, Toast.LENGTH_SHORT).show();
        }

    }
}

测试

通过adb测试,在Android\sdk\platform-tools中打开cmd即可
adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n 你的包名/你的包名.receiver.PlayCampaignReceiver --es "referrer" "utm_source%3Dgoogle%26utm_medium%3Dbanner%26utm_term%3Drunning%252Bshoes%26utm_content%3Dtextlink%26utm_campaign%3Dspring_sale"
adb测试结果
D:\AppData\Local\Android\sdk\platform-tools>adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n 应用包名/应用包名.receiver.PlayCampaignReceiver --es referrer  "'utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign'"
Broadcasting: Intent { act=com.android.vending.INSTALL_REFERRER cmp=应用包名/.receiver.PlayCampaignReceiver (has extras) }
Broadcast completed: result=0
打印logcat(需要真机接入USB才能打印)
 adb logcat -v time -s GAv4
将应用发送到Google play测试

这个时候,你就需要Google的 Google Play 网址构建工具了,然后官网会告诉你怎么填写信息,如何测试。

注意:只有通过生成工具生成出来的二维码或者点击网址下载下来的应用才能获取渠道信息。当然这个信息就是你通过Google Play 网址构建工具生成出来的信息,只有在下载下来第一次启动应用的时候才会获取到,有时候会不稳定,可能获取不到也有可能,如果刷新了你刚生成的信息,也有可能获取不到。我自定义的广播一直获取不到,我就在应用进来的时候手动调用了一下广播,具体想怎么实现,看需求和个人吧。
Google Play测试结果
10-28 21:52:03.797 D/GAv4    (32036): Received installation campaign: adNetworkId=applovin, content=textlink, keyword= running+shoes, medium=banner, name=spring_sale, source=applovin
10-28 21:52:03.807 W/GAv4    (32036): Ignoring duplicate install campaign
10-28 21:52:40.027 W/GAv4    (32036): CampaignTrackingReceiver received unexpected intent without referrer extra
10-28 21:53:41.307 I/GAv4    (32459): Google Analytics 11.0.20 is starting up. To enable debug logging on a device run:
10-28 21:53:41.307 I/GAv4    (32459):   adb shell setprop log.tag.GAv4 DEBUG
10-28 21:53:41.307 I/GAv4    (32459):   adb logcat -s GAv4

结尾

好啦,终于哔哩啪啦写完了,这个功能,我也是测试了两三天,注意需要翻墙的哦。如果有和我一样有这样需求的同学,送给你们,也送给我自己。
Google play 网址构建工具
Google Analytics官网

将 Google Analytics(分析)添加到 Android 应用中

Google play服务

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容