تطبیق کوکی

در سطح بالا، تطبیق کوکی فرآیندی است که طی آن یک تبلیغ‌کننده یا فروشنده، کوکی‌های دامنه خود را با کوکی‌های موجود در دامنه Google مرتبط می‌کند. تطبیق این کوکی‌ها به شما امکان می‌دهد داده‌های شخص اولی را که مالک آن هستید با داده‌های تبلیغات Google (که از طریق Display & Video 360 و Campaign Manager 360 ردیابی می‌شوند) را در همان کاربر متصل کنید، و به شما امکان می‌دهد داده‌های CRM را ترکیب کنید و رفتار کاربر را بهتر درک کنید. با ترکیب این داده ها از طریق پیوندهای حریم خصوصی، می توانید:

  • اگر آن کاربران با تبلیغات و دامنه شما تعامل داشته اند، بر اساس موارد خاصی که در سبد خرید رها شده اند، مخاطبان را هدف قرار دهید.
  • تعیین کنید کدام تبلیغات منجر به جلسات طولانی تری در دامنه شما می شود.
  • تاریخچه خرید پیوست شده به داده های پس از کمپین را تجزیه و تحلیل کنید.

محدودیت ها و حریم خصوصی کاربر نهایی

اگرچه تطبیق کوکی قدرتمند است، با برخی محدودیت‌ها همراه است:

  • پیوستن به جداول *_match و غیر *_match ممنوع است.
  • این کار به کار مهندسی هم از طرف شما و هم از طرف گوگل نیاز دارد.
  • بعید است که بتوانید همه داده های تبلیغات Google خود را مطابقت دهید. نرخ تطابق به عوامل متعددی بستگی دارد و بسته به مورد استفاده و تنظیم سمت مشتری متفاوت است. نرخ بازی اغلب کمتر از انتظار کاربران است. کاربران تنها در صورتی واجد شرایط تطبیق کوکی هستند که با دامنه شما و تبلیغات شما تعامل داشته باشند.
  • Google شروع به پر کردن جداول منطبق شما پس از تنظیم می کند. بسته به دفعاتی که کاربران از سایت شما بازدید می کنند و پیکسل منطبق شما را دریافت می کنند، ممکن است ماه ها طول بکشد تا جداول مطابقت شما حاوی داده های جامع و پایدار در مورد کاربران شما باشد.
  • نمی‌توانید تک تک کاربران را به چندین دستگاه مرتبط کنید، مگر اینکه راهی برای اتصال کاربران بین دستگاه‌ها داشته باشید.
  • نمی‌توانید با استفاده از چندین کوکی، یک کاربر را مطابقت دهید، همانطور که وقتی کاربر کوکی‌های خود را پاک می‌کند.
  • مشاغلی که در جدول‌های تطبیق اجرا می‌شوند، مانند سایر مشاغل در Ads Data Hub مشمول شرایط تجمیع مشابه هستند. نرخ تطابق پایین همراه با بازدیدهای نادر از دامنه شما می تواند منجر به مشکلاتی در دریافت داده شود. این به دلیل اثر ترکیبی نرخ تطابق و الزامات تجمیع 1 است.
  • مطابق با خط‌مشی‌های Google در مورد حریم خصوصی کاربر نهایی، شما:
    • از تطبیق داده های وارد شده و خارج شده از سیستم کاربر خاص منع شده است.
    • نمی توانند داده ها را با کاربرانی که از شخصی سازی تبلیغات منصرف شده اند مطابقت دهند.
  • برای رویدادهای iOS، فقط می‌توانید داده‌هایی را که از برنامه‌های iOS 14.5 و بالاتر از کاربرانی که تحت چارچوب شفافیت ردیابی برنامه اپل مجوز داده‌اند مطابقت دهید.

