הגדרת סטטוס הסכמה באתרים

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

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

לפני שמתחילים

לפני שמטמיעים את סטטוס ההסכמה, כדאי לקחת בחשבון את הנקודות הבאות:

  • אם אתם משתמשים ב-Tag Manager ורוצים לשמור על הבאנר שלכם, הגישה המומלצת היא לטעון את הבאנר דרך מאגר התגים של Tag Manager. כדי לעשות את זה, צריך ליצור תבנית של סטטוס הסכמה. אפשר גם להשתמש בתבנית של מצב הסכמה מגלריית התבניות של הקהילה.

  • אם אתם משתמשים ב-gtag.js, חשוב לוודא שהטמעתם את Google Tag בכל דף באתר. קוד סטטוס ההסכמה מתווסף לכל דף באתר.

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

מגדירים ערך ברירת מחדל לכל סוג הסכמה שבו אתם משתמשים. כברירת מחדל, לא מוגדרים ערכים של סטטוס הסכמה.

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

gtag.js

כדי לשנות את יכולות המדידה שמוגדרות כברירת מחדל, קוראים לפקודה gtag('consent', 'default', ...) בכל דף באתר לפני כל פקודה ששולחת נתוני מדידה (כמו config או event).

לדוגמה, כדי להגדיר כברירת מחדל דחייה של ההסכמה לכל הפרמטרים:

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});

אופציונלי: שילוב עם פלטפורמות אסינכרוניות לניהול הסכמה

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

לדוגמה, כדי לדחות את ad_storage בדף מסוים כברירת מחדל, אבל לאפשר לפלטפורמת ה-CMP לעדכן את סטטוס ההסכמה, צריך להשתמש ב-wait_for_update. בדוגמת הקוד הבאה, ערך ברירת המחדל של ad_storage הוא denied, ולכלי לבקשת הסכמה מוקצות 500 אלפיות השנייה לשליחת קריאה אל gtag('consent', 'update', ...) לפני הפעלת התגים:

  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'wait_for_update': 500
  });

Tag Manager

כשמשתמשים ב-Google Tag Manager, צריך ליצור תבנית משלכם באמצעות ממשקי Consent API ב-Tag Manager. בדוגמה הבאה אפשר להשתמש כנקודת התחלה.

משתמשים בממשקי ה-API הספציפיים ל-Tag Manager לניהול מצבי הסכמה setDefaultConsentState וupdateConsentState. אפשר להשתמש ב-API ‏gtagSet כדי להגדיר את ההגדרות ads_data_redaction ואת ההגדרות של העברת כתובת ה-URL, לפי הצורך.

gtag.js

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

באחריותכם לוודא שהערכים הנכונים מוגדרים לכל סוגי ההסכמה. לפרטים מלאים על הסוגים הנתמכים, אפשר לקרוא את הפניית ה-API.

בדוגמת הקוד הבאה אפשר לראות איך מעדכנים את סטטוס ההסכמה ל-granted כשמשתמש מסכים לכל האפשרויות:

<script>
function allConsentGranted() {
  gtag('consent', 'update', {
    'ad_user_data': 'granted',
    'ad_personalization': 'granted',
    'ad_storage': 'granted',
    'analytics_storage': 'granted'
  });
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="allConsentGranted()">Yes</button>
  ...
</body>

Tag Manager

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

אם אתם יוצרים תבנית סטטוס הסכמה בעצמכם, אתם צריכים להשתמש בממשקי ה-API הספציפיים ל-Tag Manager לניהול מצבי הסכמה setDefaultConsentState ו-updateConsentState. אפשר להשתמש ב-API‏ gtagSet כדי להגדיר את ההגדרות של ads_data_redaction והעברת פרמטרים בכתובת ה-URL, לפי הצורך.

דוגמה של הטמעה

בדוגמה הבאה, כמה פרמטרים של סטטוס ההסכמה מוגדרים כ-denied כברירת מחדל. אחרי שהמשתמש מציין את הבחירות שלו בנוגע להסכמה, הפרמטרים הרלוונטיים מתעדכנים לערך granted.

gtag.js

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

  1. טוענים את Google Tag. זהו קוד קטע ברירת המחדל. צריך לעדכן את קטע הקוד שמוגדר כברירת מחדל (ראו בהמשך) כך שיכלול קריאה ל-gtag('consent', 'default', ...).

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

  3. אם פתרון ההסכמה שלכם לא מטפל בזה, צריך להפעיל את הקריאה gtag('consent', 'update', ...) אחרי שהמשתמש מציין את ההסכמה שלו.

<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());
  gtag('config', 'TAG_ID');
