حریم خصوصی & Messaging JavaScript API

مقدمه

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

و موارد دیگر.

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

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

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

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

googlefc فضای نام سراسری است که قابلیت پیام‌رسانی کاربر برای API خود در Window جاوا اسکریپت از آن استفاده می‌کند.

خلاصه‌های میدانی

نام نوع تعریف
googlefc.controlledMessagingFunction تابع (!Object) تابعی که تعیین می‌کند آیا ارسال پیام ادامه یابد یا خیر. این قابلیت برای همه انواع پیام پشتیبانی می‌شود.
googlefc.callbackQueue !Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue ارجاع به صف فراخوانی برای اجرای ناهمزمان پرس‌وجوهای پیام‌رسانی کاربر.
googlefc.CallbackQueue !شیء نوع شیء صف فراخوانی (callback queue).
googlefc.AdBlockerStatusEnum شیء <رشته، عدد>! یک enum برای نمایش وضعیت مسدودکننده تبلیغات کاربر.
googlefc.AllowAdsStatusEnum شیء <رشته، عدد>! یک enum برای نمایش وضعیت allow-ads کاربر.
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum شیء <رشته، عدد>! یک enum برای نمایش وضعیت اولیه انصراف کاربر از ایالات متحده. این مورد، ایالت آمریکایی که کاربر در آن قرار دارد را در نظر می‌گیرد.
googlefc.GoogleFcConsentModeUserStatus !شیء نوع بازگشتی برای googlefc.getGoogleConsentModeValues .
googlefc.ConsentModePurposeStatusEnum شیء <رشته، عدد>! یک enum برای نمایش تصمیم کاربر نهایی برای حالت رضایت.
googlefc.usstatesoptout.overrideDnsLink تعریف نشده|بولی یک مقدار بولی که می‌توان آن را روی true تنظیم کرد تا از لینک «نفروشید یا به اشتراک نگذارید» سفارشی شما استفاده شود.
googlefc.ccpa.InitialCcpaStatusEnum

قدیمی. ترجیحاً googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum .
شیء <رشته، عدد>! یک enum برای نمایش وضعیت اولیه کاربر در قوانین ایالت ایالات متحده.
googlefc.ccpa.overrideDnsLink

قدیمی. googlefc.usstatesoptout.overrideDnsLink را ترجیح می‌دهم.
تعریف نشده|بولی یک مقدار بولی که می‌توان آن را روی true تنظیم کرد تا از لینک «نفروشید یا به اشتراک نگذارید» سفارشی شما استفاده شود.

خلاصه روش‌ها

نام نوع بازگشتی تعریف
googlefc.showRevocationMessage() تعریف نشده رکورد رضایت را پاک می‌کند و اسکریپت googlefc را مجدداً بارگذاری می‌کند تا پیام رضایت مربوط به کاربر را نشان دهد.
googlefc.getAdBlockerStatus() شماره بسته به وضعیت مسدودسازی تبلیغ کاربر، مقداری را در AdBlockerStatusEnum برمی‌گرداند.
googlefc.getAllowAdsStatus() شماره مقداری را در AllowAdsStatusEnum بسته به وضعیت allow-ads کاربر برمی‌گرداند.
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() شماره مقداری را در InitialUsStatesOptOutStatusEnum برمی‌گرداند که به وضعیت اولیه‌ی انصراف کاربر از قوانین ایالت ایالات متحده بستگی دارد. این مقدار، قوانینی را که بر اساس موقعیت مکانی فعلی کاربر برای او اعمال می‌شود، در نظر می‌گیرد.
googlefc.usstatesoptout.openConfirmationDialog(function(boolean)) تعریف نشده اگر پیوند پیش‌فرض «نفروش یا اشتراک‌گذاری نکن» لغو شود، پنجره تأیید انصراف از مقررات ایالت ایالات متحده را باز می‌کند.
googlefc.getGoogleConsentModeValues() !شیء یک شیء googlefc.GoogleFcConsentModeUserStatus را برمی‌گرداند که حاوی مقادیر حالت رضایت فعلی برای کاربر است، یکی برای هر هدف حالت رضایت موجود.
googlefc.ccpa.getInitialCcpaStatus()

