2014-07-17 15 views
7

Ich versuche, Google Analytics auf meine Apps so einfach wie möglich zu verbinden. Ich möchte Analytics v4 implementieren, weil Google gesagt hat, dass sie bald ein Upgrade durchführen werden, also möchte ich nicht zweimal die gleiche Arbeit machen.android analytics v4 am einfachsten

Google Tutorial ist in diesem Fall nicht sehr effizient. Zusammenführen, was sie sagte, es gebe und was ich im Internet gefunden habe ich diese Schritte gemacht:

In Android Manifest, habe ich diese Berechtigungen hinzufügen:

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

und dies unter der Anwendung tag:

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

ich bin von der Notwendigkeit des zweiten meta nicht sicher ...

ich habe eine xML-Datei mit dem Namen "analytics.xml" (/ res/xml /) schrieb enthalten :

<!-- the Local LogLevel for Analytics --> 
<string name="ga_logLevel">verbose</string> 

<!-- Treat events as test events and don't send to google --> 
<bool name="ga_dryRun">false</bool> 

<!-- <integer name="ga_sessionTimeout">300</integer> --> 

<!-- Enable automatic Activity measurement --> 
<bool name="ga_autoActivityTracking">true</bool> 

<!-- Enable automatic exception tracking --> 
<bool name="ga_reportUncaughtExceptions">true</bool> 

<string name="ga_trackingId">UA-52900555-1</string> 

<!-- The screen names that will appear in reports --> 
<screenName name="com.maik.adbconnect.EmpityActivity"> 
    Adb Activation 
</screenName> 
<screenName name="com.maik.adbconnect.wid_class"> 
    Widget call 
</screenName> 

nun in EmpityActivity.java, habe ich dies schrieb, am Anfang der onCreate Methode:

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
Tracker t = analytics.newTracker(R.xml.analytics); 
t.send(new HitBuilders.AppViewBuilder().build()); 

In LogCat, Analytik sagt, dass gestartet und trifft ... aber in meinem Analytics Bewertung unter "Echtzeit-Benutzer", sagt Null ....

Weitere Fragen:

  • Bildschirmnamen in xML-Datei benötigt werden?

  • ga_logLevel und ga_dryRun sind veraltet? Da logcat mich warnen, dass diese Ressourcen

    nicht erkannt werden
+0

Wie lange ist es her, dass Sie das Konto für Analtechnik erstellt haben? – DaImTo

+0

vor einer Woche ... Ich habe es auch gedacht, aber selbst jetzt funktioniert es nicht ... Wie auch immer, LogCat sagt das, also denke ich, es sendet Daten an Analytik: "07-22 21: 38: 46,381: V/GAV4 (8076): Thread [GAThread, 5, main]: Senden des Treffers zum Dienst PATH: https: PARAMS: v = 1, ul = it-it, t = Bildschirmdarstellung, ht = 1406057921206, sr = 768x1184, a = 2142572923 , an = ADBconnect, tid = UA-52900555-1, aid = com.maik.adbconnect, cid = 8e106838-bfda-418e-a5e2-6a1f56a6c65d, av = 1,0, _u = .2nK-AL, " – Maik

+0

oder vielleicht das" PFAD: https: "ist falsch? – Maik

Antwort

6

Der einfachste Weg zur Einrichtung Google Analytic v4 ist Java-Code zu verwenden und einzelne Tracker von Application.onCreate() konfigurieren. Dies ist auch der schnellste und sicherste Weg, Analytics zu konfigurieren. Sie Code würde wie folgt aussehen:

public class MyApp extends Application { 
    private final String TRACKER_ID = "UA-54994796-4"; 

    private static GoogleAnalytics analytics; 
    private static Tracker tracker; 
    public static GoogleAnalytics analytics() {return analytics;} 
    public static Tracker tracker() {return tracker;} 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     analytics = GoogleAnalytics.getInstance(this); 
     analytics.getLogger().setLogLevel(Logger.LogLevel.VERBOSE); 
     tracker = analytics.newTracker("UA-00000000-1"); 
     tracker.enableExceptionReporting(true); 
     tracker.enableAutoActivityTracking(true); 
    } 
} 

ein Ereignis von jedem Ort in der App senden können Sie:

MyApp.tracker().send(new HitBuilders.EventBuilder(
    "some category", " some action").build()); 

Sie müssen einige Änderungen an Ihrem ApplicationManifest.xml auch:

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

Ich würde weg von der Verwendung von XML-Konfigurationsdateien bleiben, da es einfach ist, die XML-Konfiguration falsch zu bekommen. Die Konfiguration von Java hat den Vorteil, dass der Compiler Ihre Aufrufe validiert. Die Verwendung von Code zur Konfiguration von Analytics ist ebenfalls schneller, da der XML-Parsing-Aufwand vermieden wird.

Bildschirmnamen sind optional. Sie können bei der Verwendung von Klassennamen bleiben. In Ihrem Bericht werden die Klassennamen anstelle von benutzerfreundlicheren Namen angezeigt, es ist jedoch einfacher, die zusätzliche Zuordnung zu vermeiden.

dryRun und logLevel werden nicht wie bei Google Play Services 7.0 abgeschrieben. Sie verwenden entweder einen falschen Namen, vorausgesetzt, dass der falsche Wert im falschen Abschnitt des XML-Codes platziert wurde. Dies ist das Problem bei der XML-Konfiguration. Es gibt nur eine begrenzte Laufzeitvalidierung und es ist einfach, Dinge falsch zu verstehen und das Problem nicht zu bemerken.

+0

Gute Antwort! Danke, dass du Google's bs über die Implementierung von gav4 geschnitten hast, mein Gott, so viel nutzloses, irreführendes Zeug in ihren Doku und Tutorials, obwohl die meisten Leute nur Hits senden wollen! Danke für die Vermeidung von xml auch, so viel einfacher! – Don

Verwandte Themen