</script>

<!-- Create one update function for each consent parameter -->
<script>
  function consentGrantedAdStorage() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
  <button onclick="consentGrantedAdStorage">Yes</button>
  ...
</body>

Tag Manager

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

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

<script>
  // Define dataLayer and the gtag function.
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Set default consent to 'denied' as a placeholder
  // Determine actual values based on your own requirements
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'analytics_storage': 'denied'
  });
</script>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- Create one update function for each consent parameter -->
<script>
  function consentGrantedAdStorage() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
  <button onclick="consentGrantedAdStorage()">Yes</button>
  ...
</body>

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

מידע נוסף על העדכונים של Google בסטטוס ההסכמה לגבי תנועה באזור הכלכלי האירופי (EEA)

משתמשים בסטטוס הסכמה צריכים לשלוח שני פרמטרים חדשים בנוסף ל-ad_storage ול-analytics_storage:

שם השדה ערכים מותרים תיאור
ad_user_data 'granted' | 'denied' מגדיר הסכמה לשליחת נתוני משתמשים שקשורים לפרסום אל Google.
ad_personalization 'granted' | 'denied' מגדיר הסכמה לפרסום מותאם אישית.

התכונות המתקדמות שקשורות להסכמה כוללות את האפשרויות הבאות:

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

התנהגות ספציפית לאזור

כדי להגדיר מצבי הסכמה שחלים על מבקרים מאזורים מסוימים, צריך לציין אזור (בהתאם לתקן ISO 3166-2) בפקודה consent default של gtag. השימוש בערכי אזור מאפשר לכם לעמוד בדרישות של תקנות אזוריות.

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

gtag.js

בדוגמה הבאה, הערך של analytics_storage מוגדר ל-denied עבור משתמשים מספרד ומאלסקה, והערך של ad_storage מוגדר ל-denied עבור כל המשתמשים.

  gtag('consent', 'default', {
    'analytics_storage': 'denied',
    'region': ['ES', 'US-AK']
  });

  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });

Tag Manager

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

הפרמטר הספציפי ביותר מקבל עדיפות

אם שתי פקודות ברירת מחדל להסכמה מופיעות באותו דף עם ערכים לאזור ולאזור משנה, הפקודה עם האזור הספציפי יותר תיכנס לתוקף. לדוגמה, אם הגדרתם את ad_storage ל-granted לאזור ארה"ב ואת ad_storage ל-denied לאזור קליפורניה בארה"ב, מבקר מקליפורניה יושפע מההגדרה הספציפית יותר של קליפורניה בארה"ב. בדוגמה הזו, המשמעות היא שמבקר מארה"ב-קליפורניה יראה את הערך ad_storage כ-denied.

אזור ad_storage התנהגות
ארה"ב 'granted' רלוונטי למשתמשים בארה"ב שלא נמצאים בקליפורניה
US-CA 'denied' רלוונטי למשתמשים בארה"ב ובקנדה
לא צוין 'granted' משתמשים בערך ברירת המחדל 'granted'. בדוגמה, התנאי חל על מבקרים שלא נמצאים בארה"ב או בקליפורניה בארה"ב

העברת מידע על קליקים על מודעות, מזהה לקוח ומזהה סשן בכתובות URL

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

עם זאת, אם הערך של ad_storage מוגדר כ-denied, המידע הזה לא יישמר באופן מקומי. כדי לשפר את איכות המדידה של קליקים על מודעות כשהערך של ad_storage הוא denied, אתם יכולים להעביר מידע על קליקים על מודעות באמצעות פרמטרים של כתובות URL בין דפים באמצעות העברת סיגנל ללא שינוי של כתובת URL.

באופן דומה, אם הערך של analytics_storage מוגדר כ-denied, אפשר להשתמש בהעברת פרמטרים בכתובת URL כדי לשלוח ניתוחים מבוססי-אירועים ומבוססי-סשנים (כולל אירועים מרכזיים) בלי קובצי Cookie בין דפים.

כדי להשתמש בהעברת כתובות URL, התנאים הבאים חייבים להתקיים:

  • ‫Google Tag מודע להסכמה ומופיע בדף.
  • המפרסם הפעיל את התכונה 'העברת כתובת URL'.
  • סטטוס ההסכמה הוטמע בדף.
  • הקישור היוצא מפנה לאותו דומיין של הדף הנוכחי.
  • קיים GCLID או DCLID בכתובת ה-URL (תגי Google Ads ותגי Floodlight בלבד)

gtag.js

