เพิ่ม Analytics ลงในแอป Android ของคุณ

คู่มือนี้แสดงวิธีเพิ่ม Analytics ลงในแอป Android เพื่อวัดกิจกรรมของผู้ใช้ในหน้าจอที่มีชื่อ หากคุณยังไม่มีแอปพลิเคชันและต้องการดูวิธีการทำงานของ Analytics โปรดดูแอปพลิเคชันตัวอย่างของเรา

จำเป็น: เวอร์ชันล่าสุดของรายการต่อไปนี้

ตั้งค่าโปรเจ็กต์

อัปเดตไฟล์ 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>

เพิ่มทรัพยากร Dependency ต่อไปนี้ไปยัง build.gradle ระดับโปรเจ็กต์

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

เพิ่มทรัพยากร Dependency ต่อไปนี้ของบริการ 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} ด้วยรหัสติดตาม

เพิ่มการติดตามหน้าจอ

ในส่วนนี้ คุณจะส่งมุมมองหน้าจอที่มีชื่อไปยัง Analytics ทุกครั้งที่ผู้ใช้เปิดหรือเปลี่ยนหน้าจอในแอป โค้ดควรมีลักษณะดังต่อไปนี้

  • จัดเตรียมอุปกรณ์ติดตามที่แชร์ผ่านคลาสย่อยของแอปพลิเคชัน
  • ลบล้างเมธอดโค้ดเรียกกลับสำหรับกิจกรรมที่ทำงานอยู่เบื้องหน้า
  • ระบุชื่อหน้าจอและดำเนินการติดตาม

แอปพลิเคชัน

คุณควรคลาสย่อย 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 หากต้องการแยกความแตกต่างระหว่างการดูหน้าจอของแอปใน Analytics กิจกรรมทั้งหมดที่บันทึกไว้ในเครื่องมือติดตามที่แชร์จะส่งชื่อหน้าจอล่าสุดจนกว่าจะมีการแทนที่หรือล้างข้อมูล (ตั้งค่าเป็น null)

ส่งกิจกรรม

หากต้องการส่งเหตุการณ์ ให้ตั้งค่าช่องหน้าจอในอุปกรณ์ติดตาม แล้วส่ง Hit ตัวอย่างต่อไปนี้ใช้ HitBuilders.EventBuilder ในการส่ง Event

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

ขั้นตอนถัดไป