คู่มือนี้อธิบายวิธีใช้แท็ก Universal Analytics ทั่วไปโดยใช้ Google Tag Manager SDK สำหรับ Android
การกําหนดค่าแท็ก Universal Analytics (UA) ทั่วไป
การใช้ Universal Analytics ในแอปพลิเคชันของคุณด้วย Google Tag Manager ช่วยให้สามารถเปลี่ยนแปลงการติดตั้งใช้งาน Google Analytics ได้ทันที โดยที่คุณไม่จำเป็นต้องสร้างไบนารีของแอปอีกครั้งและส่งไบนารีของแอปไปยังตลาดกลางอีกครั้ง
คู่มือนี้จะแสดงวิธีทํางานต่อไปนี้ให้เสร็จสมบูรณ์โดยใช้แท็ก Universal Analytics และ Google Tag Manager SDK สําหรับ Android
การส่งจำนวนการดูแอป (การดูหน้าจอ)
หากต้องการส่งการดูแอป (การดูหน้าจอ) ไปยัง Google Analytics ทุกครั้งที่มีการเปิดหน้าจอใหม่ในแอป ให้ทำดังนี้
- สร้างมาโครชื่อหน้าจอ
- สร้างกฎ OpenScreenEvent
- สร้างแท็กการดูแอปของ UA (การดูหน้าจอ)
- อัปเดตโค้ดเพื่อพุชเหตุการณ์และชื่อหน้าจอไปยังชั้นข้อมูล
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 หรือเนื้อหาในแอป ให้ทำดังนี้
- (ไม่บังคับ) สร้างมาโครเหตุการณ์
- สร้างกฎเหตุการณ์
- สร้างแท็กเหตุการณ์ UA
- อัปเดตโค้ดเพื่อพุชเหตุการณ์และค่ามาโครเหตุการณ์ไปยังชั้นข้อมูล
ขั้นตอนต่อไปนี้จะแสดงวิธีการทำงานสำหรับเหตุการณ์ที่เริ่มทำงานเมื่อผู้ใช้เริ่มเล่นวิดีโอ
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 เมื่อผู้ใช้ทำการซื้อในแอปเสร็จสมบูรณ์ ให้ทำดังนี้
- สร้างกฎธุรกรรม
- สร้างแท็กธุรกรรม UA
- อัปเดตโค้ดเพื่อพุชเหตุการณ์และข้อมูลธุรกรรม / รายการไปยัง 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>