برای اطمینان از اینکه می‌توانید از داده‌های شخص اول خود در Ads Data Hub استفاده کنید، باید تأیید کنید که طبق خط‌مشی رضایت کاربر اتحادیه اروپا و خط‌مشی Ads Data Hub رضایت مناسبی برای اشتراک‌گذاری داده‌ها از کاربران نهایی EEA با Google دریافت کرده‌اید. این الزام برای هر حساب Ads Data Hub اعمال می‌شود و هر بار که داده‌های شخص اول جدید را آپلود می‌کنید باید به‌روزرسانی شود. هر کاربر می تواند از طرف کل حساب این تایید را انجام دهد.

توجه داشته باشید که همان قوانین پرس و جو سرویس Google که برای جستارهای تجزیه و تحلیل اعمال می شود در مورد جستارهای تطبیق کوکی نیز اعمال می شود. به عنوان مثال، هنگام ایجاد جدول تطبیق، نمی توانید پرس و جوهای سرویس متقابل را روی کاربران در EEA اجرا کنید.

برای آشنایی با نحوه تأیید رضایت در Ads Data Hub، به الزامات رضایت برای منطقه اقتصادی اروپا مراجعه کنید.

برای اینکه Google جداول مطابقت شما را پر کند، باید در هر صفحه از دامنه خود که به داده های تبلیغاتی منطبق علاقه دارید، یک برچسب مطابقت ارائه دهید. جایی که پیکسل را قرار می دهید به اهداف تبلیغاتی شما بستگی دارد. به عنوان مثال، ممکن است بخواهید سعی کنید با هر کاربری که از دامنه شما بازدید می کند (که تقریباً در همه صفحات به پیکسل نیاز دارد) مطابقت دهید یا می توانید کاربران در حال تبدیل را مطابقت دهید (که به پیکسل در صفحه تبدیل نیاز است). به طور کلی، یک پیکسل گسترده تر منجر به نرخ تطابق بالاتر می شود.

تگ مطابقت یک پیکسل شفاف 1x1 است که حاوی شناسه نمایه مطابق کوکی شما و شناسه کاربر یا کوکی رمزگذاری شده است:

<img src="https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm=Q29va2llIG51bWJlciAxIQ" />

این تگ مطابقت چیزی است که ارتباط بین شما و خدمات تطبیق کوکی Google را آغاز می کند.

بررسی گام به گام

  1. کاربر از صفحه ای با تگ مطابقت بازدید می کند.
  2. تگ تطبیق مجموعه‌ای از تغییر مسیرها را به Google Marketing Platform، Google Ads و سرویس‌های تطبیق YouTube آغاز می‌کند. درخواست‌ها شامل شناسه یا کوکی آن کاربر از وب‌سایت شما، به علاوه کوکی Google در هر یک از فضاهای شناسه سرویس منطبق است.
  3. یک پیکسل شفاف 1x1 به مرورگر برگردانده می شود تا تأیید شود که درخواست انجام شده است.

این فرآیند در نمودار زیر نشان داده شده است:

تصویری که مجموعه‌ای از تغییر مسیرها را بین مرورگر و سرویس‌های منطبق نشان می‌دهد

برپایی

فرآیند تنظیم تطبیق کوکی در Ads Data Hub به شرح زیر است:

  1. با نماینده حساب خود تماس بگیرید و علاقه خود را به تطبیق کوکی ها اعلام کنید. آنها اهداف شما را مورد بحث قرار می دهند و اطلاعات بیشتری در مورد استقرار پیکسل ردیابی در دامنه شما به شما می دهند.
  2. متخصصان Ads Data Hub مکالمه دیگری را برای بحث در مورد الزامات فنی و موارد استفاده آغاز خواهند کرد.
  3. در حالی که پیکسل ردیابی و نقطه پایانی خطا را به کار می‌گیرید، Google جداول مطابقت شما را ایجاد می‌کند.

