2014-09-04 5 views
4

Google 애널리틱스를 앱에 포함 시켰습니다. 하지만 Tracker의 객체를 만들 때 추적기 내가 실시간으로 앱을 을 추적하지만 난 변경하는 경우 표시되지 않습니다이 코드Google 애널리틱스 추적기가 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(); 
    } 
} 

와 위의 코드는 내가 한 사용자가 실시간

공동으로 활성화되어 있음을 볼 수있다 추적 장치가 작동하지 않는 이유 드 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 웹 로그 분석의 앱 개요 섹션에 표시되지는 추적기를 포함 한 모든 화면에서을 말해 줄 수 48 시간. 입술에

+0

코드를 oncreate에 넣고 app_tracker.xml과 다른 두 xml 파일을 res-> xml 폴더에 넣을 수 있습니까? – PankajAndroid

답변

7

세 이하 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

0123으로 XML 폴더를 생성 폴더 42,867,714,

AnalyticsSampleApp.java와 자바 파일을 생성하고 안드로이드와 응용 프로그램 태그처럼 menifest에서이 파일을 등록 : 이름 = "com.example.ui.AnalyticsSampleApp"를 MainActivity에서 onCreate에서

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

아래에 넣어

Tracker t = ((AnalyticsSampleApp)this.getApplication()).getTracker(TrackerName.APP_TRACKER); 
    t.setScreenName(TAG); 
    t.send(new HitBuilders.AppViewBuilder().build()); 
+0

내가 시도해보고 알려 드리겠습니다. – Deb

+0

@Deb 코드에서 어떤 점을 발견 할 수 있습니까? – PankajAndroid

+0

사실을 말하자면, jst가 작동하기 시작했다. 내가 쓴 것은 'tracker.setScreenName ("HomeActivity");로 대체 된 대부분의 화면에서'tracker.set ("HomeActivity", "Home"); 그리고 다른 화면의 추적기가 작동하기 시작했습니다.하지만 위의 onStart()와 함께 작동 했어야합니다. 왜 작동하지 않는지도 알 수 없습니다. – Deb

관련 문제