Privacy & Messaging JavaScript API

מבוא

ה-API הזה מספק כלים לאינטראקציה עם ההודעות שמוצעות בכרטיסייה "פרטיות והודעות". בעזרת הכלי הזה, אתם יכולים:

ועוד.

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

במקרים כאלה, סטטוס ההסכמה מועבר באמצעות ממשקי ה-API האלה.

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

  1. ברוב המקרים, אין צורך לתייג מחדש בכלל – Google Publisher Tag או תג AdSense הקיימים מציגים הודעות למשתמשים ברגע שההודעה מתפרסמת במוצר הרלוונטי.
  2. אם אתם משתמשים בהודעה למשתמשים עם חסימת מודעות, אתם צריכים להוסיף לדף את התג של חסימת המודעות באופן מפורש. מידע נוסף זמין בהוראות התיוג של Ad Manager ו-AdSense.

‫googlefc הוא מרחב השמות הגלובלי שבו משתמשת הפונקציונליות של הודעות למשתמשים ב-API ב-JavaScript Window.

סיכומי שדות

שם סוג הגדרה
googlefc.controlledMessagingFunction function(!Object) פונקציה שקובעת אם להמשיך בהעברת הודעות. הפונקציונליות הזו נתמכת בכל סוגי ההודעות.
googlefc.callbackQueue !Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue הפניה לתור הקריאה החוזרת (callback) להפעלה אסינכרונית של שאילתות להעברת הודעות למשתמשים.
googlefc.CallbackQueue !Object סוג האובייקט של תור הקריאה החוזרת (callback).
googlefc.AdBlockerStatusEnum !Object<string, number> ערך enum שמייצג את מצב חסימת המודעות של המשתמש.
googlefc.AllowAdsStatusEnum !Object<string, number> ערך enum שמייצג את מצב ההסכמה של המשתמש להצגת מודעות.
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum !Object<string, number> ערך enum שמייצג את סטטוס ההסכמה הראשוני של המשתמש בהתאם לתקנות במדינות בארה"ב. ההגדרה הזו מביאה בחשבון את המדינה בארה"ב שבה המשתמש נמצא.
googlefc.GoogleFcConsentModeUserStatus !Object סוג הערך שמוחזר עבור googlefc.getGoogleConsentModeValues.
googlefc.ConsentModePurposeStatusEnum !Object<string, number> ערך enum שמייצג את ההחלטה של משתמש הקצה לגבי מטרה של סטטוס הסכמה.
googlefc.usstatesoptout.overrideDnsLink undefined|boolean ערך בוליאני שאפשר להגדיר כ-true כדי להשתמש בקישור מותאם אישית משלכם ל"אל תמכרו או תשתפו את המידע שלי".
googlefc.ccpa.InitialCcpaStatusEnum

מדור קודם. עדיף להשתמש ב-googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.
!Object<string, number> ערך enum שמייצג את הסטטוס הראשוני של המשתמש בהתאם לתקנות במדינות בארה"ב.
googlefc.ccpa.overrideDnsLink

מדור קודם. עדיף להשתמש ב-googlefc.usstatesoptout.overrideDnsLink.
undefined|boolean ערך בוליאני שאפשר להגדיר כ-true כדי להשתמש בקישור מותאם אישית משלכם ל"אל תמכרו או תשתפו את המידע שלי".

סיכומי שיטות

שם סוג הערך שמוחזר הגדרה
googlefc.showRevocationMessage() לא מוגדר הפונקציה מוחקת את רשומת ההסכמה וטוענת מחדש את הסקריפט של googlefc כדי להציג את ההודעה לבקשת הסכמה שרלוונטית למשתמש.
googlefc.getAdBlockerStatus() number מחזיר ערך ב-AdBlockerStatusEnum בהתאם לסטטוס חסימת המודעות של המשתמש.
googlefc.getAllowAdsStatus() number הפונקציה מחזירה ערך ב-AllowAdsStatusEnum בהתאם לסטטוס allow-ads של המשתמש.
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() number הפונקציה מחזירה ערך ב-InitialUsStatesOptOutStatusEnum בהתאם לסטטוס הראשוני של המשתמש בנוגע לביטול ההסכמה לתקנות במדינות בארה"ב. ההגדרה הזו מביאה בחשבון את התקנות שחלות על המשתמשים בהתאם למיקום הנוכחי שלהם.
googlefc.usstatesoptout.openConfirmationDialog(function(boolean)) לא מוגדר פתיחת תיבת הדו-שיח לאישור ביטול ההסכמה לתקנות במדינות בארה"ב, אם הקישור שמוגדר כברירת מחדל ל"לא למכור או לשתף" נדחה.
googlefc.getGoogleConsentModeValues() !Object מחזירה אובייקט googlefc.GoogleFcConsentModeUserStatus שמכיל את הערכים הנוכחיים של סטטוס ההסכמה של המשתמש, אחד לכל מטרה זמינה של סטטוס הסכמה.
googlefc.ccpa.getInitialCcpaStatus()

