يساعد هذا الدليل المطوّرين الذين يستخدمون مواصفات Event and Conversion API (ECAPI) من IAB Tech Lab في ربط بيانات الأحداث والإحالات الناجحة بمخطّط نقل الأحداث في Data Manager API.
نظرة عامة
ECAPI هو معيار بيانات مفتوح المصدر ومستقل عن المنصة يحدّد بنية الأحداث والإحالات الناجحة ذات الصلة بالتسويق.
يقدّم الجدول التالي نظرة عامة على كيفية مقارنة السمات الرئيسية ومبادئ التصميم في 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 |
تزيل التكرار في أحداث الإحالات الناجحة. اطّلِع على طريقة معالجة Google للبيانات المتعدّدة المصادر في أدلة إرسال الأحداث لكلّ من إعلانات Google وإحصاءات Google وFloodlight. |
timestamp |
event_timestamp |
هذا العنصر مطلوب. تستخدم واجهة ECAPI تنسيق حقبة يونكس (عدد صحيح) للطوابع الزمنية.
عند الربط بواجهة Data Manager API، يجب تحويل الحقل event_timestamp إلى أحد التنسيقات التالية:
يمكنك الاطّلاع على تنسيق الطابع الزمني لمزيد من التفاصيل. |
event_type / custom_event |
event_name |
يمكن أن يكون هذا الاسم اسم حدث مقترَحًا (مثل purchase) أو اسم حدث مخصّصًا. لمزيد من التفاصيل، يُرجى الاطّلاع على أسماء الأحداث العادية. |
user_data |
user_data |
يتم ربطها بعنصر UserData الذي يقبل قائمة بعناصر UserIdentifier. |
value |
conversion_value |
يمكنك ربطها مباشرةً كقيمة مزدوجة أو عائمة تمثّل القيمة النقدية للإحالة الناجحة. |
currency_code |
currency |
يجب ربطها برمز عملة مكوّن من ثلاثة أحرف لاتينية كبيرة (مثلاً، USD). |
source |
event_source |
يجب ضبطها على قيمة من تعداد EventSource. |
properties |
|
اربط السلع على مستوى المعاملة بمصفوفة cart_data.items في عنصر CartData. تتيح واجهة Data Manager API استخدام عدة حقول اختيارية في Merchant Center للمنتجات المتوفّرة في حسابات Merchant Center.
إذا كانت وجهتك هي إجراء إحالة ناجحة في "إعلانات Google"، يمكنك أيضًا تضمين مَعلمات مخصّصة إضافية في الحقل custom_variables كقائمة من
عناصر CustomVariable.
إذا كانت وجهتك هي مصدر بيانات في "إحصاءات Google"، يمكنك تضمين مَعلمات إضافية خاصة بالحدث في الحقل 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) |
بالنسبة إلى أحداث "إحصاءات Google"، يمثّل الحقل 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.
إذا كنت تستخدم Protocol Buffers، يمكنك استخدام دوال خدمية مثل 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". يجب ضبط هذه السمة على معرّف عادي وفريد للسلعة. |
| بدون مكافئ | merchant_product_id |
مطلوبة للإحالات الناجحة في Floodlight والإحالات الناجحة في "إعلانات Google" استنادًا إلى بيانات سلة التسوّق. يجب ضبط هذه السمة على معرّف المنتج ضمن حساب 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") أو كمتغيّر مخصّص في "custom_variables" (بالنسبة إلى "إعلانات Google"). |
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".
إذا كنت ترسل أحداثًا إلى مصدر بيانات في "إحصاءات Google"، يكون الحقل
event_nameمطلوبًا.اطّلِع على مرجع الأحداث المقترَحة في "إحصاءات Google" لمعرفة الحقول والمَعلمات المرتبطة بها ونماذج طلبات نقل البيانات في Data Manager API لكل حدث.
يمكنك أيضًا إرسال أحداث مخصّصة شرط أن تتّبع قواعد تسمية الأحداث.
تحمل معظم الأحداث العادية في ECAPI (مثل purchase وadd_to_cart وbegin_checkout وsearch وrefund) اسم الحدث نفسه الذي تحمله الأحداث المقترَحة في "إحصاءات Google". ومع ذلك، هناك بعض الاستثناءات التي تستخدم فيها "إحصاءات Google" صيغة المضارع بدلاً من صيغة الماضي:
viewed_itemيتطابق معview_item
viewed_item_listيتطابق معview_item_list
viewed_cartيتطابق معview_cart
أمثلة على الطلبات
تعرض علامات التبويب التالية مقارنةً بين حمولة حدث إحالة ناجحة في 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":
{
"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
}
]
}
}
]
}