واجهة برمجة تطبيقات الخصوصية والمراسلة JavaScript

المقدمة

توفّر واجهة برمجة التطبيقات هذه أدوات للتفاعل مع الرسائل المعروضة في علامة التبويب "الخصوصية والمراسلة". باستخدام هذه الميزة، يمكنك تنفيذ ما يلي:

  • إيقاف المراسلة لأي مستخدم
  • البحث في حالة حظر الإعلان لأحد المستخدمين
  • السماح للمستخدم بإبطال الموافقة (إذا كان ذلك منطبقًا)

يمكنك أيضًا استخدام هذه الأدوات لجمع موافقة المستخدم باستخدام بعض البروتوكولات المتوافقة مع المعايير المتّبعة في المجال:

في هذه الحالات، يتم الإبلاغ عن حالة الموافقة من خلال واجهات برمجة التطبيقات هذه.

يمكنك نشر وظيفة مراسلة المستخدم هذه على موقعك الإلكتروني بطريقتَين:

  1. في معظم الحالات، لن تحتاج إلى إعادة وضع العلامات على الإطلاق، إذ تعمل علامة ناشر Google الحالية أو علامة AdSense على نشر رسائل المستخدم بعد نشر الرسالة في المنتج ذي الصلة.
  2. إذا كنت تستخدم رسالة الاستجابة لحظر الإعلانات، عليك إضافة علامة حظر الإعلانات إلى صفحتك صراحةً. اطّلِع على تعليمات وضع العلامات في مدير إعلانات Google وAdSense للحصول على مزيد من المعلومات.

googlefc هي مساحة الاسم العالمية التي تستخدمها وظيفة مراسلة المستخدم لواجهة برمجة التطبيقات على JavaScript Window.

ملخّصات الحقول

الاسم Type التعريف
googlefc.controlledMessagingFunction دالة(!Object) دالة تحدّد ما إذا كان ستتم مواصلة أي رسالة أم لا. هذه الوظيفة متوافقة مع جميع أنواع الرسائل.
googlefc.callbackQueue !Array<!Object<string, Function()>> | !مصفوفة<الوظيفة<> | !googlefc.CallbackQueue يشير إلى قائمة انتظار استدعاء التنفيذ غير المتزامن لطلبات بحث المستخدمين.
googlefc.CallbackQueue !Object نوع العنصر في قائمة انتظار رد الاتصال.
googlefc.AdBlockerStatusEnum !Object<string, number> تعداد يمثل حالة أداة حظر الإعلانات للمستخدم.
googlefc.AllowAdsStatusEnum !Object<string, number> تعداد يمثل حالة الإعلانات المسموح بها للمستخدم.
googlefc.ccpa.InitialCcpaStatusEnum !Object<string, number> تعداد يمثل حالة "قانون حقوق خصوصية البيانات في كاليفورنيا" الأولية للمستخدم.
googlefc.ccpa.overrideDnsLink غير محدّد|منطقي قيمة منطقية يمكن ضبطها على "صحيح" لاستخدام رابط مخصّص لميزة "عدم البيع"

ملخّصات الطرق

الاسم نوع الإرجاع التعريف
googlefc.showRevocationMessage() غير محدّدة يؤدي إلى محو سجلّ الموافقة وإعادة تحميل النص البرمجي googlefc لعرض رسالة الموافقة السارية على المستخدم.
googlefc.getAdBlockerStatus() الرقم تعرض قيمة في AdBlockerStatusEnum بناءً على حالة حظر الإعلان للمستخدم.
googlefc.getAllowAdsStatus() الرقم تعرض قيمة في AllowAdsStatusEnum بناءً على حالة السماح بالإعلانات للمستخدم.
googlefc.ccpa.getInitialCcpaStatus() الرقم تعرض القيمة في InitialCcpaStatusEnum بناءً على حالة قانون CPRA الأولية للمستخدم.
googlefc.ccpa.openConfirmationDialog(function(boolean)) غير محدّدة يفتح مربّع حوار تأكيد "قانون حقوق خصوصية البيانات في كاليفورنيا" (CPRA) في حال إلغاء رابط "عدم البيع" التلقائي.

الاختبار وتصحيح الأخطاء على موقعك الإلكتروني

