בדיקות פרטיות ב-Ads Data Hub

הפרטיות של משתמשי הקצה היא הבסיס לכל מה שקורה ב-Ads Data Hub. הפלטפורמה שלנו מבוססת על העיקרון הזה. כדי לשמור על הפרטיות ולעזור ללקוחות שלנו לעמוד בדרישות הרגולטוריות, אנחנו מבצעים בדיקות מסוימות ומטילים הגבלות מסוימות, שמטרתן למנוע את העברת הנתונים על משתמשים פרטיים1 בנתונים שאתם מקבלים מהפלטפורמה.

בהמשך מופיע פירוט נוסף על התכונות של Ads Data Hub לשמירה על פרטיות, אבל הנה סקירה כללית:

  • בדיקות סטטיות בוחנות את ההצהרות בשאילתות כדי לחפש בעיות ברורות ומיידיות שקשורות לפרטיות.
  • תקציבים לגישה לנתונים מגבילים את מספר הפעמים הכולל שבהם אפשר לגשת לפריט נתונים מסוים.
  • בדיקות צבירה מוודאות שבכל שורה יש מספר גדול מספיק של משתמשים כדי להגן על הפרטיות של משתמשי הקצה.
  • הוספת רעש מוסיפה רעש אקראי מכויל במדויק לסעיף SELECT של צבירת נתונים, כדי להגן על פרטיות המשתמשים ולספק תוצאות מדויקות באופן סביר.
  • בדיקות הבדלים (או "בדיקות השוואה") הן חלופה מדור קודם להוספת רעש. הן משוות בין קבוצות תוצאות כדי למנוע שילובים שיכולים לזהות משתמשים ספציפיים. כך נמנע רעש, אבל לעיתים קרובות זה מוביל להשמטת נתונים משמעותית ובלתי צפויה.

בדיקות סטטיות

בבדיקות סטטיות נבדקות ההצהרות בשאילתות כדי לחפש בעיות ברורות ומיידיות שקשורות לפרטיות, כמו ייצוא של מזהי משתמשים, כל פונקציה של מזהי משתמשים או שימוש בפונקציות אסורות בשדות שמכילים נתונים ברמת המשתמש. כדי להימנע משגיאות בשאילתות כתוצאה מבדיקות סטטיות, מומלץ לעיין בשיטות המומלצות ולהבין אילו פונקציות מותרות.

תקציב לגישה לנתונים

התקציב לגישה לנתונים מגביל את המספר הכולל של הפעמים שבהן אפשר לגשת לפריט נתונים מסוים. משתמשים שמתקרבים לסוף התקציב יקבלו הודעה בנושא פרטיות מסוג DATA_ACCESS_BUDGET_IS_NEARLY_EXHAUSTED. אפשר לעקוב אחרי התקציב באמצעות נקודת הכניסה תקציב לגישה לנתונים או באמצעות התראות על התקציב בממשק המשתמש.

דרישות לצבירת נתונים

בבסיס הבדיקות לאימות הפרטיות ב-Ads Data Hub נמצא סף צבירת המשתמשים. הסף הספציפי תלוי במצב הפרטיות ובנתונים שנכנסים אליהם:

  • הוספת רעשי רקע דורשת כ-20 משתמשים ייחודיים לכל שורת תוצאה.
  • כדי לבצע בדיקות של הבדלים, צריך כ-50 משתמשים ייחודיים לכל שורת תוצאות.
  • שאילתות שכוללות רק נתוני קליקים והמרות דורשות כ-10 משתמשים ייחודיים לכל שורת תוצאה.

בדוגמה הבאה (שבה נעשה שימוש בהוספת רעשי רקע), השורה שמכילה את campaign 125 תסונן מהתוצאות הסופיות, כי היא כוללת תוצאות מצטברות של 18 משתמשים, שזה פחות מ-20 משתמשים.

קוד זיהוי קמפיין משתמשים חשיפות
123 314 928
124 2718 5772
125 18 45

מצבי פרטיות

ב-Ads Data Hub יש שני מצבי פרטיות – הוספת רעשי רקע ובדיקות של הבדלים. פרטים על כל מצב מופיעים בדפים הבאים:

השוואה בין בדיקות של הבדלים לבין הוספת רעש

במצב של בדיקות הבדלים, השורות מסוננות אם הן לא עומדות בדרישה של צבירת נתונים של 50 משתמשים או אם הן מפעילות הפרות של בדיקות ההבדלים.

במצב הוספת רעשי רקע, השורות מסוננות רק אם הן לא עומדות בדרישת הצבירה (כ-20 משתמשים לנתוני חשיפות), ורעש אקראי מתווסף לתוצאות המצטברות.

