我在我的应用中加入了Google分析。
但是当我创建一个Tracker
的对象时,跟踪器不起作用
我的一项活动中的代码
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
try{
tracker=((GoogleAnalyticsConfig)this.getApplication()).getTracker(GoogleAnalyticsConfig.TrackerName.APP_TRACKER);
tracker.setScreenName("HomeActivity");
tracker.send(new HitBuilders.AppViewBuilder().build());
}catch(Exception ex)
{
ex.printStackTrace();
}
}
现在使用此代码,我在实时跟踪中看不到该应用 但如果我用这个
改变上面的代码@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
try{
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
analytics.reportActivityStart(this);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
我可以看到一个用户在Realtime中处于活动状态
GoogleAnalyticsConfig
的代码
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
// The following line should be changed to include the correct property id.
private static final String PROPERTY_ID ="UA-XXXXXXXX-1";
public synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = analytics.newTracker(PROPERTY_ID);
t.enableAutoActivityTracking(true);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
任何人都可以告诉我为什么跟踪器无法正常工作吗?不仅是实时的,而且在我已经包含跟踪器的所有屏幕中都没有显示在Google Analytics的应用程序概述部分中,即使在48小时之后也是如此。
答案 0 :(得分:7)
在res文件夹中创建xml文件夹,其中包含以下三个xml文件
app_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Replace placeholder ID with your tracking ID -->
<string name="ga_trackingId">XX-XXXXXXXX-X</string>
<bool name="ga_autoActivityTracking">true</bool>
<bool name="ga_reportUncaughtExceptions">true</bool>
<string name="ga_appName">Serivce</string>
<string name="ga_appVersion">1.1.3</string>
<bool name="ga_debug">true</bool>
<item name="ga_dispatchPeriod" format="integer" type="integer">120</item>
<string name="ga_sampleFrequency">90</string>
<bool name="ga_anonymizeIp">true</bool>
<bool name="ga_dryRun">false</bool>
<!-- Percentage of events to include in reports -->
<string name="ga_sampleFrequency">100.0</string>
<!-- How long a session exists before giving up -->
<integer name="ga_sessionTimeout">-1</integer>
<string name="com.example.ui.MainActivity">MainActivity</string>
ecommerce_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">60</integer>
<!-- The following value should be replaced with correct property id. -->
<string name="ga_trackingId">XX-XXXXXXX-1</string>
</resources>
global_tracker.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- The following value should be replaced with correct property id. -->
<string name="ga_trackingId">XX-XXXXXXX-1</string>
<integer name="ga_sessionTimeout">300</integer>
<bool name="ga_autoActivityTracking">true</bool>
<!-- the Local LogLevel for Analytics -->
<string name="ga_logLevel">verbose</string>
<!-- how often the dispatcher should fire -->
<integer name="ga_dispatchPeriod">30</integer>
<!-- Treat events as test events and don't send to google -->
<bool name="ga_dryRun">false</bool>
<screenName name="com.example.ui.MainActivity">MainActivity</screenName>
用java创建java文件 AnalyticsSampleApp.java并使用android:name =“com.example.ui.AnalyticsSampleApp”将应用程序标记中的此文件注册到清单中
public class AnalyticsSampleApp extends Application {
// The following line should be changed to include the correct property id.
private static final String PROPERTY_ID = "XX-XXXXXX-1";
public static int GENERAL_TRACKER = 0;
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}
public HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
public AnalyticsSampleApp() {
super();
}
public synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID): (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker): analytics.newTracker(R.xml.ecommerce_tracker);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
在MainActivity onCreate下面
Tracker t = ((AnalyticsSampleApp)this.getApplication()).getTracker(TrackerName.APP_TRACKER);
t.setScreenName(TAG);
t.send(new HitBuilders.AppViewBuilder().build());