מדור קודם. הפורמט המועדף: googlefc.usstatesoptout.getInitialUsStatesOptOutStatus().
number הפונקציה מחזירה ערך ב-InitialCcpaStatusEnum בהתאם לסטטוס הראשוני של המשתמש לגבי ביטול ההסכמה לתקנות במדינות בארה"ב.
googlefc.ccpa.openConfirmationDialog(function(boolean))

מדור קודם. הפורמט המועדף: googlefc.usstatesoptout.openConfirmationDialog().
לא מוגדר פתיחת תיבת הדו-שיח לאישור ביטול ההסכמה לתקנות במדינות בארה"ב, אם הקישור שמוגדר כברירת מחדל לאיסור על מכירה או שיתוף של מידע אישי נעקף.

בדיקה וניפוי באגים באתר

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

דרישות מוקדמות:

  • ההודעות שרוצים לראות בתצוגה מקדימה צריכות להתפרסם באתר שבו מבצעים את הבדיקה.

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

פרמטר של ניפוי באגים ערכים מותרים
fc alwaysshow (כדי להפעיל את מצב ניפוי הבאגים או התצוגה המקדימה)
fctype ‫ab (הודעות בנושא חסימת מודעות), ccpa (הודעות לביטול הסכמה בהתאם לתקנות במדינות בארה"ב), gdpr (הודעות לבקשת הסכמה בהתאם ל-GDPR), monetization (הודעות Offerwall), usfl (הודעות לביטול הסכמה בהתאם לתקנות במדינת פלורידה בארה"ב), usnat (הודעות לביטול הסכמה בהתאם לתקנות בכל המדינות הנתמכות בארה"ב, פרט לפלורידה; שווה ערך ל-ccpa)

כמה דוגמאות לשימוש בפרמטר הזה כדי להציג תצוגה מקדימה באתר (foo.com):

  • בדיקת הודעות לביטול הסכמה בהתאם לתקנות במדינות בארה"ב – http://foo.com/?fc=alwaysshow&fctype=ccpa
  • בדיקת הודעות לבקשת הסכמה בהתאם ל-GDPR – ‏http://foo.com/?fc=alwaysshow&fctype=gdpr

שדות: הסברים ודוגמאות

googlefc.controlledMessagingFunction {function(!Object)}

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

כשמגדירים את googlefc.controlledMessagingFunction בחלון לפני שטוענים סקריפטים אחרים, ההודעות לא מוצגות עד שמפעילים את message.proceed(boolean). קריאה ל-message.proceed(true) מאפשרת להודעות להמשיך כרגיל, ואילו קריאה ל-message.proceed(false) מונעת את הצגת ההודעות בצפייה בדף.

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

<head>
  <script>
    window.isSubscriber = undefined;
    function determineIfUserIsSubscriber() {
      if (isSubscriber !== undefined) {
        return isSubscriber;
      }
      return new Promise(resolve => {
        setTimeout(() => {
          // Change this to true if you want to test what subscribers would see.
          window.isSubscriber = false;
          resolve(window.isSubscriber);
        }, 1000);
      });
    }
  </script>
</head>

בדוגמה הבאה אפשר לראות איך משתמשים ב-googlefc.controlledMessagingFunction כדי להציג את ההודעה רק למשתמשים שלא מנויים.

<head>
  <script>
    // Define googlefc and the controlled messaging function on the Window.
    window.googlefc = window.googlefc || {};
    googlefc.controlledMessagingFunction = async (message) => {
      // Determine if the user is a subscriber asynchronously.
      const isSubscriber = await determineIfUserIsSubscriber();

      if (isSubscriber) {
        // If the user is a subscriber, don't show any messages.
        message.proceed(false);
      } else {
        // Otherwise, show messages as usual.
        message.proceed(true);
      }
    }
  </script>
</head>

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

כדי לשלוט בהודעות לפי סוג ההודעה, צריך להעביר פרמטר נוסף אל message.proceed(), ‏Array מסוג googlefc.MessageTypeEnum.

דוגמה: כך משתמשים ב-googlefc.controlledMessagingFunction כדי לבטל את ההצגה של הודעות Offerwall למנויים בלבד, בלי לבטל את ההצגה של סוגי הודעות אחרים:

<head>
  <script>
    // Define googlefc and the controlled messaging function on the Window.
    window.googlefc = window.googlefc || {};
    googlefc.controlledMessagingFunction = async (message) => {
     // Determine if the Offerwall should display or not.
     const shouldDisplayOfferwall = await determineIfUserIsSubscriber();
     const applicableMessageTypes = [];

     if (!shouldDisplayOfferwall) {
       // Do not show the Offerwall, but allow other message types to display.
       applicableMessageTypes.push(window.googlefc.MessageTypeEnum.OFFERWALL);
       message.proceed(false, applicableMessageTypes);
     } else {
       // Otherwise, show messages as usual.
       message.proceed(true);
     }
    }
  </script>
</head>

googlefc.callbackQueue {!Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue}

הפניה לתור ה-callback הגלובלי להפעלה אסינכרונית של קריאות שקשורות להעברת הודעות. הדרך היחידה להפעיל פונקציה היא להוסיף אותה ל-callbackQueue.

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

המקשים הנתמכים:

שם המפתח שימוש זמן אחזור יחסי
CONSENT_API_READY פונקציות שנדחפות לתור הקריאה החוזרת (callback) באמצעות המפתח CONSENT_API_READY מופעלות כשממשקי ה-API של מסגרות ההסכמה הנתמכות מוגדרים וניתנים לקריאה. מאותו רגע, ההפעלה של כל פונקציה עם המפתח CONSENT_API_READY שנוספת לאחר מכן היא סינכרונית. בקטעים שעוסקים ב מסגרות של IAB מפורטים פרטים ספציפיים לכל מסגרת. נמוכה
CONSENT_DATA_READY פונקציות שנדחפות לתור הקריאה החוזרת (callback) עם המפתח CONSENT_DATA_READY מופעלות כשהסכמת המשתמש שנאספה במסגרת תמיכה בהסכמה ידועה (מהפעלה קודמת או אחרי שהמשתמש יוצר אינטראקציה עם ההודעה לבקשת הסכמה). מאותו רגע, ההפעלה של כל פונקציה עם המפתח CONSENT_DATA_READY שנוספת לאחר מכן היא סינכרונית. גבוהה
AD_BLOCK_DATA_READY פונקציות שנדחפות לתור הקריאה החוזרת באמצעות המפתח AD_BLOCK_DATA_READY מופעלות כשנתוני חסימת המודעות הופכים לזמינים בתהליך. מאותו רגע, הפונקציות עם המפתח AD_BLOCK_DATA_READY שנוספות לאחר מכן מופעלות באופן סינכרוני. גבוהה
CONSENT_MODE_DATA_READY פונקציות שנדחפות לתור הקריאה החוזרת (callback) עם המפתח CONSENT_MODE_DATA_READY מופעלות כשנתוני [סטטוס ההסכמה](https://support.google.com/google-ads/answer/10000067) של Google (לשימוש עם תגי Google Ads ו-Analytics) הופכים לזמינים בתהליך. אחרי שהנתונים של סטטוס ההסכמה מוכנים, אפשר לגשת לערכים של סטטוס ההסכמה בכל שלב באמצעות googlefc.getGoogleConsentModeValues. בינונית
INITIAL_US_STATES_OPT_OUT_DATA_READY פונקציות שנדחפות לתור ה-callback באמצעות המפתח INITIAL_US_STATES_OPT_OUT_DATA_READY מופעלות כשהנתונים לגבי התקנות במדינות בארה"ב הופכים לזמינים בתהליך. חשוב לזכור שכל בקשה עוקבת לקבלת נתונים בהתאם לתקנות במדינות בארה"ב צריכה להתבצע באמצעות קריאה ישירה ל-GPP API‏ (__gpp). בינונית
INITIAL_CCPA_DATA_READY מפתח מדור קודם לתקנות במדינות בארה"ב. הפורמט המועדף: INITIAL_US_STATES_OPT_OUT_DATA_READY.

פונקציות שנדחפות לתור הקריאה החוזרת (callback) באמצעות המפתח INITIAL_CCPA_DATA_READY מופעלות כשנתוני התקנות במדינות בארה"ב הופכים לזמינים בתהליך. חשוב לזכור שכל בקשה נוספת לקבלת נתונים בהתאם לתקנות במדינות בארה"ב צריכה להתבצע באמצעות קריאה ישירה ל-GPP API‏ (__gpp).
בינונית

googlefc.CallbackQueue {!Object}

סיכום השיטה:

שם סוג פרמטר סוג הערך שמוחזר תפקיד
push(data) number ‫data: צמד מפתח/ערך, כשהמפתח הוא אחד מסוגי זמינות הנתונים והערך הוא פונקציית JavaScript שצריך להפעיל. המפתחות הקבילים של זמינות הנתונים הם CONSENT_API_READY, CONSENT_DATA_READY, AD_BLOCK_DATA_READY, INITIAL_US_STATES_OPT_OUT_DATA_READY, CONSENT_MODE_DATA_READY ו-INITIAL_CCPA_DATA_READY (גרסה קודמת). מספר הפקודות שנוספו עד עכשיו. הפונקציה מחזירה את האורך הנוכחי של המערך. מפעילה את הפונקציה שהועברה, לפי הסדר שבו הנתונים הופכים לזמינים, ואז לפי הסדר שבו הפונקציות האלה נוספות לתור.

דוגמה:

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'AD_BLOCK_DATA_READY':
    () => {
      if (googlefc.getAdBlockerStatus() == googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER) {
        // Handle a non-ad blocking user.
      }
    }
  });