توفّر ميزة "الخصوصية والمراسلة" وظيفة تصحيح الأخطاء والاختبار التي تسمح لك بالاطّلاع على شكل رسائل معيّنة (أو مجموعات رسائل) على موقعك الإلكتروني.

المتطلبات الأساسية:

  • يجب نشر الرسائل التي تريد معاينتها ضمن الموقع الإلكتروني الذي تختبره.

يمكنك الاطّلاع على معاينة مباشرة على موقعك الإلكتروني باستخدام معلَمات عناوين URL التالية لتصحيح الأخطاء:

معلّمة تصحيح الأخطاء القيم المسموح بها
fc alwaysshow (لتفعيل وضع تصحيح الأخطاء/المعاينة)
fctype ab (رسائل حظر الإعلانات) وccpa (رسائل إيقاف مشاركة البيانات بموجب "قانون حقوق خصوصية البيانات في كاليفورنيا" (CPRA)) وgdpr (رسائل طلب الموافقة بموجب اللائحة العامة لحماية البيانات) وmonetization (رسائل جدار العرض)

في ما يلي بعض الأمثلة عن كيفية استخدام هذه الميزة للمعاينة على موقعك الإلكتروني (foo.com):

  • اختبار رسائل إيقاف مشاركة البيانات بموجب "قانون حقوق خصوصية البيانات في كاليفورنيا" (CPRA) -- http://foo.com?fc=alwaysshow&fctype=ccpa
  • اختبار رسائل طلب موافقة المستخدمين بموجب "اللائحة العامة لحماية البيانات" (GDPR) -- http://foo.com?fc=alwaysshow&fctype=gdpr

الحقول: التفسيرات والأمثلة

googlefc.controlledMessagingFunction {function(!Object)}

دالة تحدّد ما إذا كان يجب عرض الرسائل أم لا. يمكن استخدام هذه الواجهة عند تحديد طريقة عرض الرسالة وفق شروط يحددها الناشر، مثل حالة الاشتراك أو عنوان URL للصفحة.

عند تحديد googlefc.controlledMessagingFunction في النافذة قبل تحميل النصوص البرمجية الأخرى، لا يتم عرض الرسائل حتى تتصل message.proceed(boolean). يتيح الاتصال بـ message.proceed(true) إمكانية متابعة المراسلة كالمعتاد، بينما يؤدي الاتصال بـ message.proceed(false) إلى منع عرض أي رسائل عند مشاهدة الصفحة.

مثال: لنفترض أنّ هذا النص البرمجي يتضمّن الصفحة التي تحدّد دالة غير متزامنة determineIfUserIsSubscriber() تتحقّق مما إذا كان المستخدم الذي سجّل الدخول مشتركًا.

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

إليك مثال على كيفية استخدام googlefc.controlledMessagingFunction لعرض الرسالة لغير المشتركين فقط.

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

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

يمكن للناشرين الذين ينتمون إلى الإصدار التجريبي المغلق من Showwall تحديد أنه يجب إيقاف العرض الترويجي فقط من خلال توفير مَعلمة إضافية إلى message.proceed(). هذه المعلَمة هي Array من النوع googlefc.MessageTypeEnum. التعداد الوحيد المتاح اليوم هو OFFERWALL، ولكن قد تتم إضافة أنواع رسائل إضافية في المستقبل.

مثال: لنفترض أنّ لديك الدالة determineIfUserIsSubscriber() نفسها كما هو موضّح أعلاه. من الأمثلة على استخدام 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 عند تحديد واجهات برمجة التطبيقات لإطارات الموافقة المتوافقة والاتصال بها. ومن الآن فصاعدًا، فإن تنفيذ أي دوال مستندة إلى 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 مُضاف لاحقًا متزامنًا. مرتفعة
INITIAL_CCPA_DATA_READY يتم تنفيذ الدوال المُرسَلة إلى قائمة انتظار ردّ الأموال مع INITIAL_CCPA_DATA_READY عندما تتوفّر بيانات قانون حقوق الخصوصية في كاليفورنيا (CPRA) في التدفق. ملاحظة: يجب الحصول على أي طلب لاحق لبيانات قانون حقوق الخصوصية في كاليفورنيا (CPRA) عن طريق الاتصال المباشر بواجهة برمجة التطبيقات للخصوصية في الولايات المتحدة (__uspapi). الوسيط

googlefc.CallbackQueue {!Object}

