Android v3 (เดิม) - แท็ก Universal Analytics

คู่มือนี้อธิบายวิธีใช้แท็ก Universal Analytics ทั่วไปโดยใช้ Google Tag Manager SDK สำหรับ Android

  1. การกําหนดค่าแท็ก Universal Analytics (UA) ทั่วไป
    1. การส่งข้อมูลพร็อพเพอร์ตี้แอป (การดูหน้าจอ)
    2. การส่งเหตุการณ์
    3. การส่งธุรกรรมอีคอมเมิร์ซ
      1. ตัวแปรชั้นข้อมูลอีคอมเมิร์ซ
    4. ติดตั้งการระบุแหล่งที่มาของผู้อ้างอิง

การกําหนดค่าแท็ก Universal Analytics (UA) ทั่วไป

การใช้ Universal Analytics ในแอปพลิเคชันของคุณด้วย Google Tag Manager ช่วยให้สามารถเปลี่ยนแปลงการติดตั้งใช้งาน Google Analytics ได้ทันที โดยที่คุณไม่จำเป็นต้องสร้างไบนารีของแอปอีกครั้งและส่งไบนารีของแอปไปยังตลาดกลางอีกครั้ง

คู่มือนี้จะแสดงวิธีทํางานต่อไปนี้ให้เสร็จสมบูรณ์โดยใช้แท็ก Universal Analytics และ Google Tag Manager SDK สําหรับ Android

การส่งจำนวนการดูแอป (การดูหน้าจอ)

หากต้องการส่งการดูแอป (การดูหน้าจอ) ไปยัง Google Analytics ทุกครั้งที่มีการเปิดหน้าจอใหม่ในแอป ให้ทำดังนี้

  1. สร้างมาโครชื่อหน้าจอ
  2. สร้างกฎ OpenScreenEvent
  3. สร้างแท็กการดูแอปของ UA (การดูหน้าจอ)
  4. อัปเดตโค้ดเพื่อพุชเหตุการณ์และชื่อหน้าจอไปยังชั้นข้อมูล

1. สร้างมาโครชื่อหน้าจอ

สร้างมาโครชื่อหน้าจอใหม่โดยใช้ค่าของการกำหนดค่าต่อไปนี้

ชื่อมาโคร : screen name
ประเภทมาโคร : Data Layer Variable
ชื่อตัวแปรชั้นข้อมูล : screenName

2. สร้างกฎ OpenScreenEvent

สร้างกฎใหม่ที่จะใช้เพื่อเริ่มการทำงานของแท็กการแสดงผลแอป UA (การดูหน้าจอ) ใหม่ โดยใช้การกำหนดค่าต่อไปนี้

ชื่อกฎ : OpenScreenEvent
เงื่อนไข: {{ event }} เท่ากับ openScreen

3. สร้างแท็ก UA การดูแอป (การดูหน้าจอ)

สร้างแท็ก UA ใหม่โดยใช้การกําหนดค่าต่อไปนี้

ชื่อแท็ก : Screen Open
รหัสติดตาม : รหัสพร็อพเพอร์ตี้
ประเภทแท็ก : Universal Analytics (beta)
ประเภทแท็ก : AppView
การกำหนดค่าพื้นฐาน - ชื่อแอป : {{ app name }}
การกำหนดค่าพื้นฐาน - เวอร์ชันแอป : {{ app version }}
การกำหนดค่าพื้นฐาน - ชื่อหน้าจอ : {{ screen name }}}

4. อัปเดตโค้ดเพื่อพุชเหตุการณ์และชื่อหน้าจอไปยังชั้นข้อมูล

เพิ่มโค้ดลงในแอปเพื่อพุชเหตุการณ์ openScreen และค่า screenName ไปยังชั้นข้อมูล ตามตัวอย่างต่อไปนี้

// Push an 'openScreen' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

  private static final String SCREEN_NAME = "Home Screen";
  private DataLayer mDataLayer;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate();
  }

  @Override
  public void onStart() {
    super.onStart();
    mDataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    mDataLayer.push(DataLayer.mapOf("event", "openScreen",        // Event, Name of Open Screen Event.
                                    "screenName", SCREEN_NAME));  // Name of screen name field, Screen name value.
  }
}

การส่งเหตุการณ์

