در سطح بالا، تطبیق کوکی فرآیندی است که طی آن یک تبلیغکننده یا فروشنده، کوکیهای دامنه خود را با کوکیهای دامنه گوگل مرتبط میکند. تطبیق این کوکیها به شما امکان میدهد دادههای شخص ثالثی را که در اختیار دارید با دادههای تبلیغات گوگل (که از طریق Display & Video 360 و Campaign Manager 360 ردیابی میشوند) در همان کاربر مرتبط کنید و به شما امکان میدهد دادههای CRM را در آن بگنجانید و رفتار کاربر را بهتر درک کنید. با ترکیب این دادهها از طریق اتصالات متمرکز بر حریم خصوصی، میتوانید:
- مخاطبان را بر اساس اقلام خاص رها شده در سبدهای خرید هدف قرار دهید، البته اگر آن کاربران با تبلیغات و دامنه شما تعامل داشته باشند.
- مشخص کنید کدام تبلیغات منجر به بازدیدهای طولانیتر در دامنه شما میشوند.
- تاریخچه خرید را به دادههای پس از کمپین متصل کنید و تجزیه و تحلیل کنید.
محدودیتها و حریم خصوصی کاربر نهایی
اگرچه تطبیق کوکی قدرتمند است، اما محدودیتهایی نیز دارد:
- اتصال بین جداول
*_matchو غیر*_matchممنوع است. - این کار نیاز به کار مهندسی از طرف شما و گوگل دارد.
- بعید است که بتوانید تمام دادههای تبلیغات گوگل خود را تطبیق دهید. نرخهای تطبیق تابع عوامل مختلفی هستند و بسته به مورد استفاده و تنظیمات سمت کلاینت متفاوتند. نرخهای تطبیق اغلب کمتر از حد انتظار کاربران هستند. کاربران فقط در صورتی واجد شرایط تطبیق کوکی هستند که با دامنه و تبلیغات شما تعامل داشته باشند.
- گوگل از زمان راهاندازی جداول تطابق شما، شروع به پر کردن آنها میکند. بسته به تعداد دفعاتی که کاربران از سایت شما بازدید میکنند و پیکسل تطابق شما را دریافت میکنند، ممکن است ماهها طول بکشد تا جداول تطابق شما حاوی دادههای جامع و پایدار در مورد کاربرانتان باشند.
- شما نمیتوانید کاربران را به چندین دستگاه متصل کنید، مگر اینکه راهی برای اتصال کاربران به دستگاههای مختلف داشته باشید.
- شما نمیتوانید با استفاده از چندین کوکی، یک کاربر را پیدا کنید، همانطور که در مواردی که یک کاربر کوکیهای خود را پاک میکند، این اتفاق میافتد.
- کارهایی که در جداول تطابق اجرا میشوند، مشمول همان الزامات تجمیع مانند سایر کارها در Ads Data Hub هستند. نرخ تطابق پایین همراه با بازدیدهای نادر از دامنه شما میتواند منجر به مشکلاتی در دریافت دادهها شود. این به دلیل اثر ترکیبی نرخ تطابق و الزامات تجمیع است .
- مطابق با سیاستهای گوگل در مورد حریم خصوصی کاربر نهایی، شما:
- از تطبیق دادههای ورود و خروج یک کاربر خاص منع شدهاند.
- قادر به تطبیق دادهها با کاربرانی که از شخصیسازی تبلیغات انصراف دادهاند، نیستند.
- برای رویدادهای iOS، فقط میتوانید دادههایی را که از برنامههای iOS 14.5+ از کاربرانی که تحت چارچوب شفافیت ردیابی برنامه اپل مجوز دادهاند، مطابقت دهید.
تأیید رضایت شخص اول
برای اطمینان از اینکه میتوانید از دادههای شخص اول خود در Ads Data Hub استفاده کنید، باید تأیید کنید که رضایت لازم را برای اشتراکگذاری دادهها از کاربران نهایی منطقه اقتصادی اروپا با گوگل، طبق سیاست رضایت کاربر اتحادیه اروپا و سیاست Ads Data Hub ، دریافت کردهاید. این الزام برای هر حساب Ads Data Hub اعمال میشود و باید هر بار که دادههای شخص اول جدید را آپلود میکنید، بهروزرسانی شود. هر کاربر میتواند این تأیید را از طرف کل حساب انجام دهد.
توجه داشته باشید که همان قوانین پرسوجوی سرویس گوگل که برای پرسوجوهای تحلیلی اعمال میشود، برای پرسوجوهای تطبیق کوکی نیز اعمال میشود. برای مثال، هنگام ایجاد جدول تطبیق، نمیتوانید پرسوجوهای بین سرویسی را روی کاربران در منطقه اقتصادی اروپا (EEA) اجرا کنید.
برای آشنایی با نحوهی اعلام رضایت در Ads Data Hub، به الزامات رضایت برای منطقهی اقتصادی اروپا مراجعه کنید.
نحوهی عملکرد تطبیق کوکی
برای اینکه گوگل بتواند جداول تطابق شما را پر کند، باید در هر صفحه از دامنه خود که علاقهمند به تطبیق دادههای تبلیغاتی هستید، یک برچسب تطابق ارائه دهید. محل قرارگیری پیکسل به اهداف تبلیغاتی شما بستگی دارد. به عنوان مثال، ممکن است بخواهید سعی کنید هر کاربری را که از دامنه شما بازدید میکند، تطبیق دهید (که تقریباً در همه صفحات به پیکسل نیاز دارد)، یا میتوانید کاربران در حال تبدیل را تطبیق دهید (که در یک صفحه تبدیل به پیکسل نیاز دارد). به طور کلی، پیکسل گستردهتر منجر به نرخ تطابق بالاتر میشود.
تگ تطابق، یک پیکسل شفاف ۱x۱ است که شامل شناسه پروفایل منطبق با کوکی شما و یک شناسه کاربر یا کوکی کدگذاری شده است:
<img src="https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm=Q29va2llIG51bWJlciAxIQ" />
این تگ تطابق همان چیزی است که ارتباط بین شما و سرویسهای تطبیق کوکی گوگل را آغاز میکند.
مرور گام به گام
- کاربر از صفحهای با برچسب منطبق بازدید میکند.
- تگ تطبیق، مجموعهای از ریدایرکتها را به پلتفرم بازاریابی گوگل، گوگل ادز و سرویسهای تطبیق یوتیوب آغاز میکند. این درخواستها شامل شناسه یا کوکی آن کاربر از وبسایت شما، به علاوه کوکی گوگل در هر یک از فضاهای شناسه سرویس تطبیق هستند.
- یک پیکسل شفاف ۱x۱ به مرورگر برگردانده میشود تا تأیید شود که درخواست انجام شده است.
این فرآیند در نمودار زیر نشان داده شده است:
راهاندازی
فرآیند تنظیم تطبیق کوکیها در Ads Data Hub به شرح زیر است:
- با نماینده حساب خود تماس بگیرید و علاقه خود را به تطبیق کوکیها اعلام کنید. آنها در مورد اهداف شما صحبت خواهند کرد و اطلاعات بیشتری در مورد استقرار پیکسل ردیابی در دامنه شما ارائه خواهند داد.
- متخصصان مرکز دادههای تبلیغات، گفتگوی دیگری را برای بحث در مورد الزامات فنی و موارد استفاده آغاز خواهند کرد.
- در حالی که پیکسل ردیابی و نقطه پایانی خطا را مستقر میکنید، گوگل جداول تطابق شما را ایجاد میکند.
پس از تکمیل این مراحل، هیچ اقدام فوری لازم نیست. گوگل روزانه ۲ جدول تطابق شما را پر میکند، بنابراین باید زمان کافی برای رسیدن جدول شما به دادههای کافی جهت ارائه تطابقهای معنادار و برآورده کردن الزامات تجمیع، اختصاص دهد. این موضوع به تعداد دفعات بازدید کاربران از سایت شما بستگی دارد. سایتی با بازدیدکنندگان روزانه بسیار سریعتر از سایتی با بازدیدکنندگان ماهانه به این نقطه میرسد. با کاهش تعداد تطابقهای جدید، جداول تطابق شما حاوی دادههای جامعتری خواهند بود.
پرس و جو از جداول تطابق
وقتی جداول تطابق شما حاوی دادههای کافی برای برآورده کردن بررسیهای حریم خصوصی باشند، آماده اجرای پرسوجوها در جداول هستید.
جدول اصلی برای دادههای شخص اول (1PD) با my_data نمایش داده میشود. این شامل اطلاعات شخصی قابل شناسایی (PII) و دادههای غیر PII میشود. استفاده از جدول اصلی میتواند گزارشهای شما را با بینش بیشتر بهبود بخشد، زیرا تمام دادههای 1PD را در مقایسه با یک جدول منطبق نشان میدهد.
هر جدول در طرحواره Ads Data Hub که حاوی فیلد user_id است، با یک جدول تطبیق همراه است. به عنوان مثال، برای جدول adh.google_ads_impressions ، Ads Data Hub همچنین یک جدول تطبیق به نام adh.google_ads_impressions_match ایجاد میکند که شامل شناسههای کاربری شما است. جداول تطبیق جداگانهای برای جداول شبکهای که از نظر سیاست ایزوله شدهاند، ایجاد میشود. به عنوان مثال، برای جدول adh.google_ads_impressions_policy_isolated_network ، Ads Data Hub همچنین یک جدول تطبیق به نام adh.google_ads_impressions_policy_isolated_network_match ایجاد میکند که شامل شناسههای کاربری شما است.
این جداول شامل زیرمجموعهای از کاربران موجود در جداول اصلی هستند که در آنها یک تطابق روی user_id وجود دارد. برای مثال، اگر جدول اصلی شامل دادههای کاربر A و کاربر B باشد، اما فقط کاربر A تطبیق داده شده باشد، آنگاه کاربر B در جدول تطبیق وجود نخواهد داشت.
جداول تطبیق شامل یک ستون اضافی به نام external_cookie هستند که شناسه کاربر را به صورت بایت ذخیره میکند.
هنگام نوشتن کوئریهایتان، توجه به نوع فیلد مهم است. عملگرهای مقایسه SQL انتظار دارند که حروفی که مقایسه میکنید از یک نوع باشند. بسته به نحوه ذخیره user_id در جدول دادههای شخص ثالث شما، ممکن است لازم باشد مقادیر موجود در جدول را قبل از تطبیق دادهها کدگذاری کنید. برای تطابقهای موفقیتآمیز، باید کلید اتصال خود را در قالب BYTES قرار دهید:
JOIN ON
adh.google_ads_impressions_match.external_cookie = CAST(my_data.user_id AS BYTES)
علاوه بر این، مقایسه رشتهها در SQL به حروف بزرگ و کوچک حساس است، بنابراین ممکن است لازم باشد رشتهها را در هر دو طرف مقایسه خود کدگذاری کنید تا از مقایسه دقیق آنها اطمینان حاصل شود.
رمزگذاری شناسههای کاربری
رمزگذاری شناسههای کاربر در سمت کلاینت
برای اطمینان از انتقال ایمن فرمتهای مختلف شناسه از طریق URL، همه شناسهها باید قبل از ارسال، با رمزگذاری Base64 ایمن برای URL-safe کدگذاری شوند. شناسه رمزگشایی شده Base64 ایمن برای URL-safe در قسمت external_cookie در Ads Data Hub در دسترس خواهد بود، بنابراین برای استخراج شناسه اصلی خود، باید هرگونه تغییری را که قبل از کدگذاری اعمال کردهاید، لغو کنید.
اگر شناسه شما همیشه ۲۴ کاراکتر (یا بایت) یا کمتر است، میتوانید شناسه رمزگذاری شده Base64 ایمن URL را در یک پیکسل قرار دهید، همانطور که در مثال ۱ نشان داده شده است. اگر شناسه شما بیشتر از ۲۴ کاراکتر (یا بایت) است، باید آن را به نمایشی ۲۴ بایتی یا کمتر تبدیل کنید. در برخی موارد (مانند GUID در مثال ۲) مسئله تبدیل به نمایش بایتی است. در موارد دیگر، ممکن است لازم باشد زیرمجموعهای (یا هش) از شناسه خود را برای گوگل ارسال کنید. توجه داشته باشید که در هر صورت، باید مطمئن شوید که میتوانید یک SQL JOIN بنویسید که شناسه را در جدول شخص اول شما به همان روش تبدیل کند.
مثال ۱
مقدار شناسه کاربری شما همیشه کمتر از محدودیت طول ۲۴ بایت خواهد بود. مرکز دادههای تبلیغات توصیه میکند که شناسه کاربری خود را مستقیماً به ADH ارسال کنید (پس از رمزگذاری آن به عنوان Base64 url-safe برای اهداف انتقال URL).
var userId = 'abcdef123456789';
// Encode the string (or number) in normal base64.
var userIdBase64 = btoa(userId);
// Ensure that the uploaded user IDs use web-safe Base64 encoding.
userIdBase64 = userIdBase64.replace(/\+/g, '-').replace(/\//g, '_')
.replace(/=+$/, '');
// After encoding the UUID correctly, you can create the request tag and
// insert it into the DOM.
var imgElement = Document.createElement('img');
imgElement.src =
'https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm='
+ userIdBase64;
document.body.appendChild(imgElement);
مثال ۲
شما یک مقدار شناسه منحصر به فرد جهانی (UUID) را به عنوان شناسه کاربر اختصاص میدهید، مانند: 123e4567-e89b-12d3-a456-426655440000 .
مرکز دادههای تبلیغات (Ads Data Hub) هنگام تطبیق، تبدیلهای زیر را توصیه میکند:
- UUID به صورت یک رشته ۳۶ کاراکتری قالببندی میشود.
- رمزگشایی هگزادسیمال UUID.
- UUID به صورت بایت فرمت بندی شده است.
- بایتها را با کد Base64 و ایمن برای URL رمزگذاری میکند.
- UUID به صورت یک رشته قالببندی میشود.
این کار را میتوان با کد زیر پیادهسازی کرد:
جاوا اسکریپت
var userId = '123e4567-e89b-12d3-a456-426655440000';
// A helper function for converting a hex string to a byte array.
function strToBytes(str) {
for (var bytes = [], i = 0; i < str.length; i += 2) {
bytes.push(parseInt(str.substr(i, 2), 16));
}
return bytes;
}
// Remove the formatting dashes from the UUID.
userId = userId.replace(/-/g, '');
// Encode the hex string as a byte array.
var userIdBytes = strToBytes(userId);
// Encode the byte array in normal base64.
var userIdBase64 = btoa(String.fromCharCode(...new Uint8Array(userIdBytes)));
// Ensure that the uploaded user IDs use web-safe Base64 encoding.
userIdBase64 = userIdBase64.replace(/\+/g, '-').replace(/\//g, '_').replace(
/=+$/, '');
// After encoding the UUID correctly, you can create the request tag and
// insert it into the DOM.
var imgElement = Document.createElement('img');
imgElement.src =
'https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm='
+ userIdBase64;
document.body.appendChild(imgElement);
پایتون
import base64
user_id = '123e4567-e89b-12d3-a456-426655440000'
user_id_as_bytes = bytes.fromhex(user_id.replace('-', ''))
base64.urlsafe_b64encode(user_id_as_bytes)
اگر با شناسه کاربری گوگل مطابقت داشته باشد، فیلد external_cookie شناسه شما را به صورت یک مقدار بایتی در خود جای میدهد. برای بازسازی شناسه اصلی شما، تبدیل زیر لازم است:
-
external_cookieبه صورت بایت فرمت شده است. - کد هگزادسیمال
external_cookie. -
external_cookieبه صورت یک رشته قالببندی شده است.
رمزگذاری شناسههای کاربری در Ads Data Hub
اگر رشته UUID را در فیلدی از دادههای شخص ثالث خود ذخیره کنید، برای اتصال موفقیتآمیز دادههای خود، مانند مثال بالا، باید آن را به بایت تبدیل کنید.
مثال زیر نحوه رمزگذاری UUID و اتصال آن به فیلد کوکی خارجی را نشان میدهد:
JOIN my_data ON imp.external_cookie = FROM_HEX(REPLACE(my_data.uuid, '-', ''))
توجه داشته باشید که نمیتوانید یک عدد صحیح را به بایت تبدیل کنید. اگر شناسه کاربری شما یک عدد صحیح است (مانند مثال ۱ در بالا)، ابتدا باید آن را به صورت رشته تبدیل کنید:
JOIN my_data ON imp.external_cookie = CAST(CAST(my_data.user_id AS STRING) AS BYTES)
به یاد داشته باشید که کدگذاری مورد نیاز برای مطابقت با دادههای شما، به نحوه ذخیره آن و نحوه کدگذاری آن قبل از ارسال به مرکز دادههای تبلیغات بستگی دارد.
درباره توابع رشتهای در BigQuery SQL بیشتر بدانید .
نمونه سوال
مثال زیر دادههای شخص ثالث را با google_ads_impressions_match ادغام میکند، سپس این نتایج را با adh_google_ads_impressions در یک کوئری دوم ادغام میکند.
SELECT
imp.campaign_id as campaign_id,
sum(my_data.recent_orders) as orders,
average(my_data.lifetime_value) as ltv
FROM
adh.google_ads_impressions_match as imp
LEFT JOIN
my_data ON imp.external_cookie = my_data.company_guest_id_bytes
GROUP BY
campaign_id
با ذخیره نتایج کوئری قبلی به عنوان previous_results ، اکنون میتوانید به google_ads_impressions بپیوندید. این کار دادههای مربوط به کمپینهایی با 0 impressions را به نتایج شما اضافه میکند.
SELECT
campaign_id,
COALESCE(orders, 0) as orders,
COALESCE(ltv, 0) as ltv,
FROM (SELECT DISTINCT campaign_id
FROM adh.google_ads_impressions)
LEFT JOIN previous_results USING (campaign_id)