2014-04-05 92 views
4

林有一些麻煩,在我的Android應用程序設置谷歌分析。任何人都可以幫助我,並指出我的一些示例代碼或教程。我試着去遵循這個one新的谷歌Analytics(分析)SDK 4

繼承人我的代碼:

package com.examp2.testq; 

import java.util.HashMap; 

import com.google.analytics.tracking.android.GoogleAnalytics; 
import com.google.analytics.tracking.android.Tracker; 

import android.support.v7.app.ActionBarActivity; 
import android.support.v7.app.ActionBar; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.os.Build; 

public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 



} 

public enum TrackerName { 
    APP_TRACKER, // Tracker used only in this app. 

    } 

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); 
    synchronized Tracker getTracker(TrackerName trackerId) { 
     if (!mTrackers.containsKey(trackerId)) { 

      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
      Tracker t = (trackerId == TrackerName.APP_TRACKER) ?   analytics.newTracker(PROPERTY_ID) 
       : 
      mTrackers.put(trackerId, t); 

     } 
     return mTrackers.get(trackerId); 
     } 

林不知道做什麼用的屬性ID或如何稱呼呢? 謝謝!

+0

您是否嘗試創建xml文件? –

+0

是的,我遇到的問題是在線分析。newTracker(PROPERTY_ID)我不明白如何定義這個property_id – user3462221

回答

1

物業ID只是一個格式UA-XXXXXX-Y的字符串。它也被稱爲追蹤ID,網絡媒體資源ID等。您可以從Google Analytics帳戶的管理設置中獲取此信息。很可能你已經擁有了它。

基本上有得到一個跟蹤器的兩種方式。你可以從一個xml文件創建它。如果你這樣做,你需要使用public Tracker newTracker (int configResId)

第二種方法是使用public Tracker newTracker (String trackingId)。在你的代碼片段中,你正在使用第二種方法。

13

把裏面MainActivity以下行:

private static final String PROPERTY_ID = "UA-xxxxx-x"; 
    private Tracker tracker; 
    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); 

與您的應用程序的跟蹤ID替換UA-XXXXX-X。

我用了一個應用程序,只有一個屏幕,所以我的MainActivity onCreate方法是這樣的谷歌Analytics(分析):

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);  

    GoogleAnalytics.getInstance(this).newTracker(PROPERTY_ID); 
    GoogleAnalytics.getInstance(this).getLogger().setLogLevel(Logger.LogLevel.VERBOSE); 
    tracker = getTracker(TrackerName.APP_TRACKER); 
    tracker.setScreenName("MainActivity"); 
    tracker.send(new HitBuilders.AppViewBuilder().build()); 

    setContentView(R.layout.main); 
    //...etc. 

這足以讓一噸分析有用的數據。

你必須添加以下包括:

import com.google.android.gms.analytics.HitBuilders; 
    import com.google.android.gms.analytics.Logger; 
    import com.google.android.gms.analytics.Tracker; 
    import com.google.android.gms.analytics.GoogleAnalytics; 

不要忘了<應用>標籤之前添加<清單>標籤的AndroidManifest.xml內的以下權限:

<uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

Google還說要在<應用程序>標記內添加以下標記。

<meta-data android:name="com.google.android.gms.version" 
       android:value="@integer/google_play_services_version" /> 

最後,如果你使用Android Studio中,谷歌表示,添加以下行的ProGuard-rules.txt:

-keep class * extends java.util.ListResourceBundle { 
     protected Object[][] getContents(); 
    } 

    -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { 
     public static final *** NULL; 
    } 

    -keepnames @com.google.android.gms.common.annotation.KeepName class * 
    -keepclassmembernames class * { 
     @com.google.android.gms.common.annotation.KeepName *; 
    } 

    -keepnames class * implements android.os.Parcelable { 
     public static final ** CREATOR; 
    } 

...而且這種依賴關係到項目的構建。 gradle這個文件:

apply plugin: 'android' 
    ... 

    dependencies { 
     compile 'com.android.support:appcompat-v7:+' 
     compile 'com.google.android.gms:play-services:4.3.23' 
    } 
+0

你在哪裏定義了TrackerName? –

+0

Tolgay,我有TrackerName作爲公共枚舉在它自己的包中,我導入到MainActivity中。在組織東西到包之前,我已經在MainActivity.java中定義了它。 –

相關問題