إضافة "إحصاءات Google" إلى تطبيق Android

يوضّح هذا الدليل كيفية إضافة "إحصاءات Google" إلى تطبيق Android لقياس نشاط المستخدم على الشاشات المسماة. إذا لم يكن لديك تطبيق حتى الآن وكنت تريد فقط الاطّلاع على آلية عمل "إحصاءات Google"، يمكنك إلقاء نظرة على نموذج التطبيق.

مطلوب: أحدث الإصدارات من:

إعداد مشروعك

يُرجى تعديل ملف "AndroidManifest.xml" الخاص بمشروعك ليتضمّن إذنَي INTERNET وACCESS_NETWORK_STATE:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.analytics">

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

  <application android:name="AnalyticsApplication">
    ...
  </application>
</manifest>

أضف التبعية التالية إلى build.gradle على مستوى المشروع:

dependencies {
  // ...
  classpath 'com.google.gms:google-services:3.0.0'
}

إضافة الاعتمادية التالية على "خدمات Google Play" إلى "app/build.gradle":

dependencies {
  // ...
  compile 'com.google.android.gms:play-services-analytics:10.2.4'
}

إنشاء 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>

استبدِل ${YOUR_TRACKING_ID} برقم تعريف التتبّع.

إضافة ميزة "تتبُّع الشاشة"

ستُرسل هنا عرض شاشة مُسمّى إلى "إحصاءات Google" كلما فتح المستخدم الشاشات أو يغيرها في تطبيقك. ويجب أن تفعل الرمز البرمجي ما يلي:

  • توفير أداة التتبُّع المشتركة من خلال فئة فرعية للتطبيق.
  • إلغاء طريقة معاودة الاتصال للنشاط الذي تعمل في المقدّمة.
  • أدخل اسمًا للشاشة ونفذ التتبع.

طلب الانضمام

يجب عليك استخدام الفئة الفرعية Application وتوفير طريقة مساعِدة تؤدي إلى إرجاع أداة تتبُّع التطبيق.</>

/*
 * Copyright Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.google.samples.quickstart.analytics;

import android.app.Application;

import com.google.android.gms.analytics.GoogleAnalytics;
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 static GoogleAnalytics sAnalytics;
  private static Tracker sTracker;

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

    sAnalytics = GoogleAnalytics.getInstance(this);
  }

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

    return sTracker;
  }
}

نشاط أو جزء

افتح النشاط الذي تريد تتبُّعه. يمكنك أيضًا تتبُّع علامة Fragment، ولكن عليك التأكّد من أنّها تمثّل مشاهدة الشاشة بشكل صحيح.

يمكنك تجاهُل طريقة onCreate في Activity أو Fragment التي تريد تتبُّعها للحصول على مثيل Tracker المشترك:

// Obtain the shared Tracker instance.
AnalyticsApplication application = (AnalyticsApplication) getApplication();
mTracker = application.getDefaultTracker();

يُرجى إلغاء الطريقة المناسبة، مثل onResume، للسمة Activity أو onPageSelected لكي يتم تسجيل ViewPager عند تغيير الشاشة.

Log.i(TAG, "Setting screen name: " + name);
mTracker.setScreenName("Image~" + name);
mTracker.send(new HitBuilders.ScreenViewBuilder().build());

أضِف رمز تتبّع إلى كل Activity أو Fragment تمثل الشاشة. احرص على تحديد اسم داخل كل Activity أو Fragment إذا كنت تريد التمييز بين مرات مشاهدة الصفحة في التطبيق في "إحصاءات Google". إنّ جميع الأنشطة المسجّلة على جهاز التتبُّع المشترَك ترسل أحدث اسم شاشة إلى أن يتم استبداله أو محوه (يتم ضبطه على null).

إرسال حدث

لإرسال حدث، اضبط قيم حقل الشاشة على جهاز التتبُّع، ثم أرسل النتيجة. يستخدم المثال التالي HitBuilders.EventBuilder لإرسال Event:

mTracker.send(new HitBuilders.EventBuilder()
    .setCategory("Action")
    .setAction("Share")
    .build());

الخطوات التالية