</script>

googlefc.AdBlockerStatusEnum {!Object<string, number>}

מייצג את המצבים השונים של חסימת המודעות של המשתמש. המצבים השונים הם:

googlefc.AdBlockerStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // The user was running an extension level ad blocker.
  EXTENSION_AD_BLOCKER: 1,
  // The user was running a network level ad blocker.
  NETWORK_LEVEL_AD_BLOCKER: 2,
  // The user was not blocking ads.
  NO_AD_BLOCKER: 3,
};

googlefc.AllowAdsStatusEnum {!Object<string, number>}

מייצג את המצבים השונים של המשתמשים בנוגע לחסימת מודעות. אלה המצבים השונים:

googlefc.AllowAdsStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // User is currently using an ad blocker, was never using an ad blocker, or
  // allowed ads, but not because they saw the Privacy & messaging message.
  ADS_NOT_ALLOWED: 1,
  // User is no longer using an ad blocker after seeing the ad blocking message.
  ADS_ALLOWED: 2,
};

googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum{!Object<string, number>}

מייצג את הסטטוסים השונים של ביטול ההסכמה של המשתמש בהתאם לתקנות במדינות בארה"ב. אלה הסטטוסים השונים:

googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum = {
  // Something failed, status unknown.
  UNKNOWN: 0,
  // No US state regulation applies to this user.
  DOES_NOT_APPLY: 1,
  // A US state regulation applies to this user, and the user has not opted out yet.
  NOT_OPTED_OUT: 2,
  // A US state regulation applies to this user, and the user has opted out.
  OPTED_OUT: 3,
};