پس از انجام این مراحل، نیازی به اقدام فوری نیست. Google جداول مطابقت شما را روزانه 2 پر می کند، بنابراین باید زمان کافی را در نظر بگیرید تا جدول شما حاوی داده های کافی برای ارائه منطبقات معنی دار و برآورده کردن الزامات تجمع باشد. این بستگی به دفعات بازدید کاربران از سایت شما دارد. سایتی با بازدیدکنندگان روزانه بسیار سریعتر از سایتی با بازدید کننده ماهانه به این نقطه می رسد. با کاهش سرعت تعداد خالص جدید مسابقات، جداول مطابقت شما حاوی داده های جامع تری خواهد بود.

پرس و جو از جداول مسابقه

وقتی جداول تطبیق شما حاوی داده های کافی برای بررسی حریم خصوصی باشد، شما آماده اجرای پرس و جوها در برابر جداول هستید.

جدول اصلی برای داده های شخص اول (1PD) با my_data نمایش داده می شود. این شامل اطلاعات شناسایی شخصی (PII) و داده های غیر PII می شود. استفاده از جدول اصلی می‌تواند گزارش‌های شما را با بینش‌های بیشتری بهبود بخشد، زیرا در مقایسه با جدول _match ، تمام داده‌های 1PD را در محدوده نمایش می‌دهد.

هر جدول در طرحواره Ads Data Hub حاوی فیلد user_id با یک جدول *_match همراه است. به عنوان مثال، برای جدول adh.google_ads_impressions ، Ads Data Hub همچنین یک جدول مطابق با نام adh.google_ads_impressions_match ایجاد می کند که حاوی شناسه های کاربری شما است. جداول منطبق جداگانه برای جداول جدا شده از سیاست ایجاد می شود. به عنوان مثال، برای جدول adh.google_ads_impressions_policy_isolated_youtube ، Ads Data Hub همچنین یک جدول منطبق به نام adh.google_ads_impressions_policy_isolated_youtube_match ایجاد می کند که حاوی شناسه های کاربری شما است.

این جداول شامل زیرمجموعه‌ای از کاربران موجود در جداول اصلی است، جایی که یک مطابقت در user_id وجود دارد. برای مثال، اگر جدول اصلی حاوی داده‌هایی برای کاربر A و کاربر B باشد، اما فقط کاربر A مطابقت داشته باشد، کاربر B در جدول مطابقت نخواهد بود.

جداول تطبیق شامل یک ستون اضافی به نام external_cookie است که کوکی شما را به صورت BYTES ذخیره می کند.

مهم است که هنگام نوشتن پرس و جوهای خود، نوع فیلد را در نظر بگیرید. عملگرهای مقایسه SQL انتظار دارند که لفظ هایی که شما مقایسه می کنید از یک نوع باشند. بسته به اینکه user_id چگونه در جدول داده های شخص اول شما ذخیره می شود، ممکن است لازم باشد مقادیر موجود در جدول را قبل از تطبیق داده ها رمزگذاری کنید. برای تطابق موفق، باید کلید پیوستن خود را به BYTES بریزید:

JOIN ON
  adh.google_ads_impressions_match.external_cookie = CAST(my_data.user_id AS BYTES)

علاوه بر این، مقایسه رشته‌ها در SQL به بزرگ‌نویسی حساس هستند، بنابراین ممکن است لازم باشد رشته‌ها را در دو طرف مقایسه خود رمزگذاری کنید تا اطمینان حاصل کنید که می‌توان آنها را به دقت مقایسه کرد.

رمزگذاری شناسه های کاربر

شناسه های کاربر را در سمت مشتری رمزگذاری کنید

برای اطمینان از اینکه قالب‌های ID مختلف می‌توانند به صورت ایمن از طریق URL منتقل شوند، همه شناسه‌ها باید قبل از ارسال ، کد Base64 با URL ایمن باشند. شناسه رمزگشایی شده با URL ایمن Base64 در Ads Data Hub در قسمت external_cookie در دسترس خواهد بود، بنابراین باید قبل از رمزگذاری، برای استخراج شناسه اصلی خود، تغییراتی را که اعمال کرده‌اید، لغو کنید.

