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

مقدمه

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

و بیشتر

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

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

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

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

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

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

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

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

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

خلاصه روش

نام نوع برگشت تعریف
googlefc.showRevocationMessage() تعریف نشده رکورد رضایت را پاک می کند و اسکریپت googlefc را مجدداً بارگیری می کند تا پیام رضایت مربوط به کاربر را نشان دهد.
googlefc.getAdBlockerStatus() شماره بسته به وضعیت مسدود کردن تبلیغات کاربر، مقداری را در AdBlockerStatusEnum برمی‌گرداند.
googlefc.getAllowAdsStatus() شماره بسته به وضعیت مجاز تبلیغات کاربر، مقداری را در AllowAdsStatusEnum برمی‌گرداند.
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)}

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

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

مثال: فرض کنید این اسکریپت را در صفحه ای دارید که تابع async 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>

همچنین افزونه‌ای برای این ویژگی وجود دارد که به ناشران اجازه می‌دهد مشخص کنند که فقط Offerwall باید سرکوب شود. از این افزونه ویژگی برای سرکوب Offerwall بدون سرکوب انواع پیام های دیگر استفاده کنید.

پیام‌های کنترل‌شده مخصوص Offerwall با ارسال یک پارامتر اضافی به 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 به صف برگشت تماس داده می‌شوند، زمانی اجرا می‌شوند که داده‌های مسدودکننده تبلیغات در جریان موجود می‌شوند. از این نقطه به بعد، اجرای هر توابع اضافه شده بعدی با کلید AD_BLOCK_DATA_READY همزمان است. بالا
CONSENT_MODE_DATA_READY وقتی داده‌های Google [حالت رضایت] (https://support.google.com/google-ads/answer/10000067) (برای استفاده با برچسب‌های Google Ads و Analytics) در جریان در دسترس قرار می‌گیرد، عملکردهایی که با کلید CONSENT_MODE_DATA_READY به صف پاسخ به تماس منتقل می‌شوند، اجرا می‌شوند. پس از آماده شدن داده‌های حالت رضایت، می‌توانید در هر زمان با استفاده از 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;
}

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

  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 با API TCF برای به‌روزرسانی مشروط نمایش دکمه بر اساس مقدار gdprApplies پس از تعیین استفاده کنید. برای این کار از کلید CONSENT_API_READY API استفاده کنید.

<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 تحت چارچوب IAB TCF v2 استفاده می‌کنید، باید از IAB TCF v2 API استفاده کنید.

می‌توانید از کلید صف برگشت تماس CONSENT_API_READY استفاده کنید تا مطمئن شوید که تماس‌های مربوطه فقط زمانی فراخوانی می‌شوند که IAB TCF v2 API در صفحه تعریف شده باشد. این باید همراه با دستور 'addEventListener' API IAB TCF v2 استفاده شود.

مثال:

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