googlefc.GoogleFcConsentModeUserStatus{!Object}

סוג האובייקט שמוחזר על ידי googlefc.getGoogleConsentModeValues.

interface GoogleFcConsentModeUserStatus {

  // End user consent decision value for the ad_storage consent mode purpose.
  adStoragePurposeConsentStatus: number;

  // End user consent decision value for the ad_user_data consent mode purpose.
  adUserDataPurposeConsentStatus: number;

  // End user consent decision value for the ad_personalization consent mode purpose.
  adPersonalizationPurposeConsentStatus: number;

  // End user consent decision value for the analytics_storage consent mode purpose.
  analyticsStoragePurposeConsentStatus: number;
}

הערך של כל שדה הוא מספר שתואם לערך enum של googlefc.ConsentModePurposeStatusEnum.


googlefc.ConsentModePurposeStatusEnum{!Object<string, number>}

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

googlefc.ConsentModePurposeStatusEnum = {
  // Indicates either an error state, or that consent mode data is not ready
  // yet.
  UNKNOWN: 0,
  // Consent is granted for the given consent mode purpose.
  GRANTED: 1,
  // Consent is denied for the given consent mode purpose.
  DENIED: 2,
  // Consent is not applicable for the given consent mode purpose.
  NOT_APPLICABLE: 3,
  // The consent mode purpose has not been configured for use in the Privacy &
  // messaging UI.
  NOT_CONFIGURED: 4
};

googlefc.usstatesoptout.overrideDnsLink{undefined|boolean}

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

דוגמה:

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  // Signals that the default DNS link will be overridden.
  googlefc.usstatesoptout.overrideDnsLink = true;
