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 הפניה לתור של קריאות חוזרות לביצוע אסינכרוני של שאילתות לגבי הודעות למשתמשים.
googlefc.CallbackQueue !Object הסוג של אובייקט תור ההמתנה להחזרת שיחה.
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 בהתאם לסטטוס של המשתמש בנוגע להצגת מודעות.
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}

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

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

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

שם המפתח שימוש זמן אחזור יחסי
CONSENT_API_READY פונקציות שמועברות לתור הקריאות החוזרות עם המפתח 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 פונקציות שמועברות לתור של קריאות חוזרות עם המפתח 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 פונקציות שנדחפות לתור של קריאות חוזרות עם המפתח INITIAL_US_STATES_OPT_OUT_DATA_READY מופעלות כשנתונים של תקנות במדינות בארה"ב הופכים לזמינים בתהליך. שימו לב: כדי לקבל נתונים שקשורים לתקנות במדינות בארה"ב, צריך לבצע קריאה ישירה ל-GPP API ‏ (__gpp). בינונית
INITIAL_CCPA_DATA_READY מפתח מדור קודם לתקנות במדינות בארה"ב. הפורמט המועדף: INITIAL_US_STATES_OPT_OUT_DATA_READY.

פונקציות שמועברות לתור הקריאות החוזרות באמצעות המקש 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 ו-(legacy) 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.

דוגמה:

<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.

דוגמה:

<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>}

    מערכת לניהול ספקי ATP להסכמה באיחוד האירופי, שיצאה משימוש באוקטובר
  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: אם רוצים שהקישור יוצג רק כשהתקנות של האיחוד האירופי חלות על המשתמש הנוכחי, אפשר להשתמש בתור של פונקציות הקריאה החוזרת googlefc עם TCF API כדי לעדכן את התצוגה של הלחצן באופן מותנה על סמך הערך 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 בהתאם לסטטוס של המשתמש בנוגע להצגת מודעות. המפתח שצריך לציין עבור הפונקציה הזו הוא 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. שימו לב: כדי לקבל נתונים לגבי תקנות במדינות בארה"ב, צריך לבצע קריאה ישירה ל-GPP API ‏ (__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 במסגרת TCF בגרסה 2 של IAB, אתם צריכים להשתמש ב-API של TCF בגרסה 2 של IAB.

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

דוגמה:

<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'. הנתונים שמופיעים בקריאה הראשונה של פונקציית הקריאה החוזרת שסיפקתם יכללו את בחירות ההסכמה של המשתמש (כל עוד TCF גרסה 2 חל על המשתמש הזה). שימו לב: עם ההשקה של גרסה 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 כדי לטעון באופן מותנה את התגים של 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, אתם צריכים להשתמש ב-IAB GPP API.

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

<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>

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

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

<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>