2014-04-05 95 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中定义了它。 –

相关问题