</script>

googlefc.ccpa.InitialCcpaStatusEnum{!Object<string, number>}

מייצג את הסטטוסים השונים של ביטול ההסכמה של המשתמש בהתאם לתקנות במדינות בארה"ב. אלה הסטטוסים השונים:

googlefc.ccpa.InitialCcpaStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // No US state regulation applies to this user.
  CCPA_DOES_NOT_APPLY: 1,
  // A US state regulation applies to this user, and the user has not opted out yet.
  NOT_OPTED_OUT: 2,
  // A US state regulation applies to this user, and the user has opted out.
  OPTED_OUT: 3,
};

googlefc.ccpa.overrideDnsLink{undefined|boolean}

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

דוגמה:

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {};
  // Signals that the default DNS link will be overridden.
  googlefc.ccpa.overrideDnsLink = true;
</script>

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

googlefc.getConsentStatus(): {number}


googlefc.getConsentedProviderIds(): {!Array<string>}

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

googlefc.showRevocationMessage(): {undefined}

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

דוגמה 1: דוגמה פשוטה להגדרת קישור שיציג את הודעת הביטול בלחיצה:

<a href="javascript:window.googlefc.showRevocationMessage();">Privacy and cookie settings</a>
<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
  window.googlefc.callbackQueue.push({
    'CONSENT_API_READY':
    () => {
      // Update the revocation link so that it shows on the page.
      const revocationLink = document.getElementById('revocation-link');
      revocationLink.style.display = 'block';
    }
  });
</script>

דוגמה 2: אם אתם רוצים שהקישור יהיה גלוי רק כשהתקנות של האיחוד האירופי חלות על המשתמש הנוכחי, אתם יכולים להשתמש בתור הקריאה החוזרת (callback) של googlefc עם ה-API של TCF כדי לעדכן את תצוגת הכפתור באופן מותנה על סמך הערך של gdprApplies אחרי שהוא נקבע. לשם כך, משתמשים במפתח ה-API של CONSENT_API_READY.

<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
  window.googlefc.callbackQueue.push({
    'CONSENT_API_READY':
    // Specifying "0" for the version parameter will result in the API call
    // using the latest version of the TCF spec.
    () => __tcfapi('addEventListener', 0, (tcdata, success) => {
      const revocationLink = document.getElementById('revocation-link');
      if (!success || !tcdata) {
        // Something went wrong, don't show the revocation link.
        revocationLink.style.display = 'none';
      }
      else if (tcdata.gdprApplies) {
        revocationLink.style.display = 'block';
      } else {
        // GDPR does not apply so don't show the revocation link.
        revocationLink.style.display = 'none';
      }
    })
  });
</script>

googlefc.getAdBlockerStatus(): {number}

מחזירה ערך ב-AdBlockerStatusEnum בהתאם לסטטוס חסימת המודעות של המשתמש. המפתח שצריך לציין לפונקציה הזו הוא AD_BLOCK_DATA_READY.

דוגמה:

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'AD_BLOCK_DATA_READY':
    () => {
      switch (googlefc.getAdBlockerStatus()) {
          case googlefc.AdBlockerStatusEnum.EXTENSION_LEVEL_AD_BLOCKER:
          case googlefc.AdBlockerStatusEnum.NETWORK_LEVEL_AD_BLOCKER:
            // Insert handling for cases where the user is blocking ads.
            break;
          case googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER:
            // Insert handling for cases where the user is not blocking ads.
            break;
          case googlefc.AdBlockerStatusEnum.UNKNOWN:
            // Insert handling for unknown cases.
            break;
      }
    }
  });
</script>

googlefc.getAllowAdsStatus(): {number}

הפונקציה מחזירה ערך ב-AllowAdsStatusEnum בהתאם לסטטוס allow-ads של המשתמש. המפתח שצריך לציין לפונקציה הזו הוא AD_BLOCK_DATA_READY.

דוגמה:

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'AD_BLOCK_DATA_READY':
    () => {
      switch (googlefc.getAllowAdsStatus()) {
        case googlefc.AllowAdsStatusEnum.ADS_NOT_ALLOWED:
          // Insert handling for cases where the user has not allowed ads.
          // The user may have never been an ad blocker.
          break;
        case googlefc.AllowAdsStatusEnum.ADS_ALLOWED:
          // Insert handling for cases where the user saw the ad blocking
          // message and allowed ads on the site.
          break;
        case googlefc.AllowAdsStatusEnum.UNKNOWN:
          // Insert handling for unknown cases.
          break;
      }
    }
  });