נתונים בפועל
קוד זיהוי קמפיין מספר החשיפות
101 35
102 63
201 142
202 21
301 56
302 99
תוצאות באמצעות בדיקות של הבדלים
קוד זיהוי קמפיין מספר החשיפות
101 35
102 63
201 142
202 21
301 56
302 99
תוצאות עם החדרת רעש
קוד זיהוי קמפיין מספר החשיפות
101 38
102 61
201 182
202 26
301 58
302 98
דוגמה לקמפיין 101 במצב רעש
קוד זיהוי קמפיין חשיפות בפועל נוסף רעש חשיפות שהוחזרו (עם רעש COUNT)
101 35 2.8373 38

סינון תוכן בוטה בהגדרות הפרטיות

במקרים שבהם צריך לפצל את השאילתה אבל רוצים לשלב את התוצאות המצטברות, אפשר להחיל באופן מפורש בדיקות פרטיות על כמה שאילתות קטנות יותר ואז לצבור את התוצאות האלה יחד בצורה בטוחה מבחינת פרטיות.

תרחישים לדוגמה:

  • אתם מפרסמים שרוצים לראות את כל ההמרות לפי סוג אירוע שיוך בחשבון Google Ads המקושר, כולל נתונים מ-EEA.
  • אתם שותפי מדידה ומחפשים את כל ההמרות לפי סוג אירוע שיוך בחשבון Google Ads המקושר.

כדי לקבל את סכום ההמרות בחשבון Google Ads, אפשר לשכתב את השאילתה באמצעות פסקה OPTIONS(privacy_checked_export=TRUE) כדי להחיל בדיקות פרטיות על כל שירות של Google בנפרד.

הדוגמה לכתיבה מחדש בקטע הזה כוללת את הפעולות הבאות:

  1. היא שולחת שאילתות לכל שירות של Google בנפרד, ומבצעת בדיקות פרטיות באופן מפורש לכל קבוצת תוצאות ביניים.
  2. הוא יוצר טבלה זמנית נפרדת לתוצאות של כל שירות של Google אחרי בדיקת הפרטיות: YouTube,‏ Gmail והרשת.
  3. הוא מצטבר ומסכם את מספרי ההמרות שנבדקו מבחינת פרטיות מטבלאות זמניות.
CREATE TEMP TABLE youtube_agg OPTIONS(privacy_checked_export=TRUE) AS
SELECT
 impression_data.campaign_id,
 attribution_event_type,
 COUNT(1) AS num_convs
FROM adh.google_ads_conversions_policy_isolated_youtube
WHERE impression_data.campaign_id IN UNNEST(@campaign_ids)
 AND conversion_type IN UNNEST(@conversion_type_list)
GROUP BY campaign_id, attribution_event_type;

CREATE TEMP TABLE network_agg OPTIONS(privacy_checked_export=TRUE) AS
SELECT
 impression_data.campaign_id,
 attribution_event_type,
 COUNT(1) AS num_convs
FROM adh.google_ads_conversions_policy_isolated_network
WHERE impression_data.campaign_id IN UNNEST(@campaign_ids)
 AND conversion_type IN UNNEST(@conversion_type_list)
GROUP BY campaign_id, attribution_event_type;

CREATE TEMP TABLE gmail_agg OPTIONS(privacy_checked_export=TRUE) AS
SELECT
 impression_data.campaign_id,
 attribution_event_type,
 COUNT(1) AS num_convs
FROM adh.google_ads_conversions_policy_isolated_gmail
WHERE impression_data.campaign_id IN UNNEST(@campaign_ids)
 AND conversion_type IN UNNEST(@conversion_type_list)
GROUP BY campaign_id, attribution_event_type;

SELECT
 campaign_id,
 attribution_event_type,
 SUM(num_convs) AS num_convs
FROM (
 SELECT * FROM youtube_agg
 UNION ALL
 SELECT * FROM network_agg
 UNION ALL
 SELECT * FROM gmail_agg
)
GROUP BY campaign_id, attribution_event_type

שימו לב שבשאילתה הזו לא נעשה שימוש ב-JOIN כדי לשלב נתונים בין הטבלאות באופן ישיר, אלא השאילתה מבוצעת קודם לכל טבלה, בדיקות הפרטיות מוחלות על כל טבלה זמנית, ואז נעשה שימוש ב-UNION כדי לסכם את הערכים שעברו את בדיקות הפרטיות.

Query advisor

אם ה-SQL תקין אבל עלול לגרום לבעיות שקשורות לפרטיות, יועץ השאילתות יציג המלצות מעשיות במהלך תהליך פיתוח השאילתה, כדי לעזור לכם להימנע מתוצאות לא רצויות.

כדי להשתמש בכלי לייעוץ לגבי שאילתות:


  1. חוץ מנתונים שהם הסכימו לשתף, כמו במקרה של משתתפים בפאנל. ↩