Play商店是Android的官方商店,虽然在大陆无法访问,但是这里依旧是重要的版本发布市场,尤其是对于那些国际化的产品。对于拓宽海外市场,付费推广就是一部分不可忽视的措施。而Android付费推广必然就是Play商店推广。本文主要从技术方面讲解,如何统计推广数据,以及在开发过程中遇到的一些疑问和困惑。
想要进行推广,必须有推广链接。Google提供了生成推广链接的地址 Google Play URL Builder ,遗憾的是这个地址被墙了,不过可以使用 这个地址 ,可能稍微慢一点。
生成的推广地址就是 https://play.google.com/store/apps/details?id=com.mx.browser&referrer=utm_source%3Ddroidyue.com%26utm_medium%3Dadlink%26utm_term%3Dandroid%252Bbrowser%26utm_content%3DBest%2520and%2520Fast%2520Browser%26utm_campaign%3Dandroidyue_123
有了上面的推广链接,我们有必要了解一下Play商店的推广是如何工作的。
1.用户从网页或者应用中点击Play商店推广链接跳转到Play商店应用的页面下载。
2.应用下载完成并安装后,Google Play商店会发送一个 INSTALL_REFERRER 的Intent广播,该Intent中包含了推广链接中的参数。
3.应用收到 INSTALL_REFERRER 广播之后,从Intent中读取参数,上报推广数据。
有些时候我们可能有这样的需求,我们需要多个Receiver监听 INSTALL_REFERRER 广播,其实是可以的。
这一种是比较推荐的实现方式,比较简单,就是在一个Receiver的onReceive中,实例化另一个Receiver并调用其onReceive方法。
通过manifest的增加另一个监听 INSTALL_REFERRER 广播的Receiver的形式理论上也可以,但是之前的Google文档中说这种方式有问题,不建议使用。之前Google统计关于市场推广的描述为
Note: Only one BroadcastReceiver class can be specified per application. Should you need to incorporate two or more BroadcastReceivers from different SDKs, you will need to create your own BroadcastReceiver class that will receive all broadcasts and call the appropriate BroadcastReceivers for each type of Broadcast.
关于何时收到推广数据的问题争论颇多,基本上又两个答案:安装完成之后和打一次打开程序时。这两个答案可以说是都对或者都错。
在3.1之前, INSTALL_REFERRER 广播 确实是在程序安装之后发送的。
在3.1之后, INSTALL_REFERRER 广播 就变成了在程序第一次启动的时候进行的。
那么这又是作何原因呢,其真实的原因就是在3.1 API 12之后,Android系统引入了停止状态,也就是说一个刚下载的程序,在用户手动点击图标启动之前,是收不到正常的广播的。只有当处于非停止状态的应用才能收到 INSTALL_REFERRER 广播。所以广播的发送就选择在程序第一次启动时。 更多关于Android中的停止状态
为了进一步验证这个发送广播实际,我在Play Store上传了一个测试程序,可以使用这个地址 https://play.google.com/store/apps/details?id=com.droidyue.playstorereferrertester&referrer=utm_source%3Ddroidyue.com%26utm_medium%3Dblog%26utm_term%3Dtest%252Bapp%26utm_content%3Dtest%252Bapp%26utm_campaign%3Dandroidyue_123456 从Play Store下载测试一下,过滤日志 adb logcat | grep PlayCampaignReceiver
测试。
注意:这里的第一次安装可以是从Play Store 应用中点打开按钮,也可以是从Launcher中点击应用图标。前面两种情况都是可以接收到广播的。
这也是一个被争论的问题,当然我也是通过上面的包验证了,答案就是不会的。 INSTALL_REFERRER 只会发给那个推广安装的程序。
从网页到客户端的安装是无法发送 INSTALL_REFERRER 广播的。
其实有人会奇怪,究竟推广链接是market还是https协议,答案是都可以,但是推荐使用https协议的链接,首先的既定事实是Google Play URL Builder默认生成的就是https协议链接,另外https是一个被广泛采用的协议,设想如果一个market协议链接在PC浏览器上被点击是怎样的一种体验呢?答案不言自明。