</script>

googlefc.usstatesoptout.getInitialUsStatesOptOutStatus(): {number}

מחזירה ערך ב-InitialUsStatesOptOutStatusEnum בהתאם לסטטוס הסירוב של המשתמש למתן הסכמה לפי התקנות במדינות בארה"ב. המפתח שצריך לציין לפונקציה הזו הוא INITIAL_US_STATES_OPT_OUT_DATA_READY. שימו לב שכל בקשה נוספת לקבלת נתונים לגבי תקנות במדינות בארה"ב צריכה להתבצע באמצעות קריאה ישירה ל-GPP API‏ (__gpp).

אם אתם מבטלים את הקישור "אין למכור או לשתף את המידע האישי שלי", אתם יכולים להשתמש בשיטה הזו כדי לקבוע מתי לכלול את הקישור באתר.

דוגמה:

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'INITIAL_US_STATES_OPT_OUT_DATA_READY':
    () => {
      switch (googlefc.usstatesoptout.getInitialUsStatesOptOutStatus()) {
        case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.DOES_NOT_APPLY:
          // Insert handling for cases where no US state regulation applies to
          // the user.
          break;
        case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.NOT_OPTED_OUT:
          // Insert handling for cases where a US state regulation applies to
          // the user, and the user has not opted out.
          break;
        case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.OPTED_OUT:
          // Insert handling for cases where a US state regulation applies to the
          // user, and the user has opted out.
          break;
      }
    }
  });
</script>

googlefc.usstatesoptout.openConfirmationDialog(function(boolean)): {undefined}

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

דוגמה:

<script>
// This callback will be called with the user's US state regulation opt-out
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
  // Insert handling for user opt-out status here.
}
// Invoke the US state regulations confirmation dialog when the user clicks the
// link.
document.getElementById("your-custom-do-not-sell-link").addEventListener(
  "click", () => googlefc.usstatesoptout.openConfirmationDialog(usStateRegCompletionCallback));
</script>

googlefc.getGoogleConsentModeValues(): {!Object}

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

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


googlefc.ccpa.getInitialCcpaStatus(): {number}

הפונקציה מחזירה ערך ב-InitialCcpaStatusEnum בהתאם לסטטוס הסירוב של המשתמש למתן הסכמה לפי התקנות במדינות בארה"ב. המפתח שצריך לציין לפונקציה הזו הוא INITIAL_CCPA_DATA_READY. שימו לב שכל בקשה עוקבת לנתונים של תקנות במדינות בארה"ב צריכה להתקבל על ידי קריאה ישירה ל-API של GPP‏ (__gpp).

דוגמה:

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'INITIAL_CCPA_DATA_READY':
    () => {
      switch (googlefc.ccpa.getInitialCcpaStatus()) {
        case googlefc.ccpa.InitialCcpaStatusEnum.CCPA_DOES_NOT_APPLY:
          // Insert handling for cases where no US state regulation applies to
          // the user.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT:
          // Insert handling for cases where a US state regulation applies to
          // the user, and the user has not opted out.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.OPTED_OUT:
          // Insert handling for cases where a US state regulation applies to the
          // user, and the user has opted out.
          break;
      }
    }
  });
</script>

googlefc.ccpa.openConfirmationDialog(function(boolean)): {undefined}

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

דוגמה:

<script>
// This callback will be called with the user's US state regulation opt-out
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
  // Insert handling for user opt-out status here.
}
// Invoke the US state regulations confirmation dialog when the user clicks the
// link.
document.getElementById("your-custom-ccpa-do-not-sell-link").addEventListener(
  "click", () => googlefc.ccpa.openConfirmationDialog(ccpaCompletionCallback));
</script>

אם אתם משתמשים בכלי לניהול הסכמה של Google כדי לאסוף הסכמה בהתאם ל-GDPR במסגרת IAB TCF גרסה 2, אתם צריכים להשתמש ב-API של IAB TCF גרסה 2.

אתם יכולים להשתמש במפתח CONSENT_API_READY של תור הקריאות החוזרות כדי לוודא שהקריאות החוזרות המתאימות יופעלו רק כש-IAB TCF v2 API מוגדר בדף. צריך להשתמש בזה בשילוב עם הפקודה 'addEventListener' של IAB TCF v2 API.

דוגמה:

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback using the CONSENT_API_READY key on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_API_READY':
    () => __tcfapi('addEventListener', 2.2, (data, success) => {
      // Do something with consent data value; this callback may be invoked
      // multiple times as user completes consent flow.
    })
  });
