การจับคู่คุกกี้

ในระดับสูง การจับคู่คุกกี้คือกระบวนการที่ผู้ลงโฆษณาหรือผู้ให้บริการ เชื่อมโยงคุกกี้ในโดเมนของตนกับคุกกี้ในโดเมนของ Google การจับคู่คุกกี้เหล่านี้ช่วยให้คุณเชื่อมต่อข้อมูลจากบุคคลที่หนึ่งที่คุณเป็นเจ้าของกับข้อมูลโฆษณาของ Google (ติดตามผ่าน Display & Video 360 และ Campaign Manager 360) ในผู้ใช้รายเดียวกัน ซึ่งจะช่วยให้คุณรวมข้อมูล CRM และทําความเข้าใจพฤติกรรมของผู้ใช้ได้ดียิ่งขึ้น การรวมข้อมูลนี้ผ่านการรวมที่เน้นความเป็นส่วนตัวจะช่วยให้คุณทำสิ่งต่อไปนี้ได้

  • กำหนดกลุ่มเป้าหมายตามสินค้าที่เฉพาะเจาะจงซึ่งถูกละทิ้งในรถเข็นช็อปปิ้ง หากผู้ใช้เหล่านั้นโต้ตอบกับโฆษณาและโดเมนของคุณ
  • พิจารณาว่าโฆษณาใดทําให้เกิดเซสชันที่ยาวนานขึ้นในโดเมน
  • วิเคราะห์ประวัติการซื้อที่เชื่อมโยงกับข้อมูลหลังแคมเปญ

ข้อจำกัดและความเป็นส่วนตัวของผู้ใช้ปลายทาง

แม้ว่าการจับคู่คุกกี้จะมีประสิทธิภาพ แต่ก็มีข้อจำกัดบางประการ ดังนี้

  • ไม่อนุญาตให้ใช้การรวมระหว่างตาราง *_match กับตารางที่ไม่ใช่ *_match
  • ซึ่งต้องใช้การทำงานด้านวิศวกรรมจากทั้งคุณและ Google
  • คุณอาจไม่สามารถจับคู่ข้อมูลโฆษณา Google ทั้งหมดได้ อัตราการจับคู่ขึ้นอยู่กับปัจจัยหลายประการ และแตกต่างกันไปตามกรณีการใช้งานและการตั้งค่าฝั่งไคลเอ็นต์ อัตราการจับคู่มักจะต่ำกว่าที่ผู้ใช้คาดไว้ ผู้ใช้จะมีสิทธิ์จับคู่คุกกี้ก็ต่อเมื่อได้โต้ตอบกับโดเมน และ โฆษณาของคุณ
  • Google จะเริ่มป้อนข้อมูลในตารางการจับคู่เมื่อมีการตั้งค่า ระยะเวลาที่ตารางการจับคู่จะมีข้อมูลที่ครอบคลุมและเสถียรเกี่ยวกับผู้ใช้ของคุณอาจใช้เวลาหลายเดือน ทั้งนี้ขึ้นอยู่กับความถี่ที่ผู้ใช้เข้าชมเว็บไซต์และได้รับพิกเซลการจับคู่
  • คุณจะเชื่อมโยงผู้ใช้แต่ละรายกับอุปกรณ์หลายเครื่องไม่ได้ เว้นแต่ คุณจะมีวิธีเชื่อมต่อผู้ใช้ในอุปกรณ์ต่างๆ
  • คุณไม่สามารถจับคู่ผู้ใช้รายเดียวโดยใช้คุกกี้หลายรายการได้ เช่น ในกรณีที่ผู้ใช้ล้างคุกกี้
  • งานที่เรียกใช้ในตารางการจับคู่ต้องเป็นไปตามข้อกำหนดในการรวบรวมเช่นเดียวกับงานอื่นๆ ใน Ads Data Hub อัตราการจับคู่ที่ต่ำรวมกับการเข้าชมโดเมนของคุณไม่บ่อยนักอาจทำให้ได้รับข้อมูลได้ยาก เนื่องจาก1ผลรวมของอัตราการจับคู่และข้อกำหนดในการรวบรวม
  • คุณต้องดำเนินการดังนี้ตามนโยบายของ Google เกี่ยวกับความเป็นส่วนตัวของผู้ใช้ปลายทาง
    • ห้ามจับคู่ข้อมูลที่ลงชื่อเข้าใช้และออกจากระบบของผู้ใช้รายหนึ่งๆ
    • ไม่สามารถจับคู่ข้อมูลกับผู้ใช้ที่เลือกไม่ใช้การปรับโฆษณาตามโปรไฟล์ของผู้ใช้
  • สําหรับเหตุการณ์ iOS คุณจะจับคู่ได้เฉพาะข้อมูลที่มาจากแอปใน iOS 14.5 ขึ้นไป จากผู้ใช้ที่ให้สิทธิ์ภายใต้เฟรมเวิร์ก App Tracking Transparency ของ Apple