اگر شناسه شما همیشه 24 کاراکتر (یا بایت) یا کمتر است، می توانید شناسه رمزگذاری شده Base64 ایمن URL را در یک پیکسل قرار دهید، همانطور که در مثال 1 نشان داده شده است. اگر شناسه شما بیشتر از 24 کاراکتر (یا بایت) باشد، به آن نیاز خواهید داشت. برای تبدیل آن به نمایشی که 24 بایت یا کمتر است. در برخی موارد (مانند GUID در مثال 2) موضوع تبدیل به نمایش بایت است. در موارد دیگر، ممکن است لازم باشد یک زیرمجموعه (یا یک هش) شناسه خود را برای Google ارسال کنید. توجه داشته باشید که در هر صورت، باید اطمینان حاصل کنید که می توانید یک SQL JOIN بنویسید که ID را در جدول شخص اول شما به همان روش تبدیل کند.

مثال 1

مقدار شناسه کاربری شما همیشه کمتر از حد 24 بایت خواهد بود. Ads Data Hub توصیه می کند که به سادگی شناسه کاربری خود را مستقیماً به ADH بفرستید (پس از رمزگذاری آن به عنوان Base64 ایمن برای URL برای اهداف انتقال 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);
مثال 2

شما یک مقدار شناسه منحصر به فرد جهانی (UUID) را به عنوان شناسه کاربری اختصاص می دهید، مانند: 123e4567-e89b-12d3-a456-426655440000 .

Ads Data Hub تغییرات زیر را هنگام تطبیق توصیه می کند:

  1. UUID به عنوان یک رشته 36 کاراکتری قالب بندی شده است.
  2. UUID رمزگشایی هگزادسیمال.
  3. UUID به صورت بایت فرمت شده است.
  4. بایت های کد Base64 ایمن URL.
  5. 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)

اگر با شناسه کاربری Google مطابقت دارد، فیلد external_cookie حاوی شناسه شما به عنوان مقدار بایت است. برای بازسازی شناسه اصلی خود، تبدیل زیر مورد نیاز است:

  1. external_cookie به صورت بایت فرمت شده است.
  2. کد هگزادسیمال external_cookie .
  3. external_cookie به صورت رشته ای قالب بندی شده است.

شناسه‌های کاربر را در Ads Data Hub رمزگذاری کنید

اگر رشته UUID را در یک فیلد در داده‌های شخص اول خود ذخیره می‌کنید، باید مانند مثال بالا، آن را به بایت تبدیل کنید تا با موفقیت به داده‌های خود بپیوندید.

مثال زیر نشان می دهد که چگونه UUID خود را رمزگذاری کنید و به آن در فیلد کوکی خارجی بپیوندید:

JOIN my_data ON imp.external_cookie = FROM_HEX(REPLACE(my_data.uuid, '-', ''))

توجه داشته باشید که نمی توانید یک عدد صحیح را به بایت ارسال کنید. اگر شناسه کاربری شما یک عدد صحیح است (مانند مثال 1 بالا)، ابتدا باید به عنوان یک رشته ارسال کنید:

JOIN my_data ON imp.external_cookie = CAST(CAST(my_data.user_id AS STRING) AS BYTES)

به یاد داشته باشید که رمزگذاری مورد نیاز برای مطابقت با داده‌های شما به نحوه ذخیره‌سازی آن‌ها و نحوه کدگذاری آن‌ها قبل از ارسال آن به Ads Data Hub بستگی دارد.

درباره توابع رشته در 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 نمایش به نتایج شما اضافه می‌شود.

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)

  1. مثال: نرخ تطابق 20٪ به طور مؤثر به این معنی است که برای رسیدن به آستانه 50 کاربر در هر ردیف به 250 کاربر نیاز دارید، به عنوان 50 / 0.2 = 250.

  2. مسابقات انجام شده در یک روز خاص ممکن است تا 48 ساعت قبل از نمایش در جدول شما با تاخیر مواجه شوند.