2014-09-04 2 views
4

Я включил Google Analytics в свое приложение. Но когда я создать объект Tracker трекер не работаетGoogle Analytics Tracker Не работает для приложения для Android

код в одном из моей деятельности

@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(); 
    } 
} 

Я могу видеть, что один пользователь активен в реальном времени

Co де для 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); 
    } 

Может ли один скажите мне, почему трекер не работает? И не только в реальном времени, но и во всех экранах, где я включил трекер его не отображается в App Обзор разделе Google Analytics, даже после того, как 48 часов.

+0

Вы можете поместить свой код в oncreate, и вы положили app_tracker.xml и два других xml-файла в папку res-> xml? – PankajAndroid

ответ

7

в разрешении папке создать папку 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-файл с AnalyticsSampleApp.java и зарегистрировать этот файл в menifest как в прикладной тег с андроид: имя = "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()); 
+0

Я попробую это и дам вам знать – Deb

+0

@Deb вы можете найти, что проблема в вашем коде? – PankajAndroid

+0

расскажите об истине, он начал работать. Хотя я написал 'tracker.set (« HomeActivity »,« Home »);' на большинстве моих экранов, которые я заменил на 'tracker.setScreenName (« HomeActivity »);' и трекер для других экранов начал работать. Но он должен был работать с выше 'onStart()'. Не знаю, почему даже это не сработало – Deb

Смежные вопросы