หากต้องการให้มั่นใจว่าคุณจะใช้ข้อมูลจากบุคคลที่หนึ่งใน Ads Data Hub ได้ คุณต้อง ยืนยันว่าคุณได้รับความยินยอมที่เหมาะสมในการแชร์ข้อมูลจากผู้ใช้ปลายทางใน EEA กับ Google ตามนโยบายความยินยอมของผู้ใช้ EU และนโยบาย Ads Data Hub ข้อกำหนดนี้มีผลกับบัญชี Ads Data Hub แต่ละบัญชี และต้องอัปเดตทุกครั้งที่คุณอัปโหลดข้อมูลจากบุคคลที่หนึ่งใหม่ ผู้ใช้คนใดคนหนึ่งสามารถรับทราบข้อความนี้ในนามของทั้งบัญชีได้

โปรดทราบว่ากฎการค้นหาบริการของ Google เดียวกันที่ใช้กับคําค้นหาการวิเคราะห์ จะใช้กับคําค้นหาการจับคู่คุกกี้ด้วย เช่น คุณไม่สามารถเรียกใช้การค้นหาข้ามบริการ ในผู้ใช้ใน EEA เมื่อสร้างตารางการจับคู่

ดูวิธีรับทราบความยินยอมใน Ads Data Hub ได้ที่ข้อกำหนดด้านความยินยอม สำหรับเขตเศรษฐกิจยุโรป

คุณต้องแสดงแท็กการจับคู่ในทุกหน้าของโดเมนที่คุณสนใจจับคู่ข้อมูลการโฆษณาเพื่อให้ Google ป้อนข้อมูลในตารางการจับคู่ ตำแหน่งที่คุณวางพิกเซลจะขึ้นอยู่กับเป้าหมายการโฆษณา ตัวอย่างเช่น คุณอาจต้องการพยายามจับคู่ผู้ใช้ทุกคนที่เข้าชมโดเมนของคุณ (ต้องใช้พิกเซลในเกือบทุกหน้า) หรือคุณอาจจับคู่ผู้ใช้ที่ทํา Conversion (ต้องใช้พิกเซลในหน้า Conversion) โดยทั่วไปแล้ว พิกเซลที่ใช้กันอย่างแพร่หลายมากขึ้นจะทําให้อัตราการจับคู่สูงขึ้น

แท็กการจับคู่คือพิกเซลขนาด 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 การใช้ตารางเดิมจะช่วยปรับปรุงรายงานด้วยข้อมูลเชิงลึกที่มากขึ้น เนื่องจากตารางดังกล่าว แสดงข้อมูล 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 เช่น หากตารางต้นฉบับมีข้อมูลสำหรับผู้ใช้ ก. และผู้ใช้ ข. แต่มีเพียงผู้ใช้ ก. เท่านั้นที่ตรงกัน ผู้ใช้ ข. จะไม่อยู่ในตารางการจับคู่

ตารางการจับคู่มีคอลัมน์เพิ่มเติมที่ชื่อ external_cookie ซึ่ง จัดเก็บตัวระบุผู้ใช้เป็นไบต์

