web-dev-qa-db-fra.com

Fichier XML Google Analytics Android

Je lis un nouveau didacticiel Google pour Google Analytics et c'est étrange, tout d'abord lorsque j'ajoute cette chaîne dans mon titre:

classpath 'com.google.gms:google-services:1.3.0-beta1'
apply plugin: 'com.google.gms.google-services'

Je ne parviens pas à synchroniser mon projet (erreur du plug-in introuvable). Je ne sais pas si c'est important ou pas. Je peux seulement ajouter compile 'com.google.Android.gms:play-services-analytics:7.3.0'. Et deuxièmement, dans le tutoriel, il y a une étape où je devrais sous-classer Application:

package com.google.samples.quickstart.analytics;

import Android.app.Application;

import com.google.Android.gms.analytics.GoogleAnalytics;
import com.google.Android.gms.analytics.Logger;
import com.google.Android.gms.analytics.Tracker;

/**
 * This is a subclass of {@link Application} used to provide shared objects for this app, such as
 * the {@link Tracker}.
 */
public class AnalyticsApplication extends Application {
  private Tracker mTracker;

  /**
   * Gets the default {@link Tracker} for this {@link Application}.
   * @return tracker
   */
  synchronized public Tracker getDefaultTracker() {
    if (mTracker == null) {
      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      // To enable debug logging use: adb Shell setprop log.tag.GAv4 DEBUG
      mTracker = analytics.newTracker(R.xml.global_tracker);
    }
    return mTracker;
  }
}

Et je ne comprends pas où obtenir le fichier R.xml.global_tracker? Je pensais que j'utiliserais le fichier json, que j'avais déjà généré auparavant. Certains ont-ils rencontré ce problème? C'est drôle, mais le tutoriel pour iO était meilleur.

Mise à jour

Cette approche a une meilleure documentation en passant, si certains1 est intéressant.

17
Panich Maxim

Je suis d'accord avec toi. Nouvelle documentation n'est pas si utile.

Voici ma classe d'application et tout ce dont vous avez besoin est que vous n'avez besoin de rien d'autre pour une intégration de base. Même pas besoin d'un xml. Utilisez cet objet de suivi où vous le souhaitez.

import Android.app.Activity;
import Android.content.Context;
import com.google.Android.gms.analytics.GoogleAnalytics;
import com.google.Android.gms.analytics.Tracker;
import Java.io.IOException;

public class Application extends Android.app.Application {

    public static GoogleAnalytics analytics;
    public static Tracker tracker;

    @Override
    public void onCreate() {
        super.onCreate();

        analytics = GoogleAnalytics.getInstance(this);
        analytics.setLocalDispatchPeriod(1800);
        tracker = analytics.newTracker("UA-XXXXXX-X");
        tracker.enableExceptionReporting(true);
        tracker.enableAdvertisingIdCollection(true);
        tracker.enableAutoActivityTracking(true);
    }

}

Conservez également la dépendance "com.google.Android.gms: play-services-analytics: 7.3.0" dans votre "build.gradle".

Edit: Je pense que ma réponse n'est plus valide. Ne forcez pas et utilisez simplement le fichier json :)

19
asozcan

Avec la version 4 de Google Analytics, Google a mis en œuvre divers changements dans l'approche. Ils génèrent un fichier google-services.json que vous téléchargez et ajoutez à votre projet. voici les guides définitifs sur les différentes étapes https://developers.google.com/analytics/devguides/collection/Android/v4/start et https://developers.google.com/analytics/devguides/collection/Android/v4/

Cependant, comme le reste des gens ici, lorsque j'ai utilisé l'exemple de code pour l'objet Application de Google, une erreur de compilation s'est produite pour R.xml.global_tracker. Dans Android Studio, j'ai décidé de "nettoyer" le projet et c'est ce qui a fonctionné. Cependant, la magie fonctionne, l'objet XML est maintenant généré dans le cadre de R.Java

Pour référence: j'utilise Android Studio 2.2.3 sur OSX. Vraisemblablement, le correctif devrait fonctionner sur les instances futures et les autres systèmes d'exploitation jusqu'à ce que Google modifie à nouveau ses pratiques.

1
JulianHarty

Créer global_tracker.xml

Créez le fichier app/src/res/xml/global_tracker.xml avec le contenu suivant:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="ga_trackingId" translatable="false">${YOUR_TRACKING_ID}</string>
</resources>
Replace ${YOUR_TRACKING_ID} with your tracking ID.
0
Neeraj Singh