Android EasyTracker无法正常工作?

5

我在使用Android上的Google Analytics EasyTracker时遇到了问题。
我为这个问题做的设置很简单:
- 新建一个Android项目
- 添加GA和ET库
- 添加GoogleAnalytics.xml:

<resources>
    <string name="ga_api_key">UA-2912-1</string>
    <bool name="ga_debug">true</bool>
    <bool name="ga_dryRun">true</bool>
    <bool name="ga_auto_activity_tracking">true</bool>
    <integer name="ga_dispatchPeriod">10</integer>
</resources>

使用TrackedActivity扩展活动而不是Activity:

package test.testing.ez;

import android.os.Bundle;

import com.google.android.apps.analytics.easytracking.TrackedActivity;

public class TestEZActivity extends TrackedActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

在结束后,当在模拟器或设备上运行我的简单应用程序并切换两次方向后,我的LogCat中会出现类似以下的内容。
02-11 14:39:27.245: I/GoogleAnalyticsTracker(219): Host: www.google-analytics.com
02-11 14:39:27.245: I/GoogleAnalyticsTracker(219): User-Agent: GoogleAnalytics/1.4.2 (Linux; U; Android 2.1-update1; en-us; sdk Build/ECLAIR)
02-11 14:39:27.245: I/GoogleAnalyticsTracker(219): GET /__utm.gif?utmwv=4.8.1ma&utmn=1604828210&utmt=event&utme=5(**)(0)&utmcs=UTF-8&utmsr=480x320&utmul=en-US&utmac=UA-2912-1&utmcc=__utma%3D1.659024508.1328970962.1328970962.1328971039.2%3B&utmht=1328971157185&utmqt=10064 HTTP/1.1

02-11 14:39:27.294: I/GoogleAnalyticsTracker(219): Host: www.google-analytics.com
02-11 14:39:27.294: I/GoogleAnalyticsTracker(219): User-Agent: GoogleAnalytics/1.4.2 (Linux; U; Android 2.1-update1; en-us; sdk Build/ECLAIR)
02-11 14:39:27.294: I/GoogleAnalyticsTracker(219): GET /__utm.gif?utmwv=4.8.1ma&utmn=1061578751&utmt=event&utme=5(**)(0)&utmcs=UTF-8&utmsr=480x320&utmul=en-US&utmac=UA-2912-1&utmcc=__utma%3D1.659024508.1328970962.1328970962.1328971039.2%3B&utmht=1328971161689&utmqt=5611 HTTP/1.1

02-11 14:39:27.314: I/GoogleAnalyticsTracker(219): Host: www.google-analytics.com
02-11 14:39:27.314: I/GoogleAnalyticsTracker(219): User-Agent: GoogleAnalytics/1.4.2 (Linux; U; Android 2.1-update1; en-us; sdk Build/ECLAIR)
02-11 14:39:27.314: I/GoogleAnalyticsTracker(219): GET /__utm.gif?utmwv=4.8.1ma&utmn=1061578751&utmt=event&utme=5(**)(0)&utmcs=UTF-8&utmsr=480x320&utmul=en-US&utmac=UA-2912-1&utmcc=__utma%3D1.659024508.1328970962.1328970962.1328971039.2%3B&utmht=1328971161689&utmqt=5623 HTTP/1.1

02-11 14:39:27.324: I/GoogleAnalyticsTracker(219): Host: www.google-analytics.com
02-11 14:39:27.324: I/GoogleAnalyticsTracker(219): User-Agent: GoogleAnalytics/1.4.2 (Linux; U; Android 2.1-update1; en-us; sdk Build/ECLAIR)
02-11 14:39:27.324: I/GoogleAnalyticsTracker(219): GET /__utm.gif?utmwv=4.8.1ma&utmn=1210083032&utmcs=UTF-8&utmsr=480x320&utmul=en-US&utmp=%2Ftest.testing.ez.TestEZActivity&utmac=UA-2912-1&utmcc=__utma%3D1.659024508.1328970962.1328970962.1328971039.2%3B&utmht=1328971161800&utmqt=5524 HTTP/1.1

前三个是空事件(utme=5(**)(0)),最后一个是页面浏览事件(utmp=%2Ftest.testing.ez.TestEZActivity)。
正确的行为应该是空事件、页面浏览事件、空事件、页面浏览事件(从onStoponStartonStoponStart触发)。
当在一次调度中跟踪多个事件(使用EasyTracker.getTracker().trackEvent)时,这也是错误的。
有人遇到过类似的问题吗?


1
“GoogleAnalytics.xml”是什么意思?它在你的项目中是如何使用的? - IgorGanapolsky
1个回答

1
原来是libGoogleAnalytics.jar 1.4.2中的一个bug
NetworkDispatcher.DispatcherThreadAsyncDispatchTask.dispatchSomePendingHits函数中, for循环调用了requesterCallBacks.requestSent(),从hits列表中删除元素。
这通常发生在dry模式下,但有时也会在正常模式下发生(当命中字符串长度大于8k时),但如果发生,您将得到警告:
Log.w("GoogleAnalyticsTracker", "Hit too long (> 8192 bytes)--not sent");

所以请确保你的事件和页面浏览不要太长。


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