Privacy & Messaging JavaScript API

مقدمه

این API ابزارهایی برای تعامل با پیام‌های ارائه‌شده توسط برگه «حریم خصوصی و پیام‌رسانی» ارائه می‌دهد. با این ویژگی می‌توانید:

و موارد بیشتر.

همچنین می‌توانید از این ابزارها برای جمع‌آوری رضایت کاربر بااستفاده از پروتکل‌های استاندارد صنعت استفاده کنید:

  • کسب رضایت با مقررات کلی حفاظت از داده بااستفاده از مشخصات IAB TCF v2
  • انصراف از مقررات ایالت امریکا بااستفاده از مشخصات IAB GPP

در این موارد، وضعیت رضایت ازطریق آن میاناهای برنامه‌سازی کاربردی منتقل می‌شود.

می‌توانید این عملکرد پیام‌رسانی کاربر را به چند روش در سایتتان مستقر کنید:

  1. در اکثر موارد، اصلاً نیازی به برچسب‌گذاری مجدد ندارید - برچسب ناشر Google یا برچسب AdSense موجود شما پیام‌های کاربر را پس‌از انتشار پیام در محصول مربوطه پیاده‌سازی می‌کند.
  2. اگر از پیام بازیابی مسدود کردن آگهی استفاده می‌کنید، باید برچسب مسدود کردن آگهی را به‌طور صریح به صفحه‌تان اضافه کنید. برای اطلاعات بیشتر، دستورالعمل‌های برچسب‌گذاری Ad Manager و AdSense را ببینید.

googlefc فضای نام جهانی است که عملکرد پیام‌رسانی کاربر برای API خود در جاوا اسکریپت 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() شماره بسته به وضعیت مسدود کردن آگهی کاربر، مقداری را در AdBlockerStatusEnum برمی‌گرداند.
googlefc.getAllowAdsStatus() شماره بسته به وضعیت allow-ads کاربر، مقداری را در AllowAdsStatusEnum برمی‌گرداند.
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() شماره بسته به وضعیت انصراف اولیه کاربر از مقررات ایالتی امریکا، مقداری را در InitialUsStatesOptOutStatusEnum برمی‌گرداند. این امر مقرراتی را که براساس مکان فعلی کاربر بر او اعمال می‌شود درنظر می‌گیرد.
googlefc.usstatesoptout.openConfirmationDialog(function(boolean)) تعریف نشده اگر پیوند پیش‌فرض «عدم فروش یا هم‌رسانی» لغو شده باشد، کادر گفتگوی تأیید انصراف از مقررات ایالتی ایالات متحده را باز می‌کند.
googlefc.getGoogleConsentModeValues() !Object یک شیء googlefc.GoogleFcConsentModeUserStatus حاوی مقادیر حالت موافقت فعلی برای کاربر برمی‌گرداند، یک مقدار برای هر هدف حالت موافقت دردسترس.
googlefc.ccpa.getInitialCcpaStatus()

قدیمی. ترجیح با googlefc.usstatesoptout.getInitialUsStatesOptOutStatus().
شماره بسته به وضعیت انصراف اولیه کاربر از مقررات ایالتی امریکا، مقداری را در InitialCcpaStatusEnum برمی‌گرداند.
googlefc.ccpa.openConfirmationDialog(function(boolean))

قدیمی. ترجیح با googlefc.usstatesoptout.openConfirmationDialog().
تعریف نشده اگر پیوند پیش‌فرض «عدم فروش یا هم‌رسانی» لغو شده باشد، کادر گفتگوی تأیید انصراف از مقررات ایالتی ایالات متحده را باز می‌کند.

آزمایش و اشکال‌زدایی در سایت شما

«حریم خصوصی و پیام‌رسانی» عملکرد اشکال‌زدایی و آزمایشی را ارائه می‌دهد که به شما امکان می‌دهد ببینید پیام‌های خاص، زیرنوع‌های پیام‌ها، یا ترکیبی از پیام‌ها در سایت واقعی شما چگونه به‌نظر می‌رسند.

پیش‌نیازها:

  • پیام(هایی) که می‌خواهید پیش‌نمایش کنید باید در سایتی که درحال آزمایش آن هستید منتشر شده باشد

بااستفاده از پارامترهای نشانی وب اشکال‌زدایی زیر می‌توانید پیش‌نمایش زنده‌ای را در سایتتان ببینید:

پارامتر اشکال‌زدایی مقادیر مجاز
fc alwaysshow (برای راه‌اندازی حالت اشکال‌زدایی/پیش‌نمایش)
fctype ab (پیام‌های مسدود کردن آگهی)، ccpa (پیام‌های انصراف از مقررات ایالتی ایالات متحده)، gdpr (پیام‌های کسب رضایت با «مقررات کلی حفاظت از داده»)، monetization (پیام‌های Offerwall)، usfl (پیام‌های انصراف از مقررات ایالتی ایالات متحده، مختص فلوریدا)، usnat (پیام‌های انصراف از مقررات ایالتی ایالات متحده، همه ایالت‌های پشتیبانی‌شده به‌جز فلوریدا؛ معادل ccpa)