قدیمی. ترجیحاً از googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() استفاده کنید.
شماره مقداری را در 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)}

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

وقتی googlefc.controlledMessagingFunction قبل از بارگذاری سایر اسکریپت‌ها در پنجره تعریف می‌کنید، پیام‌ها تا زمانی که message.proceed(boolean) را فراخوانی نکنید، نمایش داده نمی‌شوند. فراخوانی message.proceed(true) اجازه می‌دهد تا پیام‌رسانی طبق معمول ادامه یابد، در حالی که فراخوانی message.proceed(false) از نمایش هرگونه پیام برای نمای صفحه جلوگیری می‌کند.

مثال: فرض کنید این اسکریپت را در صفحه دارید که یک تابع ناهمزمان به نام determineIfUserIsSubscriber() تعریف می‌کند که بررسی می‌کند آیا کاربر وارد شده، مشترک (subscriber) است یا خیر.

<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 توابعی که با کلید CONSENT_DATA_READY به صف فراخوانی بازگردانده می‌شوند، زمانی اجرا می‌شوند که رضایت کاربر جمع‌آوری‌شده تحت یک چارچوب رضایت پشتیبانی‌شده مشخص باشد (چه از اجرای قبلی و چه پس از تعامل کاربر با پیام رضایت). از این نقطه به بعد، اجرای هر تابع دارای کلید CONSENT_DATA_READY که متعاقباً اضافه شود، همزمان است. بالا
AD_BLOCK_DATA_READY توابعی که با کلید AD_BLOCK_DATA_READY به صف فراخوانی (callback queue) ارسال می‌شوند، زمانی اجرا می‌شوند که داده‌های مسدودکننده‌ی تبلیغات در جریان در دسترس قرار گیرند. از این نقطه به بعد، اجرای هر تابع AD_BLOCK_DATA_READY که متعاقباً اضافه شود، همزمان است. بالا
CONSENT_MODE_DATA_READY توابعی که با کلید CONSENT_MODE_DATA_READY به صف فراخوانی ارسال می‌شوند، زمانی اجرا می‌شوند که داده‌های [consent mode](https://support.google.com/google-ads/answer/10000067) گوگل (برای استفاده با تگ‌های Google Ads و Analytics) در جریان در دسترس قرار گیرند. پس از آماده شدن داده‌های حالت رضایت، می‌توانید در هر زمان با استفاده از googlefc.getGoogleConsentModeValues ​​به مقادیر حالت رضایت دسترسی داشته باشید. متوسط
INITIAL_US_STATES_OPT_OUT_DATA_READY توابعی که با کلید INITIAL_US_STATES_OPT_OUT_DATA_READY به صف فراخوانی (callback queue) ارسال می‌شوند، زمانی اجرا می‌شوند که داده‌های مقررات ایالت ایالات متحده در جریان کاری در دسترس قرار گیرند. توجه داشته باشید که هرگونه درخواست بعدی برای داده‌های مقررات ایالت ایالات متحده باید با فراخوانی مستقیم API مربوط به GPP ( __gpp ) دریافت شود. متوسط
INITIAL_CCPA_DATA_READY کلید قدیمی برای مقررات ایالت ایالات متحده. INITIAL_US_STATES_OPT_OUT_DATA_READY را ترجیح دهید.

توابعی که با کلید INITIAL_CCPA_DATA_READY به صف فراخوانی (callback queue) ارسال می‌شوند، زمانی اجرا می‌شوند که داده‌های مقررات ایالت ایالات متحده در جریان کاری در دسترس قرار گیرند. توجه داشته باشید که هرگونه درخواست بعدی برای داده‌های مقررات ایالت ایالات متحده باید با فراخوانی مستقیم API مربوط به GPP ( __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}

برای پنهان کردن پیوند پیش‌فرض «نفروختن یا اشتراک‌گذاری» و استفاده از پیوند «نفروختن یا اشتراک‌گذاری» سفارشی خودتان، این فیلد را روی «درست» تنظیم کنید.

مثال:

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

برای پنهان کردن پیوند پیش‌فرض «عدم فروش یا اشتراک‌گذاری» و استفاده از پیوند «عدم فروش یا اشتراک‌گذاری» سفارشی خودتان، این فیلد را روی «درست» تنظیم کنید. توجه داشته باشید که اگر این فیلد را روی «درست» تنظیم کنید، مسئول نمایش پیوند «عدم فروش یا اشتراک‌گذاری» در سایت خود خواهید بود. این فیلد باید همراه با 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>}

  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 بسته به وضعیت 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 است. توجه داشته باشید که هرگونه درخواست بعدی برای داده‌های مقررات ایالت ایالات متحده باید با فراخوانی مستقیم API GPP ( __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 را برمی‌گرداند که حاوی مقادیر فعلی هر هدف حالت رضایت، بر اساس تصمیم رضایت کاربر است.

به بخش «استفاده از راهکارهای مدیریت رضایت گوگل با پشتیبانی از حالت رضایت برای مقررات اتحادیه اروپا برای کاربرد مورد نظر» مراجعه کنید.


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>

اگر از راهکارهای مدیریت رضایت گوگل برای جمع‌آوری رضایت GDPR تحت چارچوب IAB TCF v2 استفاده می‌کنید، باید از API IAB TCF v2 استفاده کنید.

شما می‌توانید از کلید 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 IAB TCF v2 قابل دسترسی باشند. این می‌تواند همراه با دستور 'addEventListener' استفاده شود - داده‌های ارائه شده در اولین فراخوانی فراخوانی ارائه شده شما شامل انتخاب‌های رضایت کاربر خواهد بود (تا زمانی که TCF v2 برای این کاربر اعمال شود). توجه داشته باشید که با انتشار TCF v2.2، دستور '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 Ads and Analytics توضیح داده شده است، پیاده‌سازی شود. شما باید با بخش حقوقی خود در مورد اینکه کدام حالت رضایت را برای برآورده کردن الزامات قانونی خود پیاده‌سازی کنید، مشورت کنید.

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

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

برای مثال، می‌توانید از googlefc.getGoogleConsentModeValues() برای رفع انسداد تگ‌های گوگل ادز و آنالیتیکس خود فقط در شرایط زیر استفاده کنید:

  • کاربر نهایی تصمیمی مبنی بر رضایت بر اساس مقررات اتحادیه اروپا اتخاذ می‌کند که منجر به اعطای رضایت برای تمام اهداف حالت رضایت می‌شود، یا
  • تمام اهداف حالت رضایت برای درخواست فعلی قابل اجرا نیستند (که می‌تواند در صورت عدم اعمال مقررات اتحادیه اروپا یا پیکربندی نشدن حالت رضایت برای یک یا چند هدف در حریم خصوصی و پیام‌رسانی رخ دهد).
<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>

اگر از راهکارهای مدیریت رضایت گوگل برای ارائه پیام‌های انصراف بر اساس مقررات ایالت ایالات متحده به کاربران نهایی تحت چارچوب IAB GPP استفاده می‌کنید، باید از API مربوط به IAB GPP استفاده کنید.

با توجه به ماهیت انصراف از مقررات ایالت ایالات متحده، می‌توانید از کلید صف پاسخ به تماس 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>

اگر از راهکارهای مدیریت رضایت گوگل برای ارائه پیام‌های انصراف از مقررات ایالت ایالات متحده به کاربران نهایی تحت چارچوب 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>

این تضمین می‌کند که پیوند پیش‌فرض «نفروش یا اشتراک‌گذاری» نمایش داده نشود. سپس، باید با فراخوانی پنجره تأیید انصراف از مقررات ایالت ایالات متحده، تعامل کاربر با پیوند «نفروش یا اشتراک‌گذاری» سفارشی خود را مدیریت کنید.

توجه داشته باشید که هنگام استفاده از لینک سفارشی «فروش یا اشتراک‌گذاری ممنوع» خود، مسئولیت مطابقت لینک با مقررات ایالت ایالات متحده بر عهده شماست.

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