ملخّص الطريقة:

الاسم Type المَعلمة نوع الإرجاع الدور
push(data) الرقم data: زوج من المفتاح والقيمة مع تحديد أحد أنواع مدى توفُّر البيانات والقيمة كدالة JavaScript المراد تنفيذها. إنّ مفاتيح مدى توفّر البيانات المقبولة هي CONSENT_API_READY وCONSENT_DATA_READY وAD_BLOCK_DATA_READY وINITIAL_CCPA_DATA_READY. عدد الأوامر التي تمت إضافتها حتى الآن. يعرض هذا العمود الطول الحالي للمصفوفة. تنفِّذ الدالة التي تم تمريرها بالترتيب الذي تتوفّر به البيانات، ثم حسب ترتيب إضافة هذه الدوال إلى قائمة الانتظار.

مثال:

<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({
    '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.ccpa.InitialCcpaStatusEnum{!Object<string, number>}

يمثّل حالات حظر الإعلانات المختلفة للمستخدم. إليك الحالات المختلفة:

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

googlefc.ccpa.overrideDnsLink{undefined|boolean}

اضبط هذا الحقل على "صحيح" لإخفاء رابط "عدم البيع" التلقائي واستخدام رابط مخصّص لميزة "عدم البيع".

مثال:

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

يمحو سجلّ الموافقة الحالي ويعرض رسالة طلب الموافقة السارية على هذا المستخدم المفتاح الذي يجب تحديده لهذه الدالة هو CONSENT_DATA_READY.

مثال:

<button type="button" onclick="googlefc.callbackQueue.push({'CONSENT_DATA_READY': () => googlefc.showRevocationMessage()});">
  Click here to revoke
</button>

googlefc.getAdBlockerStatus(): {number}

تعرض قيمة في AdBlockerStatusEnum استنادًا إلى حالة حظر الإعلان للمستخدم. المفتاح الذي يجب تحديده لهذه الدالة هو AD_BLOCK_DATA_READY.

مثال:

<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({
    '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.ccpa = window.googlefc.ccpa || {}
  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.ccpa.getInitialCcpaStatus(): {number}

تعرض القيمة في InitialCcpaStatusEnum بناءً على حالة قانون حقوق الخصوصية في كاليفورنيا (CPRA) للمستخدم. المفتاح الذي يجب تحديده لهذه الدالة هو INITIAL_CCPA_DATA_READY. ملاحظة: إنّ أي طلب لاحق للحصول على بيانات قانون حقوق الخصوصية في كاليفورنيا (CPRA) يجب الحصول عليه عن طريق الاتصال مباشرةً بواجهة برمجة التطبيقات للخصوصية في الولايات المتحدة (__uspapi).

مثال:

<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 the user is not CPRA eligible.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT:
          // Insert handling for cases where the user is CPRA eligible and has
          // not opted out.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.OPTED_OUT:
          // Insert handling for cases where the user is CPRA eligible and has
          // opted out.
          break;
      }
    }
  });
</script>

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

يفتح مربّع حوار تأكيد قانون حقوق الخصوصية في كاليفورنيا (CPRA) في حال إلغاء الرابط التلقائي لميزة "عدم البيع". بعد تفاعل المستخدم مع مربّع حوار التأكيد، يتم استدعاء وظيفة معاودة الاتصال المقدَّمة مع true إذا قرّر المستخدم إيقاف هذه الميزة، وfalse بخلاف ذلك.

مثال:

<script>
// This callback will be called with the user CPRA decision.
const ccpaCompletionCallback = (userOptedOut) => {
  // Insert handling for user opt-out status here.
}
// Invoke the CPRA 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) بموجب إطار عمل الإصدار 2 من إطار الشفافية والموافقة الصادر عن مكتب الإعلانات التفاعلية (IAB)، يجب استخدام واجهة برمجة التطبيقات للإصدار 2 من إطار الشفافية والموافقة الصادر عن مكتب الإعلانات التفاعلية (IAB TCF v2).

يمكنك استخدام CONSENT_API_READY

