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

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

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

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

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

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

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

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

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

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

כדי לשנות את יכולות המדידה שמוגדרות כברירת מחדל, צריך להפעיל את הפקודה 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
 
});

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

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

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

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

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

דוגמה להטמעה

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

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

  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, מומלץ להשתמש בפלטפורמת 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 להצגת מודעות.

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

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

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

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

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

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

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

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

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

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

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

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

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

כדי להשתמש בהעברה אוטומטית של כתובות URL, צריך לעמוד בתנאים הבאים:

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

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

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

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

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

בתגים של Google Ads ו-Floodlight:

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

בתגים של Google Analytics:

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

לחלופין, אפשר להגדיר את הפרמטר 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.

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

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

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

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

בעיות נפוצות

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

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

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

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

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

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

השלבים הבאים

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

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

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