כדי להפעיל את היכולת הזו, מגדירים את הפרמטר url_passthrough לערך true. מוסיפים את הפקודה הבאה לקטע הקוד שמוגדר כברירת מחדל לפני כל פקודות config:

gtag('set', 'url_passthrough', true);

Tag Manager

אם אתם משתמשים בתבנית כדי ליצור את התג, יכול להיות שיש בה אמצעי בקרה להגדרת העברת פרמטרים של כתובת URL. אם אתם יוצרים תג תבנית משלכם, במאמר יצירת תבנית של סטטוס הסכמה מוסבר איך להגדיר העברה של כתובת URL באמצעות gtagSet Custom Template API.

לחלופין, אפשר להשתמש באפשרויות הבאות כדי להגדיר את ההגדרה הזו בתגי Conversion Linker או בתגי Analytics

לתגי Google Ads ו-Floodlight:

כדי להפעיל את היכולת הזו, צריך ליצור (או להשתמש בקיים) תג Conversion Linker ולוודא שתיבת הסימון Enable linking on all page URLs (הפעלת הקישור בכל כתובות ה-URL של הדפים) מסומנת. הוראות ליצירת תג Conversion Linker מופיעות במאמר בנושא הגדרה בסיסית.

לתגי Google Analytics:

  1. ב-Tag Manager, עוברים אל Fields to Set (שדות להגדרה) ובוחרים באפשרות **Tag Configuration

    שדות להגדרה**.

    1. כשמרחיבים את הקטע Fields to Set (שדות להגדרה), לוחצים על Add Row (הוספת שורה).
    2. בשם השדה, מזינים url_passthrough.
    3. בשדה ערך, מזינים true.
    4. שומרים את התג ומפרסמים.

    אפשרות אחרת היא להגדיר את הפרמטר url_passthrough לערך true בכל דף באתר לפני קטע הקוד להתקנה של GTM.

    window.dataLayer = window.dataLayer || [];
    function gtag(){window.dataLayer.push(arguments);}
    gtag('set', 'url_passthrough', true);
    

    כשמשתמשים בהעברת פרמטרים של שאילתות בכתובות URL, יכול להיות שפרמטרים מסוימים של שאילתות יצורפו לקישורים כשהמשתמשים עוברים בין דפים באתר:

    • gclid
    • dclid
    • gclsrc
    • _gl
    • wbraid

    כדי לקבל את התוצאות הטובות ביותר, חשוב לוודא ש:

    1. ההפניות האוטומטיות באתר מעבירות את כל הפרמטרים של השאילתה שצוינו למעלה.
    2. כלי הניתוח שלכם מתעלמים מהפרמטרים האלה בכתובות של דפי האתר.
    3. הפרמטרים האלה לא משפיעים על התנהגות האתר.

השמטת נתוני מודעות

כשהערך של ad_storage הוא denied, לא יוגדרו קובצי Cookie חדשים למטרות פרסום. בנוסף, לא ייעשה שימוש בקובצי Cookie של צד שלישי שהוגדרו בעבר ב-google.com וב-doubleclick.net, אלא רק למטרות של מניעת ספאם והונאות. הנתונים שנשלחים ל-Google עדיין יכללו את כתובת ה-URL המלאה של הדף, כולל מידע לגבי קליקים על מודעות בפרמטרים של כתובת ה-URL.

gtag.js

כדי לצנזר עוד יותר את נתוני המודעות כש-ad_storage הוא denied, מגדירים את ads_data_redaction לערך true.

gtag('set', 'ads_data_redaction', true);

כאשר הערך של ads_data_redaction הוא true והערך של ad_storage הוא denied, המערכת תצנזר את מזהי הקליקים על מודעות שנשלחים בבקשות לרשת על ידי תגי Google Ads ו-Floodlight. בקשות לרשת יישלחו גם דרך דומיין ללא קובצי Cookie.

Tag Manager

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

בעיות נפוצות

כשמטמיעים סטטוס הסכמה מתקדם, צריך להפעיל פקודת עדכון בדף שבו המשתמש מביע הסכמה.

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

לדוגמה, ב-Google Analytics, יכול להיות שבסשנים רבים שבהם המשתמשים הביעו הסכמה חסר אירוע session_start.

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

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

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

השלבים הבאים

אמצעי בקרה של תגים מדור קודם

אם אתם משתמשים בתגים מדור קודם, כמו ga.js,‏ analytics.js או conversion.js, אתם צריכים לעדכן ל-gtag.js או ל-Google Tag Manager.

מידע נוסף על אמצעי הבקרה על פרטיות בתגים מדור קודם זמין במסמכים הבאים: