בדיקות פרטיות ב-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 יש שני מצבי פרטיות – הוספת רעש ובדיקות של הבדלים. פרטים על כל מצב מופיעים בדפים הבאים:

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

נתונים בפועל
מזהה הקמפיין מספר החשיפות
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 37.8373
102 60.9104
201 182.0955
202 26.2332
301 58.0871
302 97.5018
דוגמה לקמפיין 101 במצב רעש
מזהה הקמפיין חשיפות בפועל נוסף רעש חשיפות שהוחזרו (ANON_COUNT)
101 35 2.8373 37.8373

סינון פרטיות מפורש

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

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

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

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

בדוגמה הבאה לשינוי כתובת ה-URL, מתבצעות הפעולות הבאות:

  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 כדי לסכם את הערכים שנבדקו מבחינת פרטיות.

יועץ לשאילתות

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

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

  • ממשק משתמש. ההמלצות יוצגו בעורך השאילתות, מעל טקסט השאילתה.
  • API. משתמשים בשיטה customers.analysisQueries.validate.

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