</script>

אתם יכולים להשתמש במפתח CONSENT_DATA_READY של תור הקריאות החוזרות כדי לוודא שהקריאות החוזרות המתאימות יופעלו רק אחרי שההסכמה מהמשתמשים תתקבל ותהיה נגישה באמצעות ה-API של גרסה 2 של IAB TCF. אפשר להשתמש בזה בשילוב עם הפקודה 'addEventListener' – הנתונים שסופקו בהפעלה הראשונה של פונקציית ה-callback שסיפקתם יכילו את בחירות ההסכמה של המשתמש (כל עוד TCF v2 חל על המשתמש הזה). חשוב לדעת: עם השקת גרסה 2.2 של TCF, הפקודה 'getTCData' הוצאה משימוש.

דוגמה:

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback using the CONSENT_DATA_READY key on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_DATA_READY':
    () => __tcfapi('addEventListener', 2.2, (data, success) => {
      // Do something with consent data value; this callback may be invoked
      // multiple times if user consent selections change.
    })
  });
</script>

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

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

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

כדי להטמיע את סטטוס ההסכמה הבסיסי באמצעות כלי לניהול הסכמה של Google, אתם יכולים להשתמש במפתח CONSENT_MODE_DATA_READY של תור הקריאה החוזרת (callback) כדי לטעון באופן מותנה את התגים של Google Ads ו-Analytics ברגע שהנתונים של סטטוס ההסכמה זמינים. נתוני סטטוס ההסכמה יהיו זמינים אחרי ש-Funding Choices יקבע שסטטוס ההסכמה לא חל על הבקשה הזו (לדוגמה, כי התקנות באיחוד האירופי לא חלות על הבקשה הזו) או אחרי שמשתמש יקבל החלטה לגבי הסכמה בהתאם לתקנות באיחוד האירופי. כדאי להתייעץ עם המחלקה המשפטית לגבי הקריטריונים שצריך להשתמש בהם כדי לקבוע אם אפשר לטעון את התגים אחרי שסטטוס ההסכמה זמין.

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

<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

// Helper function to load Google Ads/Analytics tags once consent mode data is
// ready.
const loadGtagScript = () => {
  // Load gtag.js script - code taken from
  // https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
  var gtagScript = document.createElement('script');
  gtagScript.async = true;
  gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';

  var firstScript = document.getElementsByTagName('script')[0];
  firstScript.parentNode.insertBefore(gtagScript,firstScript);
}

// Queue the callback using the CONSENT_MODE_DATA_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
  'CONSENT_MODE_DATA_READY':
  () => {
      loadGtagScript();
  },
});
</script>

אתם יכולים גם להשתמש ב-API של googlefc.getGoogleConsentModeValues() כדי לקבל את הערכים של מטרות ספציפיות של סטטוס ההסכמה, כשהנתונים של סטטוס ההסכמה זמינים. ה-API הזה מחזיר אובייקט GoogleFcConsentModeUserStatus שמכיל שדה אחד לכל מטרה נתמכת של סטטוס הסכמה, והערך של כל שדה הוא ערך enum שמציין את הערך של אותה מטרה של סטטוס הסכמה.

לדוגמה, אתם יכולים להשתמש ב-googlefc.getGoogleConsentModeValues() כדי לבטל את החסימה של התגים של Google Ads ו-Analytics רק אם:

  • משתמש הקצה מקבל החלטה בנושא הסכמה בהתאם לתקנות האיחוד האירופי, וכתוצאה מכך הוא נותן הסכמה לכל המטרות של סטטוס ההסכמה, או
  • כל המטרות של סטטוס ההסכמה לא רלוונטיות לבקשה הנוכחית (זה יכול לקרות אם התקנות באיחוד האירופי לא חלות או אם סטטוס ההסכמה לא מוגדר למטרה אחת או יותר בכלי "פרטיות והודעות").
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