หากต้องการส่งเหตุการณ์ไปยัง Google Analytics เมื่อผู้ใช้โต้ตอบกับตัวควบคุม UI หรือเนื้อหาในแอป ให้ทำดังนี้

  1. (ไม่บังคับ) สร้างมาโครเหตุการณ์
  2. สร้างกฎเหตุการณ์
  3. สร้างแท็กเหตุการณ์ UA
  4. อัปเดตโค้ดเพื่อพุชเหตุการณ์และค่ามาโครเหตุการณ์ไปยังชั้นข้อมูล

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

1. (ไม่บังคับ) สร้างมาโครเหตุการณ์

หากเหตุการณ์จะใช้ตัวแปรชั้นข้อมูลสำหรับช่องหมวดหมู่ การดำเนินการ ป้ายกำกับ หรือค่า คุณต้องกำหนดค่ามาโครเหล่านั้นในอินเทอร์เฟซก่อน ในตัวอย่างนี้ แท็กเหตุการณ์การเล่นวิดีโอจะอาศัยตัวแปรชั้นข้อมูลที่ระบุชื่อของวิดีโอที่เล่น

หากต้องการใช้ชื่อวิดีโอนี้ เราจะสร้างมาโครใหม่ที่มีค่าการกำหนดค่าต่อไปนี้

ชื่อมาโคร : video name
ประเภทมาโคร: Data Layer Variable
ชื่อตัวแปรชั้นข้อมูล : videoName

2. สร้างกฎเหตุการณ์

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

ชื่อกฎ : VideoPlayEvent
เงื่อนไข : {{ event }} เท่ากับ videoPlay

สร้างแท็กเหตุการณ์ UA

สร้างแท็กเหตุการณ์ UA ที่จะเริ่มทํางานเมื่อกฎที่สร้างขึ้นในขั้นตอนก่อนหน้าประเมินเป็น true ในตัวอย่างการเล่นวิดีโอ แท็กดังกล่าวจะมีลักษณะดังนี้

ชื่อแท็ก : Video Play Event
รหัสการติดตาม : รหัสพร็อพเพอร์ตี้ของคุณ
ประเภทแท็ก : Universal Analytics (beta)
ประเภทแท็ก : Event
พารามิเตอร์การติดตามผลของเหตุการณ์ - หมวดหมู่ : Video
พารามิเตอร์การติดตามผลของเหตุการณ์ - การกระทำ : Play
พารามิเตอร์การติดตามผลของเหตุการณ์ - ป้ายกำกับ : {{ video name }}
การกำหนดค่าพื้นฐาน - ชื่อแอป : {{ app name }}
การกำหนดค่าพื้นฐาน - เวอร์ชันแอป : {{ app version }}
ชื่อหน้าจอตามค่าเริ่มต้น : {{ app version }}
{{ screen name }}

อัปเดตโค้ดเพื่อพุชเหตุการณ์ไปยังชั้นข้อมูล

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

//  Push a 'videoPlay' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

public class VideoPlayer {

  // Called when a user initiates a video playback.
  public void onPlay(Video v) {
    DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    dataLayer.push(DataLayer.mapOf("event", "videoPlay",        // Event, Name of Open Screen Event.
                                   "videoName", v.getName());   // Additional data layer variables used by the event tag.
    play(v);
  }

  // Rest of implementation;

}

การส่งธุรกรรมอีคอมเมิร์ซ

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

