2

Google Analytics 使用 utm_source、utm_campaign 和 utm_medium 存储我在 URL 中传递的信息。现在我想知道当用户打开应用程序时如何获取这些信息?我在我的日志中看到了这个:'

03-18 20:19:48.633: I/GAV2(32317): Thread[GAThread,5,main]: Campaign found: utm_source=source value tracking tara&utm_medium=medium value tracking tara&utm_campaign=campaign value tracking tara androidlitetrackingtara

我的应用程序清单中有这个:

<service android:name="com.google.analytics.tracking.android.CampaignTrackingService" />

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

我试图从意图中获取它,但数据不存在。有任何想法吗?

4

2 回答 2

0

确保您使用的是 v3 SDK。这是说明页面:

https://developers.google.com/analytics/devguides/collection/android/v3/campaigns

如果 INTENT_REFERRER 不起作用,请尝试页面后面给出的 Map 示例。

此外,请确保您在下载应用程序和显示在 GA 中的数据之间有足够的时间。GA 最多可能需要 24 小时才能显示数据。

于 2013-10-26T17:21:36.803 回答
0

创建自己的广播接收器。存储数据并稍后将其传递给谷歌分析

public class InstallReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Log.d("InstallReceiver", "onReceive");

    try {
        // get referrer value

        Bundle extras = intent.getExtras();
        if (extras != null) {

            GoogleAnalytics.getInstance(context).getLogger().setLogLevel(LogLevel.VERBOSE);
            String referrerValue = extras.getString("referrer");
// Handle data. Save it


            Log.d("InstallReceiver", "referrerValue=" + referrerValue);
            String afterDecode = URLDecoder.decode(referrerValue, "UTF-8");
            String[] temp = afterDecode.split("&");
            String agencyId = temp[0].replace("utm_source=", "");


            Utils.saveAgencyId(context.getApplicationContext(), agencyId);

// transfer intent to google receiver.


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

    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
}
于 2014-06-24T07:51:18.967 回答