// Helper function to determine whether Google Ads and Analytics tags can be
// unblocked. Returns true if all consent mode purposes are set to GRANTED,
// NOT_APPLICABLE, or NOT_CONFIGURED.
const shouldUnblockConsentTags = (googleFcConsentModeStatus) => {
  const allConsentModeValues = [
    googleFcConsentModeStatus.adStoragePurposeConsentStatus,
    googleFcConsentModeStatus.adUserDataPurposeConsentStatus,
    googleFcConsentModeStatus.adPersonalizationPurposeConsentStatus,
    googleFcConsentModeStatus.analyticsStoragePurposeConsentStatus
  ];
  for (const consentModeValue of allConsentModeValues) {
    switch (consentModeValue) {
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_UNKNOWN:
        // Indicates either an error case or that consent mode data is not
        // ready yet. Cannot unblock tags until consent data is ready and valid,
        // so return false.
        return false;
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_GRANTED:
        // Consent is granted for this consent mode purpose.
        break;
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_DENIED:
        // Consent is denied for this consent mode purpose. Do not unblock tags.
        return false;
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_APPLICABLE:
        // Consent mode does not apply for this purpose.
        break;
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_CONFIGURED:
        // Consent mode not configured for this purpose.
        // If you configured support for Ads purposes but not Analytics purposes in the
        // Privacy & messaging UI, the value of `analyticsStoragePurposeConsentStatus` will
        // always be set to NOT_CONFIGURED. If you do not enable any Consent Mode support
        // in the Privacy & messaging UI, the values of all purposes will always be set to
        // NOT_CONFIGURED.
        break;
      default:
        console.log("Unexpected consent mode value encountered");
    }
  }
  // If all prior checks pass, all consent mode values are either GRANTED,
  // NOT_APPLICABLE, or NOT_CONFIGURED.
  return true;
};

// Helper function to load Google Ads/Analytics tags.
const loadGtagScript = () => {
  // Load gtag.js script - code taken from
  // https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
  var gtagScript = document.createElement('script');
  gtagScript.async = true;
  gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';

  var firstScript = document.getElementsByTagName('script')[0];
  firstScript.parentNode.insertBefore(gtagScript,firstScript);
}

googlefc.callbackQueue.push({
  CONSENT_MODE_DATA_READY: () => {
    if (shouldUnblockConsentTags(googlefc.getGoogleConsentModeValues())) {
      loadGtagScript();
    }
  },
});
</script>

אם אתם משתמשים בכלי לניהול הסכמה של Google כדי להציג למשתמשי קצה הודעות בנושא ביטול הסכמה בהתאם לתקנות במדינות בארה"ב במסגרת GPP של IAB, אתם צריכים להשתמש ב-API של GPP של IAB.

בגלל אופי ביטול ההסכמה של התקנות במדינות בארה"ב, אתם יכולים להשתמש במפתח התור של הקריאה החוזרת (callback) CONSENT_API_READY או CONSENT_DATA_READY כדי לוודא שאפשר להפעיל את ה-API של IAB GPP ושהוא מחזיר נתוני הסכמה בזמן שהקריאות החוזרות מופעלות.

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_DATA_READY':
    () => __gpp('ping', (data, success) => {
        // Do something with consent data value.
    })
  });
</script>

אם אתם משתמשים בכלי לניהול הסכמה של Google כדי להציג למשתמשי קצה הודעות בנושא ביטול הסכמה בהתאם לתקנות במדינות בארה"ב במסגרת GPP של IAB, אתם יכולים להציג קישור מותאם אישית משלכם ל"אין למכור או לשתף את המידע האישי שלי" על ידי הגדרת הדגל googlefc.usstatesoptout.overrideDnsLink לערך true.

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Signals that the default DNS link will be overridden.
  window.googlefc.usstatesoptout.overrideDnsLink = true;

  // Register the callback for the initial US state regulations data.
  window.googlefc.callbackQueue.push({
      'INITIAL_US_STATES_OPT_OUT_DATA_READY': () => {
        if (googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() ===
            googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.NOT_OPTED_OUT) {
          // TODO: Display custom Do Not Sell or Share link here.
        }
      }
    });
</script>

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

חשוב לזכור: אם אתם משתמשים בקישור מותאם אישית משלכם ל"אל תמכרו ואל תשתפו את המידע האישי שלי", אתם אחראים לוודא שהקישור עומד בתקנות של המדינות בארה"ב. בנוסף, רק ב-Ad Manager אפשר להשתמש בקישור מותאם אישית משלכם ל"תקנות במדינות בארה"ב" עם הכיתוב "אל תמכרו או תשתפו את המידע האישי שלי".

<script>
// This callback will be called when the user makes a US state regulations
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
  if (userOptedOut) {
    // TODO: Hide custom Do Not Sell or Share link here.
  }
}
// Invoke the US state regulations opt-out confirmation dialog when the user
// clicks the link.
document.getElementById("your-custom-do-not-sell-link").addEventListener(
  "click", () => googlefc.usstatesoptout.openConfirmationDialog(usStateRegCompletionCallback));
</script>