مفتاح قائمة انتظار معاودة الاتصال لضمان استدعاء عمليات رد الاتصال المقابلة فقط عند تحديد الإصدار الثاني من واجهة برمجة تطبيقات إطار الشفافية والموافقة الصادر عن مكتب الإعلانات التفاعلية (IAB) على الصفحة. ويجب استخدامه مع الأمر IAB TCF v2 API 'addEventListener' حيث تم جلب موافقة المستخدم التي تم جلبها باستخدام الأمر '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_API_READY key on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_API_READY':
    () => __tcfapi('addEventListener', 2.0, (data, success) => {
      // Do something with consent data value; this callback may be invoked
      // multiple times as user completes consent flow.
    })
  });
</script>

يمكنك استخدام CONSENT_DATA_READY

مفتاح قائمة انتظار معاودة الاتصال لضمان استدعاء عمليات معاودة الاتصال المقابلة فقط عند جمع موافقة المستخدم والوصول إليها باستخدام واجهة برمجة تطبيقات الإصدار 2 من إطار الشفافية والموافقة الصادر عن مكتب الإعلانات التفاعلية (IAB). ويمكن استخدام هذا الأمر مع الأمر '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('getTCData', 2.0, (data, success) => {
      // Do something with consent data value.
    })
  });
</script>

استخدام حلول إدارة الموافقة من Google مع إطار عمل "منصّة إدارة علاقات العملاء" من مكتب الإعلانات التفاعلية (IAB) بموجب قانون حقوق الخصوصية في كاليفورنيا (CPRA)

إذا كنت تستخدم حلول إدارة موافقة المستخدم في Google لإيقاف جمع البيانات المتعلّقة بقانون حقوق الخصوصية في كاليفورنيا (CPRA) وفقًا لإطار عمل GPP الصادر عن مكتب الإعلانات التفاعلية (IAB)، يجب استخدام واجهة برمجة تطبيقات GPP.

بسبب طبيعة إيقاف CPRA بموجب القانون، يمكنك استخدام إما قائمة انتظار CONSENT_API_READY أو CONSENT_DATA_READY مفتاح معاودة الاتصال للتأكّد من أنّ واجهة برمجة التطبيقات لمكتب الإعلانات التفاعلية في Google يمكن استدعاءها وعرض بيانات الموافقة في وقت استدعاء عمليات معاودة الاتصال.

<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.
  window.googlefc.callbackQueue.push({
    'CONSENT_DATA_READY':
    () => __uspapi('getUSPData', 1, (data, success) => {
      // Do something with consent data value.
    })
  });
</script>

استخدام حلول إدارة الموافقة من Google مع إطار عمل "منصّة Google للتسويق" من أجل "قانون حقوق خصوصية البيانات في كاليفورنيا" (CPRA) مع رابط "عدم البيع" مخصّص

إذا كنت تستخدم حلول إدارة موافقة المستخدم في Google لإيقاف جمع البيانات المتعلّقة بقانون حقوق الخصوصية في كاليفورنيا (CPRA) وفقًا لإطار عمل GPP الصادر عن مكتب الإعلانات التفاعلية (IAB)، من الممكن تقديم رابط مخصّص لميزة عدم البيع من خلال ضبط العلامة googlefc.ccpa.overrideDnsLink على true.

<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 || [];

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

  // Register the callback for the initial CPRA data.
  window.googlefc.callbackQueue.push({
      'INITIAL_CCPA_DATA_READY': () => {
        if (googlefc.ccpa.getInitialCcpaStatus() ===
            googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT) {
          // TODO: Display custom CPRA Do Not Sell link here.
        }
      }
    });
</script>

ويضمن ذلك عدم عرض رابط "عدم البيع" التلقائي. يُرجى العِلم أنّك مسؤول عن عرض رابط "عدم البيع" الخاص بك التزامًا بقانون حقوق الخصوصية في كاليفورنيا (CPRA). بعد ذلك، عليك التعامل مع تفاعل المستخدم مع الرابط المخصّص "عدم البيع" من خلال استدعاء مربّع حوار تأكيد "قانون حقوق خصوصية البيانات في كاليفورنيا".

<script>
// This callback will be called with the user CPRA decision.
const ccpaCompletionCallback = (userOptedOut) => {
  if (userOptedOut) {
    // TODO: Hide custom CPRA Do Not Sell link here.
  }
}
// Invoke the CPRA confirmation dialog when the user clicks the link.
document.getElementById("your-custom-ccpa-do-not-sell-link").addEventListener(
  "click", () => googlefc.ccpa.openConfirmationDialog(ccpaCompletionCallback));
</script>