এই নির্দেশিকা IAB Tech Lab Event and Conversion API (ECAPI) স্পেসিফিকেশন ব্যবহার করা ডেভেলপারদের তাদের ইভেন্ট এবং কনভার্সন ডেটা Data Manager API ইভেন্ট ইনজেশন স্কিমা-তে ম্যাপ করতে সাহায্য করে।
এক নজরে
ECAPI হল একটি প্ল্যাটফর্ম-অ্যাগনস্টিক, ওপেন-সোর্স ডেটা স্ট্যান্ডার্ড যা মার্কেটিং-সম্পর্কিত ইভেন্ট এবং কনভার্সনের কাঠামোকে সংজ্ঞায়িত করে।
নিম্নলিখিত সারণীতে ECAPI-এর মূল অ্যাট্রিবিউট ও ডিজাইন নীতি কীভাবে ডেটা ম্যানেজার API-এর সাথে তুলনা করা হয় তার একটি উচ্চ-স্তরের ভিউ প্রদান করে:
| ECAPI | Data Manager API | |
|---|---|---|
| ডুপ্লিকেট বাদ দেওয়া | id-এর (ইভেন্ট আইডি) উপর নির্ভর করে |
transaction_id-এর উপর নির্ভর করে |
| ইভেন্ট রাউটিং | ইভেন্ট পেলোডে data_set_id ফিল্ড ডেটার গন্তব্য নির্দেশ করে। |
অনুরোধের destinations ফিল্ড ইভেন্টের জন্য
গন্তব্য নির্ধারণ করে।
এছাড়াও, ডেটা ম্যানেজার API-এর মাধ্যমে একটি অনুরোধেই একাধিক গন্তব্যে ইভেন্ট রাউট করা যায়। আরও তথ্যের জন্য গন্তব্য ও হেডার কনফিগার করুন দেখুন। |
| গোপনীয়তা ও সম্মতি সংক্রান্ত ফিল্ড | গ্লোবাল প্রাইভেসি প্ল্যাটফর্ম (GPP) সম্মতি স্ট্রিং |
ডেটা ম্যানেজার API, গ্লোবাল প্রাইভেসি প্ল্যাটফর্ম (GPP) সম্মতি স্ট্রিং গ্রহণ বা পার্স করে না। Consent অবজেক্টে সম্মতির ফিল্ড সেট করুন।
আপনি অনুরোধ লেভেলে (যা অনুরোধের সব ইভেন্টের ক্ষেত্রে প্রযোজ্য) অথবা ইভেন্ট লেভেলে (যা আপনাকে আলাদা আলাদা ইভেন্টের জন্য আলাদা আলাদা সম্মতি সেটিংস নির্দিষ্ট করতে দেয়) সম্মতি সেট করতে পারেন। |
স্ট্রাকচারাল ফিল্ড ম্যাপিং
নিম্নলিখিত ম্যাপিং টেবিল থেকে বোঝা যায় যে ECAPI স্পেসিফিকেশন থেকে স্বতন্ত্র ফিল্ডগুলি কীভাবে ডেটা ম্যানেজার API দ্বারা গৃহীত ফিল্ডে অনুবাদ করা হয়:
ইভেন্ট অবজেক্ট ম্যাপিং
ECAPI (event) |
ডেটা ম্যানেজার API (Event) |
নোট |
|---|---|---|
data_set_id |
|
আপনি নিম্নলিখিত লেভেলে গন্তব্য নির্ধারণ করতে পারবেন:
কীভাবে Destination নির্ধারণ করবেন
এবং প্রোডাক্ট ডেস্টিনেশন আইডি ঠিক করবেন সেই সম্পর্কে আরও জানতে, ডেস্টিনেশন ও হেডার কনফিগার করুন দেখুন।
|
id |
transaction_id |
কনভার্সন ইভেন্ট ডিডুপ্লিকেট করে। Google Ads, Google Analytics ও Floodlight-এর জন্য ইভেন্ট পাঠান সংক্রান্ত গাইডে Google কীভাবে মাল্টি-সোর্স ডেটা ম্যানেজ করে তা দেখুন। |
timestamp |
event_timestamp |
প্রয়োজনীয়। ECAPI টাইমস্ট্যাম্পের জন্য Unix epoch ফর্ম্যাট (পূর্ণসংখ্যা) ব্যবহার করে।
ডেটা ম্যানেজার 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 enum থেকে একটি ভ্যালু সেট করুন। |
properties |
|
CartData অবজেক্টে
cart_data.items অ্যারেতে
ট্রানজ্যাকশন-লেভেল আইটেম ম্যাপ করুন। Data Manager API, Merchant Center অ্যাকাউন্টে থাকা প্রোডাক্টের জন্য
বেশ কিছু ঐচ্ছিক Merchant Center
ফিল্ড সাপোর্ট করে।
আপনার ডেস্টিনেশন যদি Google Ads কনভার্সন অ্যাকশন হয়, তাহলে আপনি custom_variables ফিল্ডে
CustomVariable অবজেক্টের তালিকা হিসেবে অতিরিক্ত কাস্টম প্যারামিটারও
যোগ করতে পারবেন।
আপনার ডেস্টিনেশন যদি Google Analytics ডেটা স্ট্রিম হয়, তাহলে আপনি additional_event_parameters ফিল্ডে অতিরিক্ত ইভেন্ট প্যারামিটার
AdditionalEventParameter অবজেক্টের তালিকা হিসেবে
যোগ করতে পারবেন।
|
ext |
সমতুল্য কিছু নেই |
ব্যবহারকারীর ডেটা অবজেক্ট ম্যাপিং
Data Manager API-তে, Event অবজেক্টের user_data ফিল্ডে
UserData অবজেক্ট গ্রহণ করা হয়। এতে
UserIdentifier অবজেক্টের তালিকা থাকতে হবে, যার মধ্যে ইমেল আইডি, ফোন নম্বর বা ঠিকানার উপাদানের মতো স্বতন্ত্র
ইউজার আইডেন্টিফায়ার থাকতে পারে:
ECAPI (user_data) |
ডেটা ম্যানেজার API (Event) |
নোট |
|---|---|---|
customer_identifier |
user_id (Google Analytics) |
Google Analytics ইভেন্টের জন্য, user_id ফিল্ডটি একটি ব্যবহারকারী-আইডি দেখায়। ডেটা ম্যানেজার API অন্যান্য ডেস্টিনেশনের জন্য জেনেরিক কাস্টমার আইডি ফিল্ডে কাজ করে না। |
uids |
সমতুল্য কিছু নেই | ডেটা ম্যানেজার API, এজেন্ট টাইপ ও ডোমেন সহ স্ট্রাকচার্ড uids অ্যারেতে কাজ করে না। |
customer_segments |
user_properties |
Event-এ UserProperties-এর ম্যাপ। |
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 |
বিজ্ঞাপনদাতাদের জন্য মোবাইল শনাক্তকারীতে ম্যাপ করুন (iOS-এ IDFA, Android-এ AdID)। আরও বিবরণের জন্য 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) |
ডেটা ম্যানেজার API (AddressInfo) |
নোট |
|---|---|---|
first_name |
given_name |
AddressInfo-এ given_name ফিল্ডে ম্যাপ করে। ফর্ম্যাটিং ও হ্যাশিং সংক্রান্ত নির্দেশিকা অনুসরণ করুন। এছাড়াও, আপনি ঠিকানার হ্যাশ করা অ্যাট্রিবিউট এনক্রিপ্ট করতে পারবেন। |
last_name |
family_name |
AddressInfo-এ family_name ফিল্ডে ম্যাপ করে। ফর্ম্যাটিং ও হ্যাশিং সংক্রান্ত নির্দেশিকা অনুসরণ করুন। এছাড়াও, আপনি ঠিকানার হ্যাশ করা অ্যাট্রিবিউট এনক্রিপ্ট করতে পারবেন। |
street |
সমতুল্য কিছু নেই | ডেটা ম্যানেজার API-তে কাজ করে না। |
city |
সমতুল্য কিছু নেই | ডেটা ম্যানেজার API-তে কাজ করে না। |
state |
সমতুল্য কিছু নেই | ডেটা ম্যানেজার API-তে কাজ করে না। |
country_code |
region_code |
হ্যাশ করবেন না। AddressInfo-এ region_code ফিল্ডে ম্যাপ করে। ফর্ম্যাটিং সংক্রান্ত নির্দেশিকা অনুসরণ করুন। |
postal_code |
postal_code |
হ্যাশ করবেন না। AddressInfo-এ postal_code ফিল্ডে ম্যাপ করে। ফর্ম্যাটিং সংক্রান্ত নির্দেশিকা অনুসরণ করুন। |
address_type |
সমতুল্য কিছু নেই | ডেটা ম্যানেজার API-তে কাজ করে না। |
ext |
সমতুল্য কিছু নেই |
আইটেম অবজেক্ট ম্যাপিং
ECAPI (item) |
ডেটা ম্যানেজার API (Item) |
নোট |
|---|---|---|
id |
item_id |
Google Analytics ইভেন্টের জন্য প্রয়োজনীয়। আইটেমের জন্য স্ট্যান্ডার্ড, অনন্য শনাক্তকারী হিসেবে সেট করুন। |
| সমতুল্য কিছু নেই | merchant_product_id |
Floodlight কনভার্সন এবং কার্ট ডেটা সহ Google Ads কনভার্সনের জন্য প্রয়োজনীয়। Merchant Center অ্যাকাউন্ট-এর মধ্যে প্রোডাক্ট আইডিতে সেট করুন। |
name |
additional_item_parameters |
additional_item_parameters তালিকায় item_name হিসেবে ম্যাপ করুন। |
price |
unit_price |
|
discount |
additional_item_parameters বা custom_variables |
additional_item_parameters-এ discount হিসেবে (Google Analytics-এর জন্য) অথবা custom_variables-এ কাস্টম ভেরিয়েবল হিসেবে (Google Ads-এর জন্য) ম্যাপ করুন। |
quantity |
quantity |
float মানকে পূর্ণসংখ্যায় (int64) কনভার্ট করুন। |
brand |
additional_item_parameters |
additional_item_parameters তালিকায় item_brand হিসেবে ম্যাপ করুন। |
affiliation |
additional_item_parameters |
additional_item_parameters তালিকায় affiliation হিসেবে ম্যাপ করুন। |
category |
additional_item_parameters |
additional_item_parameters তালিকায় item_category হিসেবে ম্যাপ করুন। |
cattax |
সমতুল্য কিছু নেই | |
item_coupon |
additional_item_parameters |
additional_item_parameters তালিকায় coupon হিসেবে ম্যাপ করুন। |
item_list_id |
additional_item_parameters |
additional_item_parameters তালিকায় item_list_id হিসেবে ম্যাপ করুন। |
item_list_name |
additional_item_parameters |
additional_item_parameters তালিকায় item_list_name হিসেবে ম্যাপ করুন। |
item_item_variant |
additional_item_parameters |
additional_item_parameters তালিকায় item_variant হিসেবে ম্যাপ করুন। |
item_location_id |
additional_item_parameters |
additional_item_parameters-এ location_id হিসেবে ম্যাপ করুন। |
ext |
সমতুল্য কিছু নেই |
স্ট্যান্ডার্ড ইভেন্টের নাম
ECAPI স্ট্যান্ডার্ড ইভেন্ট Google Analytics-এর নামকরণ কনভেনশনের সাথে অনেকটা মিলে যায়।
আপনি Google Analytics ডেটা স্ট্রিমে ইভেন্ট পাঠালে,
event_nameফিল্ড প্রয়োজনীয়।প্রতিটি ইভেন্টের জন্য সংশ্লিষ্ট ফিল্ড, প্যারামিটার এবং স্যাম্পেল ডেটা ম্যানেজার API ইনজেশন অনুরোধের জন্য Google Analytics-এর সাজেস্ট করা ইভেন্ট রেফারেন্স দেখুন।
এছাড়াও, আপনি কাস্টম ইভেন্ট পাঠাতে পারেন, তবে সেগুলি যেন ইভেন্টের নাম দেওয়ার নিয়ম মেনে চলে।
বেশিরভাগ ECAPI স্ট্যান্ডার্ড ইভেন্টের (যেমন purchase,
add_to_cart, begin_checkout, search এবং refund) ইভেন্টের নাম Google Analytics-এর সাজেস্ট করা ইভেন্টের নামের মতোই হয়। তবে, কিছু ব্যতিক্রম আছে যেখানে
Google Analytics অতীত কালের পরিবর্তে বর্তমান কাল ব্যবহার করে:
viewed_item-এর সাথেview_itemম্যাপ করা হয়েছেviewed_item_list-এর সাথেview_item_listম্যাপ করা হয়েছেviewed_cart-এর সাথেview_cartম্যাপ করা হয়েছে
অনুরোধের উদাহরণ
নিম্নলিখিত ট্যাবগুলি ECAPI কনভার্সন ইভেন্ট পেলোড এবং
সঠিক ডেটা ম্যানেজার API হিসেবে এর উপস্থাপনার মধ্যে তুলনা দেখায়
IngestEventsRequest:
ECAPI
ECAPI স্পেসিফিকেশন অনুযায়ী স্যাম্পেল JSON পেলোড এখানে দেওয়া হল:
{
"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
}
]
}
}
]
}