  1. สร้างกฎธุรกรรม
  2. สร้างแท็กธุรกรรม UA
  3. อัปเดตโค้ดเพื่อพุชเหตุการณ์และข้อมูลธุรกรรม / รายการไปยัง DataLayer

1. สร้างกฎธุรกรรม

จากนั้น สร้างกฎใหม่ด้วยค่าการกำหนดค่าต่อไปนี้

ชื่อกฎ : TransactionCompleted
เงื่อนไข : {{ event }} เท่ากับ transaction

2. สร้างแท็กธุรกรรม UA

สร้างแท็กธุรกรรม UA ที่มีค่าต่อไปนี้

ชื่อแท็ก : Transaction Completed
รหัสติดตาม : รหัสพร็อพเพอร์ตี้
ประเภทแท็ก : Universal Analytics (beta)
ประเภทแท็ก : Transaction
การกำหนดค่าพื้นฐาน - ชื่อแอป : {{ app name }}
การกำหนดค่าพื้นฐาน - เวอร์ชันแอป : {{ app version }}
การกำหนดค่าพื้นฐาน - ชื่อหน้าจอ : {{ screen name }}

3. อัปเดตโค้ดเพื่อพุชเหตุการณ์และข้อมูลธุรกรรม / รายการไปยัง DataLayer

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

// Called when a user completes a transaction.
public void onPurchaseCompleted(Purchase p) {

  DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

  // Put maps of item data into an array that will be pushed to the data layer.
  ArrayList<Map<String, String>> purchasedItems = new ArrayList<Map<String, String>>();
  for (Item i : p.items) {
    HashMap<String, String> currentItem = new HashMap<String, String>();

    currentItem.put("name", i.getProductName());
    currentItem.put("sku", i.getProductSku());
    currentItem.put("category", i.getProductCategory());
    currentItem.put("price", i.getProductPrice());
    currentItem.put("currency", "USD");
    currentItem.put("quantity", i.getProductQty());

    purchasedItems.add(currentItem);
  }

  // This call assumes the container has already been opened, otherwise events
  // pushed to the DataLayer will not fire tags in that container.
  dataLayer.push(DataLayer.mapOf("event", "transaction",               // Event, Name of Transaction Event.
                                 "transactionId", p.getTransId(),      // Additional fields required by the tag.
                                 "transactionTotal", p.getTotal(),
                                 "transactionAffiliation", "In-app Store",
                                 "transactionTax", p.getTax(),
                                 "transactionShipping", p.getShippingCost(),
                                 "transactionCurrency", "USD",
                                 "transactionProducts", purchasedItems));

  // Since the data layer is persistent, you should reset fields to null after
  // you are done pushing the transaction.
  dataLayer.push(DataLayer.mapOf("transactionId", null,
                                 "transactionTotal", null,
                                 "transactionAffiliation", null,
                                 "transactionTax", null,
                                 "transactionShipping", null,
                                 "transactionCurrency", null,
                                 "transactionProducts", null));
}

ตัวแปรชั้นข้อมูลอีคอมเมิร์ซที่รองรับ

แท็กธุรกรรม UA รองรับตัวแปรชั้นข้อมูลต่อไปนี้

ตัวแปรธุรกรรม

ชื่อตัวแปร คำอธิบาย Type จำเป็น
transactionId รหัสระบุธุรกรรมที่ไม่ซ้ำกัน สตริง มี
transactionAffiliation คู่ค้าหรือร้านค้า สตริง ไม่ได้
transactionTotal มูลค่ารวมของธุรกรรม สตริง ไม่ได้
transactionTax จำนวนภาษีสำหรับธุรกรรม สตริง ไม่ได้
transactionShipping ค่าจัดส่งสำหรับธุรกรรม สตริง ไม่ได้
transactionCurrency สกุลเงินของธุรกรรม สตริง ไม่ได้
transactionProducts รายการสินค้าที่ซื้อในธุรกรรม อาร์เรย์ของแผนที่ที่มีตัวแปรรายการ ไม่ได้

ตัวแปรรายการ

ชื่อตัวแปร คำอธิบาย Type จำเป็น
name ชื่อผลิตภัณฑ์ สตริง มี
sku SKU ของผลิตภัณฑ์ สตริง ไม่ได้
category หมวดหมู่ผลิตภัณฑ์ สตริง ไม่ได้
price ราคาผลิตภัณฑ์ สตริง ไม่ได้
currency ประเภทสกุลเงินของ price สตริง ไม่ได้
quantity จำนวนสินค้า สตริง ไม่ได้

ติดตั้งการระบุแหล่งที่มาของผู้อ้างอิง

เมื่อพร้อมใช้งาน ข้อมูลอ้างอิงการติดตั้งจะรวมอยู่ใน Hit ของ Google Analytics หรือคำขอพิกเซลรีมาร์เก็ตติ้งของ Google Ads โดยอัตโนมัติเมื่อลงทะเบียนบริการและตัวรับต่อไปนี้ในไฟล์ AndroidManifest.xml

<!-- Used for install referrer tracking -->
<service android:name="com.google.tagmanager.InstallReferrerService" />
<receiver android:name="com.google.tagmanager.InstallReferrerReceiver" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>