คู่มือนี้ช่วยให้นักพัฒนาซอฟต์แวร์ที่ใช้ข้อกําหนด IAB Tech Lab Event และ Conversion API (ECAPI) แมปข้อมูลเหตุการณ์และ Conversion กับสคีมาการนําเข้าเหตุการณ์ Data Manager API
ภาพรวม
ECAPI เป็นมาตรฐานข้อมูลแบบโอเพนซอร์สที่ไม่ขึ้นกับแพลตฟอร์ม ซึ่งออกแบบมาเพื่อกําหนดโครงสร้างของเหตุการณ์และ Conversion ที่เกี่ยวข้องกับการตลาด
ตารางต่อไปนี้แสดงภาพรวมของวิธีที่แอตทริบิวต์และหลักการออกแบบที่สำคัญของ ECAPI เปรียบเทียบกับ Data Manager API
| ECAPI | Data Manager API | |
|---|---|---|
| การกรองข้อมูลที่ซ้ำกันออก | อิงตาม id (รหัสกิจกรรม) |
ขึ้นอยู่กับ transaction_id |
| การกำหนดเส้นทางเหตุการณ์ | ปลายทางของข้อมูลจะระบุโดยฟิลด์ data_set_id ในเพย์โหลดของเหตุการณ์ |
ฟิลด์ destinations ของคำขอจะกำหนด
ปลายทางสำหรับเหตุการณ์
นอกจากนี้ Data Manager API ยังรองรับการกำหนดเส้นทางเหตุการณ์ไปยังปลายทางหลายแห่งในคำขอเดียวด้วย ดูข้อมูลเพิ่มเติมได้ในคู่มือปลายทาง |
| ฟิลด์ความเป็นส่วนตัวและความยินยอม | สตริงความยินยอมของ Global Privacy Platform (GPP) |
Data Manager API ไม่ยอมรับหรือแยกวิเคราะห์สตริงความยินยอมของ Global Privacy Platform (GPP)
ต้องตั้งค่าฟิลด์ความยินยอมในออบเจ็กต์ Consent
คุณตั้งค่าความยินยอมได้ทั้งในระดับคำขอ (ซึ่งใช้กับเหตุการณ์ทั้งหมดในคำขอ) หรือในระดับเหตุการณ์ (ซึ่งช่วยให้คุณระบุการตั้งค่าความยินยอมที่แตกต่างกันสำหรับเหตุการณ์แต่ละรายการได้) |
การแมปฟิลด์โครงสร้าง
ตารางการแมปต่อไปนี้จะกำหนดวิธีที่ฟิลด์แต่ละรายการจากข้อกำหนด ECAPI แปลงเป็นฟิลด์ที่ Data Manager API ยอมรับ
การแมปออบเจ็กต์เหตุการณ์
ECAPI (event) |
Data Manager API (Event) |
หมายเหตุ |
|---|---|---|
data_set_id |
|
กำหนดได้ที่ระดับต่อไปนี้
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนด Destination
และระบุรหัสปลายทางของผลิตภัณฑ์ได้ที่
กำหนดค่าปลายทางและส่วนหัว
|
id |
transaction_id |
ค่านี้ใช้ในการขจัดเหตุการณ์ Conversion ที่ซ้ำกัน ดูข้อมูลเพิ่มเติม |
timestamp |
event_timestamp |
ต้องระบุ ECAPI ใช้รูปแบบ Epoch ของ Unix (จำนวนเต็ม) สำหรับการประทับเวลา
เมื่อแมปกับ Data Manager API ฟิลด์ event_timestamp ต้อง
แปลงเป็นรูปแบบใดรูปแบบหนึ่งต่อไปนี้
ดูรายละเอียดได้ที่รูปแบบการประทับเวลา |
event_type / custom_event |
event_name |
ซึ่งอาจเป็นชื่อเหตุการณ์ที่แนะนํา (เช่น purchase) หรือชื่อเหตุการณ์ที่กําหนดเอง โปรดดูรายละเอียดในหัวข้อชื่อเหตุการณ์มาตรฐาน |
user_data |
user_data |
แมปกับออบเจ็กต์ UserData ซึ่งยอมรับรายการออบเจ็กต์ UserIdentifier |
value |
conversion_value |
แมปโดยตรงเป็น Double หรือ Float ที่แสดงมูลค่าทางการเงินของ Conversion |
currency_code |
currency |
แมปกับรหัสสกุลเงิน 3 ตัวอักษรพิมพ์ใหญ่ (เช่น USD) |
source |
event_source |
ตั้งค่าเป็นค่าจาก Enum EventSource |
properties |
|
คุณเชื่อมโยงสินค้าที่ระดับธุรกรรมกับอาร์เรย์ cart_data.items ในออบเจ็กต์ CartData ได้
Data Manager API รองรับฟิลด์ Merchant Center ที่ไม่บังคับหลายรายการสำหรับผลิตภัณฑ์
ที่มีอยู่ในบัญชี Merchant Center
หากปลายทางเป็นการกระทำที่ถือเป็น Conversion ของ Google Ads คุณยังระบุ พารามิเตอร์ที่กำหนดเองเพิ่มเติมในช่อง custom_variables เป็นรายการออบเจ็กต์ CustomVariable ได้ด้วย
หากปลายทางเป็นสตรีมข้อมูล Google Analytics คุณจะรวมพารามิเตอร์เหตุการณ์เพิ่มเติม ในช่อง additional_event_parameters เป็นรายการออบเจ็กต์
AdditionalEventParameter ได้
|
ext |
ไม่มีเวอร์ชันเทียบเท่า |
การแมปออบเจ็กต์ข้อมูลผู้ใช้
ใน Data Manager API ฟิลด์ user_data ในออบเจ็กต์ Event
ยอมรับออบเจ็กต์ UserData ซึ่งคาดหวังว่าจะเป็นรายการออบเจ็กต์ UserIdentifier ซึ่งอาจมีตัวระบุผู้ใช้แต่ละราย เช่น อีเมล หมายเลขโทรศัพท์ หรือคอมโพเนนต์ที่อยู่
ECAPI (user_data) |
Data Manager API (Event) |
หมายเหตุ |
|---|---|---|
customer_identifier |
user_id (Google Analytics) |
สําหรับเหตุการณ์ Google Analytics ฟิลด์ user_id จะแสดงถึง User-ID Data Manager API ไม่รองรับฟิลด์รหัสลูกค้าทั่วไปสำหรับปลายทางอื่นๆ |
uids |
ไม่มีเวอร์ชันเทียบเท่า | Data Manager API ไม่รองรับอาร์เรย์ uids ที่มีโครงสร้างซึ่งมีประเภทเอเจนต์และโดเมน |
customer_segments |
user_properties |
แผนที่ไป UserProperties บน Event |
email_address |
user_data.user_identifiers[].email_address |
ตั้งค่าเป็นอีเมลที่จัดรูปแบบและแฮชแล้ว นอกจากนี้ คุณยังเข้ารหัสอีเมลที่แฮชแล้วได้ด้วย |
phone_numbers |
user_data.user_identifiers[].phone_number |
ตั้งค่าเป็นหมายเลขโทรศัพท์ที่จัดรูปแบบและแฮชแล้ว คุณยังเข้ารหัสหมายเลขโทรศัพท์ที่แฮชแล้วได้ด้วย |
utcoffset |
ไม่มีเวอร์ชันเทียบเท่า |
หากใช้รูปแบบ JSON คุณจะระบุออฟเซ็ตเขตเวลาได้โดยตรงในสตริง RFC 3339 event_timestamp
หากใช้บัฟเฟอร์โปรโตคอล คุณจะใช้ฟังก์ชันยูทิลิตี เช่น Timestamps.parse(String) เพื่อจัดการการแปลงเขตเวลาเป็นวินาทีและนาโนได้
ดูรายละเอียดได้ที่รูปแบบการประทับเวลา |
address |
user_data.user_identifiers[].address |
แมปกับออบเจ็กต์ AddressInfo ดูการแมปออบเจ็กต์ที่อยู่ |
gpp_string |
ไม่มีเวอร์ชันเทียบเท่า | ต้องแมปความยินยอมกับออบเจ็กต์ Consent ระดับคำขอหรือระดับเหตุการณ์ ดูภาพรวมความเป็นส่วนตัวและความยินยอม |
gpp_sid |
ไม่มีเวอร์ชันเทียบเท่า | ต้องแมปความยินยอมกับออบเจ็กต์ Consent ระดับคำขอหรือระดับเหตุการณ์ ดูภาพรวมความเป็นส่วนตัวและความยินยอม |
mmt_only |
ไม่มีเวอร์ชันเทียบเท่า | |
click_id |
ad_identifiers.gclid |
แมปรหัสคลิกของ Google (gclid) ดูรายละเอียดเพิ่มเติมได้ที่ AdIdentifiers |
impression_id |
ad_identifiers.impression_id |
ดูรายละเอียดเพิ่มเติมได้ที่ AdIdentifiers |
event_ip_address |
event_device_info.ip_address |
ดูฟิลด์ที่ใช้ได้ใน DeviceInfo |
event_user_agent |
event_device_info.user_agent |
ดูฟิลด์ที่ใช้ได้ใน DeviceInfo |
ifa |
ad_identifiers.mobile_device_id |
แมปกับตัวระบุบนมือถือสำหรับผู้ลงโฆษณา (IDFA ใน iOS, AdID ใน Android) ดูรายละเอียดเพิ่มเติมได้ที่ AdIdentifiers |
landing_ip_address |
ad_identifiers.landing_page_device_info.ip_address |
ดูฟิลด์ที่ใช้ได้ใน DeviceInfo |
landing_user_agent |
ad_identifiers.landing_page_device_info.user_agent |
ดูฟิลด์ที่ใช้ได้ใน DeviceInfo |
age_range |
ไม่มีเวอร์ชันเทียบเท่า | |
gender |
ไม่มีเวอร์ชันเทียบเท่า | |
ext |
ไม่มีเวอร์ชันเทียบเท่า |
การแมปออบเจ็กต์ที่อยู่
ECAPI (address) |
Data Manager API (AddressInfo) |
หมายเหตุ |
|---|---|---|
first_name |
given_name |
แมปกับฟิลด์ given_name ใน AddressInfo ปฏิบัติตามหลักเกณฑ์การจัดรูปแบบและการแฮช นอกจากนี้ คุณยังเข้ารหัสแอตทริบิวต์ที่แฮชของที่อยู่ได้ด้วย |
last_name |
family_name |
แมปกับฟิลด์ family_name ใน AddressInfo ปฏิบัติตามหลักเกณฑ์การจัดรูปแบบและการแฮช นอกจากนี้ คุณยังเข้ารหัสแอตทริบิวต์ที่แฮชของที่อยู่ได้ด้วย |
street |
ไม่มีเวอร์ชันเทียบเท่า | ไม่รองรับใน Data Manager API |
city |
ไม่มีเวอร์ชันเทียบเท่า | ไม่รองรับใน Data Manager API |
state |
ไม่มีเวอร์ชันเทียบเท่า | ไม่รองรับใน Data Manager API |
country_code |
region_code |
อย่าแฮช แมปกับฟิลด์ region_code ใน AddressInfo ปฏิบัติตามหลักเกณฑ์การจัดรูปแบบ |
postal_code |
postal_code |
อย่าแฮช แมปกับฟิลด์ postal_code ใน AddressInfo ปฏิบัติตามหลักเกณฑ์การจัดรูปแบบ |
address_type |
ไม่มีเวอร์ชันเทียบเท่า | ไม่รองรับใน Data Manager API |
ext |
ไม่มีเวอร์ชันเทียบเท่า |
การแมปออบเจ็กต์รายการ
ECAPI (item) |
Data Manager API (Item) |
หมายเหตุ |
|---|---|---|
id |
item_id |
ต้องระบุสําหรับเหตุการณ์ Google Analytics ตั้งค่าเป็นตัวระบุที่ไม่ซ้ํากันที่เป็นมาตรฐานสําหรับสินค้า |
| ไม่มีเวอร์ชันเทียบเท่า | merchant_product_id |
ต้องระบุสําหรับ Conversion ของ Floodlight และ Conversion ของ Google Ads ที่มีข้อมูลรถเข็นช็อปปิ้ง ตั้งค่าเป็นรหัสผลิตภัณฑ์ภายในบัญชี Merchant Center |
name |
additional_item_parameters |
แผนที่เป็น item_name ในรายการ additional_item_parameters |
price |
unit_price |
|
discount |
additional_item_parameters หรือ custom_variables |
แมปเป็น discount ใน additional_item_parameters (สําหรับ Google Analytics) หรือเป็นตัวแปรที่กําหนดเองใน custom_variables (สําหรับ Google Ads) |
quantity |
quantity |
แปลงfloatค่าเป็นจำนวนเต็ม (int64) |
brand |
additional_item_parameters |
แผนที่เป็น item_brand ในรายการ additional_item_parameters |
affiliation |
additional_item_parameters |
แผนที่เป็น affiliation ในรายการ additional_item_parameters |
category |
additional_item_parameters |
แผนที่เป็น item_category ในรายการ additional_item_parameters |
cattax |
ไม่มีเวอร์ชันเทียบเท่า | |
item_coupon |
additional_item_parameters |
แผนที่เป็น coupon ในรายการ additional_item_parameters |
item_list_id |
additional_item_parameters |
แผนที่เป็น item_list_id ในรายการ additional_item_parameters |
item_list_name |
additional_item_parameters |
แผนที่เป็น item_list_name ในรายการ additional_item_parameters |
item_item_variant |
additional_item_parameters |
แผนที่เป็น item_variant ในรายการ additional_item_parameters |
item_location_id |
additional_item_parameters |
แผนที่ของ location_id ใน additional_item_parameters |
ext |
ไม่มีเวอร์ชันเทียบเท่า |
ชื่อเหตุการณ์มาตรฐาน
เหตุการณ์มาตรฐาน ECAPI สอดคล้องกับรูปแบบการตั้งชื่อของ Google Analytics เป็นอย่างมาก
- หากคุณส่งเหตุการณ์ไปยังสตรีมข้อมูล Google Analytics
event_nameฟิลด์นี้จะต้องระบุ - ดูฟิลด์ พารามิเตอร์ และคําขอการนําเข้า Data Manager API ตัวอย่างที่เชื่อมโยง สําหรับแต่ละเหตุการณ์ได้ในข้อมูลอ้างอิงเหตุการณ์ที่แนะนําของ Google Analytics
- นอกจากนี้ คุณยังส่งเหตุการณ์ที่กำหนดเองได้ด้วย หากเป็นไปตามกฎการตั้งชื่อเหตุการณ์
เหตุการณ์มาตรฐาน ECAPI ส่วนใหญ่ (เช่น purchase, add_to_cart, begin_checkout, search และ refund) มีชื่อเหตุการณ์เดียวกันกับเหตุการณ์ที่ Google Analytics แนะนํา อย่างไรก็ตาม มีข้อยกเว้นบางกรณีที่ Google Analytics
ใช้กาลปัจจุบันแทนกาลอดีต ดังนี้
viewed_itemแมปกับview_itemviewed_item_listแมปกับview_item_listviewed_cartแมปกับview_cart
ตัวอย่างคำขอ
แท็บต่อไปนี้แสดงการเปรียบเทียบระหว่างเพย์โหลดเหตุการณ์ Conversion ของ ECAPI
กับการแสดงเป็น Data Manager API ที่ถูกต้อง
IngestEventsRequest
ECAPI
ต่อไปนี้คือตัวอย่างเพย์โหลด JSON ที่เป็นไปตามข้อกำหนด ECAPI
{
"data_set_id": "123456789",
"id": "ABC798654321",
"timestamp": 1781035621,
"event_type": "purchase",
"value": 30.03,
"currency_code": "USD",
"source": "website",
"user_data": {
"customer_identifier": "123456789123456789",
"customer_segments": ["gold_member"],
"email_addresses": [
"3E693CF7E5B67880BFF33B2D2626DADB7BF1D4BC737192E47CF8BAA89ACF2250"
],
"address": {
"first_name": "96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a",
"last_name": "db98d2607efffa28aff66975868bf54c075eca7157e35064dce08e20b85b1081",
"country_code": "US",
"postal_code": "94045"
},
"event_ip_address": "192.0.2.1",
"event_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
},
"properties": {
"items": [
{
"id": "SKU_12345",
"quantity": 3,
"item_price": 10.01
}
]
}
}
Data Manager API
นี่คือตัวอย่าง IngestEventsRequest สำหรับ
ข้อมูลเหตุการณ์ที่จัดรูปแบบ แฮช และเข้ารหัส ซึ่งใช้สำหรับปลายทาง Google Ads
ตามที่ระบุโดยประเภทบัญชี GOOGLE_ADS ใน
ปลายทาง
{
"destinations": [
{
"operating_account": {
"account_type": "GOOGLE_ADS",
"account_id": "1234567890"
},
"login_account": {
"account_type": "GOOGLE_ADS",
"account_id": "1234567890"
},
"product_destination_id": "123456789"
}
],
"encoding": "HEX",
"events": [
{
"event_name": "purchase",
"transaction_id": "ABC798654321",
"event_timestamp": "2026-06-10T20:07:01Z",
"event_source": "WEB",
"user_properties": {
"additional_user_properties":[
{
"property_name": "customer_segment",
"value": "gold_member"
}
]
},
"user_data": {
"user_identifiers": [
{
"email_address": "3E693CF7E5B67880BFF33B2D2626DADB7BF1D4BC737192E47CF8BAA89ACF2250"
},
{
"address": {
"given_name": "96D9632F363564CC3032521409CF22A852F2032EEC099ED5967C0D000CEC607A",
"family_name": "DB98D2607EFFFA28AFF66975868BF54C075ECA7157E35064DCE08E20B85B1081",
"region_code": "US",
"postal_code": "94045"
}
}
]
},
"event_device_info": {
"ip_address": "192.0.2.1",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
},
"conversion_value": 30.03,
"currency": "USD",
"cart_data": {
"items": [
{
"item_id": "SKU_12345",
"quantity": 3,
"unit_price": 10.01
}
]
}
}
]
}