คุณควรพิจารณาประเภทของฟิลด์เมื่อเขียนคําค้นหา โอเปอเรเตอร์การเปรียบเทียบ SQL คาดหวังว่าค่าตัวอักษรที่คุณเปรียบเทียบจะมีประเภทเดียวกัน คุณอาจต้องเข้ารหัสค่าในตารางก่อนที่จะจับคู่ข้อมูล ทั้งนี้ขึ้นอยู่กับวิธีจัดเก็บ user_id ในตารางข้อมูลจากบุคคลที่หนึ่ง คุณต้องส่งคีย์การเข้าร่วมเป็นไบต์เพื่อให้การจับคู่สำเร็จ

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

นอกจากนี้ การเปรียบเทียบสตริงใน SQL ยังคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ด้วย ดังนั้นคุณ อาจต้องเข้ารหัสสตริงทั้ง 2 ด้านของการเปรียบเทียบเพื่อให้แน่ใจว่า เปรียบเทียบได้อย่างถูกต้อง

การเข้ารหัส User-ID

เข้ารหัส User-ID ฝั่งไคลเอ็นต์

เพื่อให้มั่นใจว่าสามารถส่งรูปแบบรหัสต่างๆ ผ่าน URL ได้อย่างปลอดภัย รหัสทั้งหมดต้องเข้ารหัส Base64 ที่ปลอดภัยสำหรับ URL ก่อนส่ง ระบบจะแสดงรหัสที่ถอดรหัส Base64 ที่ปลอดภัยสำหรับ URL ใน Ads Data Hub ในช่อง external_cookie ดังนั้นคุณจะต้องยกเลิกการเปลี่ยนรูปแบบใดๆ ที่ใช้ก่อนการเข้ารหัสเพื่อรับรหัสเดิม

หากรหัสของคุณมีอักขระ (หรือไบต์) ไม่เกิน 24 ตัวเสมอ คุณจะใส่รหัสที่เข้ารหัส Base64 ที่ปลอดภัยสำหรับ URL ในพิกเซลได้ ดังที่แสดงในตัวอย่างที่ 1 หากรหัสมีความยาวมากกว่า 24 อักขระ (หรือไบต์) คุณจะต้องแปลงรหัสให้มีความยาวไม่เกิน 24 ไบต์ ในบางกรณี (เช่น GUID ในตัวอย่างที่ 2) คุณเพียงแค่ต้องแปลงเป็นตัวแทนไบต์ ในกรณีอื่นๆ คุณอาจต้องส่งชุดย่อย (หรือแฮช) ของรหัสให้ Google โปรดทราบว่าไม่ว่าในกรณีใด คุณจะต้องตรวจสอบว่าคุณเขียน SQL JOIN ได้ ซึ่งจะแปลงรหัสในตารางของบุคคลที่หนึ่งในลักษณะเดียวกัน

ตัวอย่างที่ 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) เป็น User-ID เช่น 123e4567-e89b-12d3-a456-426655440000

Ads Data Hub ขอแนะนําการแปลงต่อไปนี้เมื่อจับคู่

  1. UUID จะได้รับการจัดรูปแบบเป็นสตริง 36 อักขระ
  2. ถอดรหัส UUID เป็นเลขฐาน 16
  3. UUID จะได้รับการจัดรูปแบบเป็นไบต์
  4. ไบต์ที่เข้ารหัส Base64 ที่ปลอดภัยสำหรับ URL
  5. UUID จะได้รับการจัดรูปแบบเป็นสตริง

ซึ่งสามารถใช้โค้ดต่อไปนี้ได้

JavaScript

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);

Python

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 ในการค้นหาที่ 2

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% หมายความว่าคุณต้องมีผู้ใช้ 250 คนต่อแถวเพื่อให้ถึงเกณฑ์การรวบรวมผู้ใช้ 50 คน เนื่องจาก 50 / .2 = 250 

  2. การแข่งขันที่เกิดขึ้นในวันใดวันหนึ่งอาจล่าช้าได้สูงสุด 48 ชั่วโมงก่อนที่จะปรากฏในตาราง