چند مثال از نحوه استفاده از این ویژگی برای پیش‌نمایش در سایتتان (foo.com):

  • آزمایش پیام‌رسانی انصراف از مقررات ایالت امریکا -- http://foo.com/?fc=alwaysshow&fctype=ccpa
  • آزمایش پیام‌رسانی «مقررات کلی حفاظت از داده» -- http://foo.com/?fc=alwaysshow&fctype=gdpr

فیلدها: توضیحات و نمونه‌ها

googlefc.controlledMessagingFunction {function(!Object)}

تابعی که تعیین می‌کند پیام‌ها نمایش داده شوند یا نه. می‌توان از آن برای محدود کردن ارائه پیام براساس شرایط مشخص‌شده توسط ناشر، مانند وضعیت مشترک یا نشانی وب صفحه، استفاده کرد.

وقتی 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 برای موقوف کردن ارائه «دیوار پیشنهاد» فقط برای مشترکین است، بدون اینکه انواع دیگر پیام موقوف شود:

<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 به صف callback ارسال می‌شوند، زمانی اجرا می‌شوند که میاناهای برنامه‌سازی کاربردی برای چارچوب‌های رضایت پشتیبانی‌شده تعریف شده و قابل‌فراخوانی باشند. از این نقطه به بعد، اجرای هر تابع با کلید CONSENT_API_READY که بعداً اضافه شود همگام است. برای جزئیات خاص چارچوب، بخش‌های مربوط به چارچوب‌های IAB را ببینید. پایین
CONSENT_DATA_READY توابعی که با کلید 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) شماره data: جفت کلید-مقدار با کلید به‌عنوان یکی از انواع دردسترس بودن داده و مقدار به‌عنوان تابع جاوا اسکریپت برای اجرا. کلیدهای قابل‌قبول دردسترس بودن داده‌ها عبارتند از 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;
}

مقدار هر فیلد عددی است که با یک 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}

سابقه کسب موافقت با مقررات اتحادیه اروپا را درصورت وجود پاک می‌کند و پیام مقررات اتحادیه اروپا را دوباره نشان می‌دهد تا کاربر بتواند تصمیم خود را درباره کسب موافقت تغییر دهد.

مثال ۱: مثال ساده‌ای از راه‌اندازی پیوندی که با کلیک کردن روی آن، پیام لغو نمایش داده می‌شود:

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

مثال ۲: اگر می‌خواهید پیوند فقط زمانی نمایان باشد که مقررات اتحادیه اروپا برای کاربر فعلی اعمال می‌شود، می‌توانید از صف فراخوانی 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 برای جمع‌آوری رضایت با «مقررات کلی حفاظت از داده» تحت چارچوب IAB TCF v2 استفاده می‌کنید، باید از IAB TCF v2 API استفاده کنید.

می‌توانید از کلید صف فراخوانی CONSENT_API_READY استفاده کنید تا مطمئن شوید که فراخوانی‌های مربوطه فقط زمانی فراخوانده می‌شوند که میانای برنامه‌سازی کاربردی IAB TCF v2 در صفحه تعریف شده باشد. این باید همراه با فرمان '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 استفاده کنید تا مطمئن شوید فراخوانی‌های برگشتی مربوطه فقط زمانی فراخوانده می‌شوند که رضایت کاربر بااستفاده از IAB TCF v2 API جمع‌آوری شده و دردسترس باشد. این را می‌توان در ارتباط با فرمان 'addEventListener' استفاده کرد - داده‌های ارائه‌شده در اولین فراخوانی بازگشت تماس ارائه‌شده شما شامل انتخاب‌های رضایت کاربر خواهد بود (تا زمانی که TCF v2 برای این کاربر اعمال شود). توجه داشته باشید که با انتشار «چارچوب شفافیت و رضایت» (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>

همچنین می‌توانید از googlefc.getGoogleConsentModeValues() API برای دریافت مقادیر اهداف حالت موافقت فردی، درصورت دردسترس بودن داده‌های حالت موافقت، استفاده کنید. این میانای برنامه‌سازی کاربردی یک شیء GoogleFcConsentModeUserStatus برمی‌گرداند که شامل یک فیلد برای هر هدف پشتیبانی‌شده از حالت موافقت است، و مقدار هر فیلد یک مقدار شمارشی است که مقدار آن هدف حالت موافقت را نشان می‌دهد.

برای مثال، می‌توانید از 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 برای ارائه پیام‌های انصراف از مقررات ایالتی ایالات متحده به کاربران نهایی تحت چارچوب «پلاتفورم حریم خصوصی جهانی اداره تبلیغات تعاملی» (IAB GPP) استفاده می‌کنید، باید از میانای برنامه‌سازی کاربردی IAB GPP استفاده کنید.

به‌دلیل ماهیت انصراف در مقررات ایالتی ایالات متحده، می‌توانید از کلید صف فراخوانی برگشتی 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 برای ارائه پیام‌های انصراف از مقررات ایالتی ایالات متحده به کاربران نهایی تحت چارچوب IAB GPP استفاده می‌کنید، می‌توانید با تنظیم پرچم 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>