使用自己的BroadcastReceiver进行广告活动测量

9

我有一个Android 应用程序,用户需要注册。在发送注册信息时,我想要发送来自PlayStore的参数(utm_source等),以了解用户从哪个广告系列而来。

因此,我的想法是使用自己的BroadcastReceiver来处理INSTALL_REFERRER事件,将参数保存到文件中。当用户注册时,我将读取该文件并发送内容。

所以我创建了一个接收器:

public class CampaignBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {


    String refferer = intent.getExtras().getString("referrer");
    try {
        FileOutputStream fos = context.openFileOutput("campaign", Context.MODE_PRIVATE);
        fos.write(refferer.getBytes());
        fos.close();
    } catch (FileNotFoundException e) {

    } catch (IOException e) {

    }


    new CampaignTrackingReceiver().onReceive(context, intent);
}

在 AndroidManifest.xml 文件中,我使用:

<service android:name="com.google.analytics.tracking.android.CampaignTrackingService"/>
    <receiver android:name=".receiver.CampaignBroadcastReceiver" android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>

当我使用谷歌的测试场景时,它可以正常工作,并且我的广播接收器中的onReceive方法被调用。
./adb shell am  broadcast -a com.android.vending.INSTALL_REFERRER -n
mypackage/mypackage.receiver.CampaignBroadcastReceiver --es  "referrer" 
"utm_source%3Dtest%26utm_medium%3Dbanner%26utm_term%3Dmailstuff"

但是,当我尝试从PlayStore进行时,就没有任何调用。

有人有什么想法如何在应用程序中获取来自PlayStore的推广参数吗?


现在我发现,如果用户直接使用Play商店应用程序在手机上安装应用程序,则可以正常工作。但是,当用户使用Play商店网站并远程安装时,则无法正常工作。有人有任何解决方法吗? - user2641233
看了前面的评论,这似乎是重复的在Android Web市场上安装引荐程序无法跟踪 - Juuso Ohtonen
1个回答

3

我不知道有什么解决办法,但这个问题已经被Google所知晓。

目前,Google Play Campaign Measurement不支持通过Web Play Store启动的从Web到设备的安装。

已知问题


文档链接和“已知问题”部分是针对遗留的v2版本的。从较新的版本开始,“已知问题”部分已经被删除。那么,这个功能现在应该可以工作了吗?对我来说似乎不行,即“通过Web市场没有引荐者”的问题仍然存在。另请参见https://dev59.com/7WLVa4cB1Zd3GeqPwnqe。 - Juuso Ohtonen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接