Как интегрировать Google Analytics в приложение для Android
Привет. Я пытаюсь интегрировать Google Analytics, но я не могу найти какие-либо аналитические данные, которые отображаются в моей учетной записи Google Analytics. Я использую ссылку ниже: -
developers.google.com ссылка 1
некоторая ссылка 1
некоторая ссылка 2
ссылка разработчика .google 2
Но я не могу получить результат, правильный путь/путь или правильное и подробное руководство по интеграции Google Analytics в приложение для Android.
Мой код выглядит следующим образом: -
public class MainActivity extends Activity {
GoogleAnalytics tracker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get tracker.
Tracker t = ((AnalyticsHelper) MainActivity.this.getApplication()).getTracker(
TrackerName.APP_TRACKER);
// Set the dispatch period in seconds.
GAServiceManager.getInstance().setLocalDispatchPeriod(8);
}
@Override
protected void onStart() {
super.onStart();
EasyTracker.getInstance(this).activityStart(this);
// Set the dispatch period in seconds.
GAServiceManager.getInstance().setLocalDispatchPeriod(8);
}
@Override
protected void onStop() {
super.onStop();
EasyTracker.getInstance(this).activityStop(this);
}
}
Мой класс помощника Google Analytics выглядит следующим образом: -
public class AnalyticsHelper extends Application {
// The following line should be changed to include the correct property id.
private static final String PROPERTY_ID = "UA-xxxxxxxx-x"; // My Property id.
public static int GENERAL_TRACKER = 0;
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
public AnalyticsHelper()
{
super();
}
synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
analytics.getLogger().setLogLevel(LogLevel.VERBOSE);
Tracker t = null;
if(trackerId==TrackerName.APP_TRACKER){
t= analytics.getTracker(PROPERTY_ID);
}
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
И мой XML файл analytics в каталоге xml выглядит следующим образом: -
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:ignore="TypographyDashes">
<!-- The following value should be replaced with correct property id. -->
<string name="ga_trackingId">UA-xxxxxxxx-X</string>
<!--Enable automatic activity tracking-->
<bool name="ga_autoActivityTracking">true</bool>
<!--Enable automatic exception tracking-->
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>
Любая помощь будет сердечно приветствоваться.
Спасибо заранее.
Ответы
Ответ 1
Хорошо приведенный выше код в "Вопросе" хорошо работает.
Все, что вам нужно сделать, - это установить код и добавить файл Jar Загрузите файл Jar Google Analytics в свой Lib, просто подождите 24-48 часов. и он будет показывать все события и аналитические данные для зарегистрированного приложения.
Отредактированный ответ: -
Как только вы создали свою учетную запись Google Analytics и загрузили файл Jar, добавьте файл Jar в папку lib вашего приложения
Эффективность Google Analytics:
Хорошо для аналитической части Вам нужен файл analytic.xml, который будет включен в вашу папку значений, указанную в вопросе.
Затем определите private EasyTracker easyTracker = null;
в MainActivity.
И теперь в вашем методе onCreate(Bundle savedInstanceState)
просто напишите следующие строки кода. Ну, вы также можете написать следующий код для любого Listners, например. на любом нажатии кнопки.
/*
*For Google Analytics...
*/
easyTracker = EasyTracker.getInstance(MainActivity.this); // It Tracks your Activity...
easyTracker.send(MapBuilder.createEvent("SomeValue(StoryPage)",
"SomeMoreValue(AuthorName) , "SomeMoreValueAgain(StoryTitle)", null).build()); //This line creates the event for keeping logs and other Analytical stuffs concerned to this Activity of Application...
//In the above example we had Tracked the session for the MainActivity and also Analysed how many time this activity was opened, which Author story and which Story was read.
Теперь в вашем методе onStart()
просто напишите следующий код, он запустит сеанс отслеживания и аналитики для вашей активности.
EasyTracker.getInstance(this).activityStart(this);
И теперь в вашем методе onStop()
просто напишите следующий код, он закроет или остановит сеанс отслеживания для этой активности.
EasyTracker.getInstance(this).activityStop(this);
Теперь вы можете отслеживать и анализировать свое приложение и действия в нем.
Ответ 2
Я подробно описал шаги для интеграции Google Analytics в существующее приложение здесь. Когда я публикую новое приложение, я всегда возвращаюсь к этим инструкциям, которые хорошо работают.
Ответ 3
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">300</integer>
<bool name="ga_autoActivityTracking">true</bool>
<string name="ga_trackingId">"place your track id"</string>
<string name="ga_sampleFrequency">100.0</string>
<bool name="ga_reportUncaughtExceptions">true</bool>
<screenName name="com.aquadeals.seller.HomeMainActivity">DashBoard Screen</screenName>
3. После этого мы можем изменить файл манифеста очень важно, чтобы добавить этот код ниже
Добавить разрешения
4. Измените имя своего приложения на пример имени класса Google Analytics "MyApplication.java"
<application
android:name=".app.MyApplication"
5. После этого добавьте службы для отправки и приема широковещательных событий с использованием Интернета
<receiver
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false" />
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
- Прежде чем этот манифест изменится, сначала добавьте два класса в ваше приложение.
публичный конечный класс AnalyticsTrackers
{
public enum Target {APP,}
private static AnalyticsTrackers sInstance;
public static synchronized void initialize(Context context)
{
if (sInstance != null)
{
throw new IllegalStateException("Extra call to initialize analytics trackers");
}
sInstance = new AnalyticsTrackers(context);
}
public static synchronized AnalyticsTrackers getInstance()
{
if (sInstance == null) {
throw new IllegalStateException("Call initialize() before getInstance()");
}
return sInstance;
}
private final Map<Target, Tracker> mTrackers = new HashMap<Target, Tracker>();
private final Context mContext;
private AnalyticsTrackers(Context context)
{
mContext = context.getApplicationContext();
}
public synchronized Tracker get(Target target)
{
if (!mTrackers.containsKey(target))
{
Tracker tracker;
switch (target)
{
case APP:
tracker = GoogleAnalytics.getInstance(mContext).newTracker(R.xml.app_tracker);
break;
default:
throw new IllegalArgumentException("Unhandled analytics target " + target);
}
mTrackers.put(target, tracker);
}
return mTrackers.get(target);
}
}
И добавьте эту AnalyticsApplication.java
public class AnalyticsApplication extends MultiDexApplication
{
private Tracker mTracker;
private static AnalyticsApplication mInstance;
@Override
public void onCreate()
{
super.onCreate();
mInstance = this;
AnalyticsTrackers.initialize(this);
AnalyticsTrackers.getInstance().get(AnalyticsTrackers.Target.APP);
}
synchronized public Tracker getDefaultTracker()
{
if (mTracker == null)
{
GoogleAnalytics analytics = GoogleAnalytics.getInstance(AnalyticsApplication.this);
mTracker = analytics.newTracker(R.xml.app_tracker);
}
return mTracker;
}
public synchronized Tracker getGoogleAnalyticsTracker()
{
AnalyticsTrackers analyticsTrackers = AnalyticsTrackers.getInstance();
return analyticsTrackers.get(AnalyticsTrackers.Target.APP);
}
public void trackEvent(String category, String action, String label)
{
Tracker t = getDefaultTracker();
t.send(new HitBuilders.EventBuilder().setCategory(category).setAction(action).setLabel(label).build());
}
public static synchronized AnalyticsApplication getInstance()
{
return mInstance;
}
public void trackScreenView(String screenName)
{
Tracker t = getGoogleAnalyticsTracker();
t.setScreenName(screenName);
t.send(new HitBuilders.ScreenViewBuilder().build());
GoogleAnalytics.getInstance(this).dispatchLocalHits();
}
public void trackException(Exception e)
{
if (e != null) {
Tracker t = getGoogleAnalyticsTracker();
t.send(new HitBuilders.ExceptionBuilder()
.setDescription( new StandardExceptionParser(this, null)
.getDescription(Thread.currentThread().getName(), e))
.setFatal(false)
.build()
);
}
}
}
-
И последнее мы можем добавить код в ваш класс mainactivity.java или требуемые классы
Инициализировать Шаг1
Приложение AnalyticsApplication1;
закрытый трекер mTracker;
Шаг: 2
application1 = (AnalyticsApplication) getApplication();
mTracker = application1.getDefaultTracker();
если вы запустите этот код в Google Analytics, указав имя экрана, указанное в xml.
Шаг: 3 Добавьте этот код для отслеживания событий
mTracker.send(new HitBuilders.EventBuilder()
.setCategory("DashBoard ")
.setAction("View Bookings Pressed")
.build());
Шаг: 4 Код поведения кода исключения в блоке add в блоке catch
catch (Exception e) {
** AnalyticsApplication.getInstance().trackException(e);**
e.printStackTrace();
}
Счастливое кодирование.