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

הדף הזה מיועד למפתחים שמשתמשים בפתרון משלהם לניהול הסכמה באתר ורוצים לשלב את סטטוס ההסכמה. במאמר הזה מוסבר מהו סטטוס הסכמה. אם אתם משתמשים בפלטפורמה לניהול הסכמה (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'
});

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

אם הבאנר נטען באופן אסינכרוני, יכול להיות שהוא לא יפעל תמיד לפני תגי 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. כלי הניתוח שלכם מתעלמים מהפרמטרים האלה בכתובות ה-URL של הדפים.
    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 של צד שלישי, כמו pagead2.googlesyndication.com.

Tag Manager

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

בעיות נפוצות

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

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

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

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

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

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

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

השלבים הבאים

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

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

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