XML файл Android Google Analytics
Я читаю новый учебник Google для Android-аналитики, и это странно, прежде всего, когда я добавляю эти строки в свой gradle
classpath 'com.google.gms:google-services:1.3.0-beta1'
apply plugin: 'com.google.gms.google-services'
Я не могу синхронизировать мой проект (ошибка не найдена плагином). Я не знаю, важно это или нет. Я могу добавить compile 'com.google.android.gms:play-services-analytics:7.3.0'
. И, во-вторых, в учебнике есть шаг, на котором я должен подклассы 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;
}
}
И я не могу понять, где взять файл R.xml.global_tracker? Я думал, что буду использовать json файл, который я создал ранее. У кого-то столкнулись с этой проблемой? Это смешно, но для iOS учебник был лучше.
Обновление
Этот подход имеет лучшую документацию, кстати, если some1 интересен.
Ответы
Ответ 1
Я согласен с тобой. Новая документация не очень полезна.
Вот мой класс приложения, и все, что вам нужно, это то, что вам не нужна никакая другая вещь для базовой интеграции. Даже не нужен xml. Используйте этот объект трекера, где хотите.
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);
}
}
Также сохраняйте зависимость "com.google.android.gms: play-services-analytics: 7.3.0" в вашем "build.gradle".
Изменить: я думаю, что мой ответ уже недействителен. Не нажимайте и не используйте json файл:)
Ответ 2
С помощью V4 Google Analytics Google внедрил различные изменения в этом подходе. Они генерируют файл google-services.json
, который вы загружаете и добавляете в свой проект; вот окончательные руководства на разных этапах
https://developers.google.com/analytics/devguides/collection/android/v4/start и
https://developers.google.com/analytics/devguides/collection/android/v4/
Однако, как и остальные люди здесь, когда я использовал образец кода для объекта приложения из Google, произошла ошибка компиляции для R.xml.global_tracker
. В Android Studio я решил "очистить" проект, и это сделало трюк. Однако магия работает, объект xml теперь создается как часть R.java
Для справки: я запускаю Android Studio 2.2.3 на OSX. Предположительно, исправление должно работать в будущих экземплярах и других ОС, пока Google не изменит свою практику снова.
Ответ 3
Создать global_tracker.xml
Создайте файл app/src/res/xml/global_tracker.xml со следующим содержимым:
<?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.