مقدمة
توفّر واجهة برمجة التطبيقات هذه أدوات للتفاعل مع الرسائل التي تقدّمها علامة التبويب "الخصوصية والمراسلة". باستخدام هذه الأداة، يمكنك:
- حظر إرسال الرسائل إلى أي مستخدم معيّن
- الاستعلام عن حالة حظر الإعلانات لدى أحد المستخدمين
- عرض نقطة دخول للسماح للمستخدم بإلغاء الموافقة على اللوائح التنظيمية في الاتحاد الأوروبي
- تجاوز رابط صفحة "عدم البيع" التلقائي بموجب اللوائح التنظيمية في الولايات الأمريكية
- تحميل علامات "إعلانات Google" و"إحصاءات Google" بشكل مشروط استنادًا إلى حالة "وضع الموافقة" من Google وفقًا للوائح الاتحاد الأوروبي
والمزيد.
يمكنك أيضًا استخدام هذه الأدوات لجمع موافقة المستخدمين باستخدام بروتوكولات متوافقة مع معايير المجال:
- الموافقة بموجب "اللائحة العامة لحماية البيانات" باستخدام مواصفات الإصدار 2 من إطار الشفافية والموافقة الصادر عن مكتب IAB
- عمليات إيقاف التتبّع بموجب اللوائح التنظيمية في الولايات الأمريكية باستخدام مواصفات إطار عمل GPP الصادر عن مكتب IAB
في هذه الحالات، يتم إرسال حالة الموافقة من خلال واجهات برمجة التطبيقات هذه.
يمكنك نشر وظيفة مراسلة المستخدمين هذه على موقعك الإلكتروني بطريقتَين:
- في معظم الحالات، لن تحتاج إلى إعادة وضع العلامات على الإطلاق، إذ إنّ علامة "ناشر Google" أو علامة AdSense الحالية ستعرض رسائل المستخدمين بعد نشر الرسالة في المنتج المعنيّ.
- إذا كنت تستخدم رسالة الاستجابة لحظر الإعلانات، عليك إضافة علامة حظر الإعلانات إلى صفحتك بشكل صريح. راجِع تعليمات وضع العلامات في Ad Manager وAdSense لمزيد من المعلومات.
googlefc
هو مساحة الاسم العامة التي تستخدمها وظيفة مراسلة المستخدمين
في واجهة برمجة التطبيقات على Window
JavaScript.
ملخّصات الحقول
الاسم | النوع | التعريف |
---|---|---|
googlefc.controlledMessagingFunction
|
function(!Object) | دالة تحدّد ما إذا كان سيتم المتابعة مع أي رسائل. تتوفّر هذه الوظيفة لجميع أنواع الرسائل. |
googlefc.callbackQueue
|
!Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue | مرجع إلى قائمة انتظار معاودة الاتصال لتنفيذ طلبات البحث في رسائل المستخدمين بشكل غير متزامن |
googlefc.CallbackQueue
|
!Object | تمثّل هذه السمة نوع عنصر قائمة انتظار معاودة الاتصال. |
googlefc.AdBlockerStatusEnum
|
!Object<string, number> | تعداد لتمثيل حالة أداة حظر الإعلانات لدى المستخدم. |
googlefc.AllowAdsStatusEnum
|
!Object<string, number> | تعداد لتمثيل حالة السماح بعرض الإعلانات للمستخدم. |
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum
|
!Object<string, number> | تعداد لتمثيل حالة إيقاف مشاركة البيانات المبدئية للمستخدم في الولايات الأمريكية. ويراعي ذلك الولاية الأمريكية التي يقيم فيها المستخدم. |
googlefc.GoogleFcConsentModeUserStatus
|
!Object |
تمثّل هذه السمة نوع القيمة التي يتم إرجاعها لـ googlefc.getGoogleConsentModeValues .
|
googlefc.ConsentModePurposeStatusEnum
|
!Object<string, number> | تعداد لتمثيل قرار المستخدِم النهائي بشأن أحد أغراض "وضع الموافقة". |
googlefc.usstatesoptout.overrideDnsLink
|
undefined|boolean | قيمة منطقية يمكن ضبطها على "صحيح" لاستخدام رابط مخصّص خاص بك لعدم البيع أو المشاركة. |
googlefc.ccpa.InitialCcpaStatusEnum
إصدار قديم. التنسيق المفضَّل: googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum
|
!Object<string, number> | تعداد لتمثيل حالة اللوائح التنظيمية في الولايات المتحدة الأمريكية الأولية للمستخدم. |
googlefc.ccpa.overrideDnsLink
إصدار قديم. التنسيق المفضَّل: googlefc.usstatesoptout.overrideDnsLink
|
undefined|boolean | قيمة منطقية يمكن ضبطها على "صحيح" لاستخدام رابط مخصّص خاص بك لعدم البيع أو المشاركة. |
ملخّصات الطُرق
الاسم | نوع القيمة التي يتم إرجاعها | التعريف |
---|---|---|
googlefc.showRevocationMessage()
|
غير محدّدة |
يمحو سجلّ الموافقة ويعيد تحميل النص البرمجي googlefc لعرض رسالة الموافقة السارية على المستخدم.
|
googlefc.getAdBlockerStatus()
|
الرقم |
تعرِض هذه السمة قيمة في AdBlockerStatusEnum استنادًا إلى حالة حظر الإعلانات لدى المستخدم.
|
googlefc.getAllowAdsStatus()
|
الرقم |
تعرض هذه السمة قيمة في AllowAdsStatusEnum استنادًا إلى حالة السماح بعرض الإعلانات لدى المستخدم.
|
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus()
|
الرقم |
تعرض هذه السمة قيمة في InitialUsStatesOptOutStatusEnum استنادًا إلى حالة إيقاف مشاركة البيانات الأولية للمستخدم بموجب اللوائح التنظيمية في الولايات الأمريكية. ويأخذ ذلك في الاعتبار اللوائح التنظيمية التي تنطبق على المستخدم استنادًا إلى موقعه الجغرافي الحالي.
|
googlefc.usstatesoptout.openConfirmationDialog(function(boolean))
|
غير محدّدة | يفتح مربّع حوار تأكيد إيقاف المشاركة بموجب لوائح الولايات المتحدة إذا تم تجاهل الرابط التلقائي "عدم البيع أو المشاركة". |
googlefc.getGoogleConsentModeValues()
|
!Object |
تعرض هذه الدالة عنصر googlefc.GoogleFcConsentModeUserStatus يحتوي على قيم "وضع الموافقة" الحالية للمستخدم، قيمة واحدة لكل غرض متاح في "وضع الموافقة".
|
googlefc.ccpa.getInitialCcpaStatus()
إصدار قديم. التنسيق المفضّل هو googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() .
|
الرقم |
تعرض هذه السمة قيمة في InitialCcpaStatusEnum استنادًا إلى حالة إيقاف مشاركة البيانات الأولية للمستخدم بموجب اللوائح التنظيمية في الولايات الأمريكية.
|
googlefc.ccpa.openConfirmationDialog(function(boolean))
إصدار قديم. التنسيق المفضّل هو googlefc.usstatesoptout.openConfirmationDialog() .
|
غير محدّدة | يفتح مربّع حوار تأكيد إيقاف المشاركة بموجب لوائح الولايات الأمريكية في حال تم تجاهل الرابط التلقائي "عدم البيع أو المشاركة". |
الاختبار وتحديد الأخطاء في موقعك الإلكتروني
توفّر أداة "الخصوصية والمراسلة" وظائف لتصحيح الأخطاء والاختبار تتيح لك الاطّلاع على الشكل الذي ستظهر به الرسائل أو الأنواع الفرعية من الرسائل أو مجموعات الرسائل على موقعك الإلكتروني الفعلي.
المتطلبات الأساسية:
- يجب نشر الرسائل التي تريد معاينتها على الموقع الإلكتروني الذي تختبره.
يمكنك الاطّلاع على معاينة مباشرة على موقعك الإلكتروني باستخدام مَعلمات تصحيح الأخطاء التالية الخاصة بعناوين URL:
معلّمة تصحيح الأخطاء | القيم المسموح بها |
---|---|
fc |
alwaysshow (لتفعيل وضع تصحيح الأخطاء/المعاينة) |
fctype |
ab (رسائل حظر الإعلانات)، ccpa (رسائل إيقاف مشاركة البيانات بموجب لوائح الولايات الأمريكية)، gdpr (رسائل طلب الموافقة بموجب اللائحة العامة لحماية البيانات)، monetization (رسائل Offerwall)، usfl (رسائل إيقاف مشاركة البيانات بموجب لوائح الولايات الأمريكية، خاصة بولاية فلوريدا)، usnat (رسائل إيقاف مشاركة البيانات بموجب لوائح الولايات الأمريكية، جميع الولايات المتاحة باستثناء فلوريدا، وهي مكافئة للرمز ccpa ) |
في ما يلي بعض الأمثلة على كيفية استخدام ذلك لمعاينة المحتوى على موقعك الإلكتروني (foo.com):
- اختبار رسائل إيقاف بيع ومشاركة البيانات الشخصية بموجب اللوائح التنظيمية في الولايات الأمريكية --
http://foo.com/?fc=alwaysshow&fctype=ccpa
- اختبار رسائل طلب الموافقة بموجب "اللائحة العامة لحماية البيانات" (GDPR) --
http://foo.com/?fc=alwaysshow&fctype=gdpr
الحقول: التفسيرات والأمثلة
googlefc.controlledMessagingFunction {function(!Object)}
دالة تحدّد ما إذا كان يجب عرض الرسائل أم لا. ويمكن استخدامها للتحكّم في عرض الرسائل استنادًا إلى شروط يحدّدها الناشر، مثل حالة المشترك أو عنوان URL للصفحة.
عند تحديد googlefc.controlledMessagingFunction
في النافذة قبل تحميل البرامج النصية الأخرى، لن يتم عرض الرسائل إلا بعد استدعاء message.proceed(boolean)
. يسمح استدعاء message.proceed(true)
بمواصلة المراسلة كالمعتاد، بينما يمنع استدعاء message.proceed(false)
ظهور أي رسائل لعرض الصفحة.
مثال: لنفترض أنّ لديك النص البرمجي التالي على الصفحة الذي يعرّف دالة غير متزامنة determineIfUserIsSubscriber()
تتحقّق مما إذا كان المستخدم الذي سجّل الدخول مشتركًا.
<head>
<script>
window.isSubscriber = undefined;
function determineIfUserIsSubscriber() {
if (isSubscriber !== undefined) {
return isSubscriber;
}
return new Promise(resolve => {
setTimeout(() => {
// Change this to true if you want to test what subscribers would see.
window.isSubscriber = false;
resolve(window.isSubscriber);
}, 1000);
});
}
</script>
</head>
في ما يلي مثال على كيفية استخدام
googlefc.controlledMessagingFunction
لعرض الرسالة للمستخدمين غير المشتركين فقط.
<head>
<script>
// Define googlefc and the controlled messaging function on the Window.
window.googlefc = window.googlefc || {};
googlefc.controlledMessagingFunction = async (message) => {
// Determine if the user is a subscriber asynchronously.
const isSubscriber = await determineIfUserIsSubscriber();
if (isSubscriber) {
// If the user is a subscriber, don't show any messages.
message.proceed(false);
} else {
// Otherwise, show messages as usual.
message.proceed(true);
}
}
</script>
</head>
يتوفّر أيضًا إصدار موسّع من هذه الميزة يتيح للناشرين تحديد ما إذا كان يجب إيقاف رسالة 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>
مرجع إلى قائمة انتظار معاودة الاتصال العامة لتنفيذ غير متزامن للمكالمات ذات الصلة بالمراسلة. الطريقة الوحيدة المتاحة لاستدعاء أي دالة هي إضافتها إلى 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 متزامنًا.
|
عالية |
CONSENT_MODE_DATA_READY
|
يتم تنفيذ الدوال التي يتم إرسالها إلى قائمة انتظار معاودة الاتصال باستخدام المفتاح CONSENT_MODE_DATA_READY عندما تصبح بيانات [وضع الموافقة](https://support.google.com/google-ads/answer/10000067) من Google (للاستخدام مع علامات "إعلانات Google" و"إحصاءات Google") متاحة في عملية التنفيذ. بعد أن تصبح بيانات "وضع الموافقة" جاهزة، يمكنك الوصول إلى قيم "وضع الموافقة" في أي وقت باستخدام googlefc.getGoogleConsentModeValues .
|
متوسط |
INITIAL_US_STATES_OPT_OUT_DATA_READY
|
يتم تنفيذ الدوال التي يتم إرسالها إلى قائمة انتظار معاودة الاتصال باستخدام المفتاح INITIAL_US_STATES_OPT_OUT_DATA_READY عندما تصبح بيانات اللوائح التنظيمية في الولايات الأمريكية متاحة في المسار. يُرجى العِلم أنّه يجب الحصول على أي طلب لاحق لبيانات اللوائح التنظيمية في الولايات الأمريكية من خلال طلب البيانات مباشرةً من واجهة برمجة التطبيقات GPP (__gpp ).
|
متوسط |
INITIAL_CCPA_DATA_READY
|
مفتاح قديم للوائح التنظيمية في الولايات الأمريكية التنسيق المفضّل هو INITIAL_US_STATES_OPT_OUT_DATA_READY . يتم تنفيذ الدوال التي يتم إرسالها إلى قائمة انتظار دوال رد الاتصال باستخدام المفتاح INITIAL_CCPA_DATA_READY عندما تصبح بيانات اللوائح التنظيمية في الولايات الأمريكية متاحة في عملية الموافقة. يُرجى العِلم أنّه يجب الحصول على أي طلب لاحق لبيانات اللوائح التنظيمية في الولايات الأمريكية من خلال طلب البيانات مباشرةً من واجهة برمجة التطبيقات GPP (__gpp ).
|
متوسط |
googlefc.CallbackQueue {!Object}
ملخّص الطريقة:
الاسم | النوع | المَعلمة | نوع القيمة التي يتم إرجاعها | الدور |
---|---|---|---|---|
push(data)
|
الرقم |
data : زوج مفتاح/قيمة يكون فيه المفتاح أحد أنواع توفّر البيانات والقيمة هي دالة JavaScript سيتم تنفيذها.
مفاتيح توفّر البيانات المقبولة هي CONSENT_API_READY وCONSENT_DATA_READY وAD_BLOCK_DATA_READY وINITIAL_US_STATES_OPT_OUT_DATA_READY وCONSENT_MODE_DATA_READY وINITIAL_CCPA_DATA_READY (السابقة).
|
عدد الأوامر التي تمت إضافتها حتى الآن تعرض هذه السمة الطول الحالي للصفيف. | تنفيذ الدالة التي تم تمريرها بالترتيب الذي تصبح فيه البيانات متاحة، ثم بالترتيب الذي تتم به إضافة هذه الدوال إلى قائمة الانتظار |
مثال:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY':
() => {
if (googlefc.getAdBlockerStatus() == googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER) {
// Handle a non-ad blocking user.
}
}
});
</script>
googlefc.AdBlockerStatusEnum {!Object<string, number>}
تمثّل هذه السمة حالات حظر الإعلانات المختلفة للمستخدم. الحالات المختلفة هي:
googlefc.AdBlockerStatusEnum = {
// Something failed, in an unknown state.
UNKNOWN: 0,
// The user was running an extension level ad blocker.
EXTENSION_AD_BLOCKER: 1,
// The user was running a network level ad blocker.
NETWORK_LEVEL_AD_BLOCKER: 2,
// The user was not blocking ads.
NO_AD_BLOCKER: 3,
};
googlefc.AllowAdsStatusEnum {!Object<string, number>}
تمثّل هذه السمة حالات السماح بعرض الإعلانات المختلفة لدى المستخدمين الذين يستخدمون أدوات حظر الإعلانات. الحالات المختلفة هي:
googlefc.AllowAdsStatusEnum = {
// Something failed, in an unknown state.
UNKNOWN: 0,
// User is currently using an ad blocker, was never using an ad blocker, or
// allowed ads, but not because they saw the Privacy & messaging message.
ADS_NOT_ALLOWED: 1,
// User is no longer using an ad blocker after seeing the ad blocking message.
ADS_ALLOWED: 2,
};
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum{!Object<string, number>}
تمثّل هذه السمة حالات إيقاف مشاركة البيانات المختلفة للمستخدم بموجب اللوائح التنظيمية في الولايات الأمريكية. الحالات المختلفة هي:
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum = {
// Something failed, status unknown.
UNKNOWN: 0,
// No US state regulation applies to this user.
DOES_NOT_APPLY: 1,
// A US state regulation applies to this user, and the user has not opted out yet.
NOT_OPTED_OUT: 2,
// A US state regulation applies to this user, and the user has opted out.
OPTED_OUT: 3,
};
googlefc.GoogleFcConsentModeUserStatus{!Object}
نوع العنصر الذي تعرضه الدالة googlefc.getGoogleConsentModeValues
.
interface GoogleFcConsentModeUserStatus {
// End user consent decision value for the ad_storage consent mode purpose.
adStoragePurposeConsentStatus: number;
// End user consent decision value for the ad_user_data consent mode purpose.
adUserDataPurposeConsentStatus: number;
// End user consent decision value for the ad_personalization consent mode purpose.
adPersonalizationPurposeConsentStatus: number;
// End user consent decision value for the analytics_storage consent mode purpose.
analyticsStoragePurposeConsentStatus: number;
}
قيمة كل حقل هي رقم يتوافق مع قيمة
googlefc.ConsentModePurposeStatusEnum
تعداد.
googlefc.ConsentModePurposeStatusEnum{!Object<string, number>}
تمثّل هذه السمة قيم موافقة المستخدم النهائي المختلفة الممكنة لأحد أغراض "وضع الموافقة". القيم المختلفة هي:
googlefc.ConsentModePurposeStatusEnum = {
// Indicates either an error state, or that consent mode data is not ready
// yet.
UNKNOWN: 0,
// Consent is granted for the given consent mode purpose.
GRANTED: 1,
// Consent is denied for the given consent mode purpose.
DENIED: 2,
// Consent is not applicable for the given consent mode purpose.
NOT_APPLICABLE: 3,
// The consent mode purpose has not been configured for use in the Privacy &
// messaging UI.
NOT_CONFIGURED: 4
};
googlefc.usstatesoptout.overrideDnsLink{undefined|boolean}
اضبط قيمة هذا الحقل على "true" لإخفاء الرابط التلقائي "عدم بيع معلوماتي الشخصية أو مشاركتها" واستخدام رابط مخصّص خاص بك.
مثال:
<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" لإخفاء الرابط التلقائي "عدم بيع معلوماتي الشخصية أو مشاركتها" واستخدام رابط مخصّص خاص بك. يُرجى العِلم أنّه في حال ضبط هذا الحقل على "صحيح"، ستكون أنت المسؤول عن عرض رابط "عدم البيع أو المشاركة" على موقعك الإلكتروني. يجب استخدام هذا الحقل مع
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>}
- تعرض هذه الدالة الآن دائمًا قائمة فارغة عند استدعائها.
googlefc.showRevocationMessage(): {undefined}
يمحو سجلّ الموافقة الحالي بموجب اللوائح التنظيمية الأوروبية، إذا كان متوفّرًا، ويعرض رسالة اللوائح التنظيمية الأوروبية مجددًا للسماح للمستخدم بتغيير قرار الموافقة.
المثال 1: مثال بسيط على إعداد رابط يعرض رسالة الإبطال عند النقر عليه:
<a href="javascript:window.googlefc.showRevocationMessage();">Privacy and cookie settings</a>
<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
window.googlefc.callbackQueue.push({
'CONSENT_API_READY':
() => {
// Update the revocation link so that it shows on the page.
const revocationLink = document.getElementById('revocation-link');
revocationLink.style.display = 'block';
}
});
</script>
المثال 2: إذا أردت أن يظهر الرابط فقط عندما تنطبق لوائح الاتحاد الأوروبي على المستخدم الحالي، يمكنك استخدام قائمة انتظار معاودة الاتصال googlefc مع TCF API لتعديل عرض الزر بشكل مشروط استنادًا إلى قيمة gdprApplies
بعد تحديدها. لإجراء ذلك، استخدِم مفتاح واجهة برمجة التطبيقات
CONSENT_API_READY
.
<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
window.googlefc.callbackQueue.push({
'CONSENT_API_READY':
// Specifying "0" for the version parameter will result in the API call
// using the latest version of the TCF spec.
() => __tcfapi('addEventListener', 0, (tcdata, success) => {
const revocationLink = document.getElementById('revocation-link');
if (!success || !tcdata) {
// Something went wrong, don't show the revocation link.
revocationLink.style.display = 'none';
}
else if (tcdata.gdprApplies) {
revocationLink.style.display = 'block';
} else {
// GDPR does not apply so don't show the revocation link.
revocationLink.style.display = 'none';
}
})
});
</script>
googlefc.getAdBlockerStatus(): {number}
تعرِض هذه السمة قيمة في AdBlockerStatusEnum استنادًا إلى حالة حظر الإعلانات لدى المستخدم. المفتاح الذي يجب تحديده لهذه الدالة هو
AD_BLOCK_DATA_READY
.
مثال:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY':
() => {
switch (googlefc.getAdBlockerStatus()) {
case googlefc.AdBlockerStatusEnum.EXTENSION_LEVEL_AD_BLOCKER:
case googlefc.AdBlockerStatusEnum.NETWORK_LEVEL_AD_BLOCKER:
// Insert handling for cases where the user is blocking ads.
break;
case googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER:
// Insert handling for cases where the user is not blocking ads.
break;
case googlefc.AdBlockerStatusEnum.UNKNOWN:
// Insert handling for unknown cases.
break;
}
}
});
</script>
googlefc.getAllowAdsStatus(): {number}
تعرِض هذه السمة قيمة في AllowAdsStatusEnum
استنادًا إلى حالة السماح بعرض الإعلانات لدى المستخدم. المفتاح الذي يجب تحديده لهذه الدالة هو
AD_BLOCK_DATA_READY
.
مثال:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY':
() => {
switch (googlefc.getAllowAdsStatus()) {
case googlefc.AllowAdsStatusEnum.ADS_NOT_ALLOWED:
// Insert handling for cases where the user has not allowed ads.
// The user may have never been an ad blocker.
break;
case googlefc.AllowAdsStatusEnum.ADS_ALLOWED:
// Insert handling for cases where the user saw the ad blocking
// message and allowed ads on the site.
break;
case googlefc.AllowAdsStatusEnum.UNKNOWN:
// Insert handling for unknown cases.
break;
}
}
});
</script>
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus(): {number}
تعرض هذه السمة قيمة في InitialUsStatesOptOutStatusEnum
استنادًا إلى حالة إيقاف مشاركة البيانات بموجب اللوائح التنظيمية في الولايات المتحدة الأمريكية. المفتاح الذي يجب تحديده لهذه الدالة هو INITIAL_US_STATES_OPT_OUT_DATA_READY
. يُرجى العِلم أنّه يجب الحصول على أي طلب لاحق لبيانات اللوائح التنظيمية في الولايات الأمريكية من خلال طلب واجهة برمجة التطبيقات GPP مباشرةً (__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 مع الإصدار 2 من "إطار الشفافية والموافقة" الصادر عن مكتب IAB بموجب "اللائحة العامة لحماية البيانات"
إذا كنت تستخدم حلول إدارة الموافقة من Google لجمع الموافقات بموجب "اللائحة العامة لحماية البيانات" (GDPR) ضمن الإصدار 2 من إطار الشفافية والموافقة الصادر عن مكتب IAB، عليك استخدام الإصدار 2 من واجهة برمجة التطبيقات لإطار الشفافية والموافقة الصادر عن مكتب IAB.
يمكنك استخدام مفتاح قائمة انتظار معاودة الاتصال CONSENT_API_READY
لضمان عدم استدعاء عمليات معاودة الاتصال المقابلة إلا عند تحديد الإصدار 2 من واجهة برمجة التطبيقات لإطار الشفافية والموافقة الصادر عن مكتب IAB على الصفحة. يجب استخدام هذا الحقل مع الأمر 'addEventListener'
في الإصدار 2 من واجهة برمجة التطبيقات لإطار الشفافية والموافقة الصادر عن مكتب IAB.
مثال:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback using the CONSENT_API_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_API_READY':
() => __tcfapi('addEventListener', 2.2, (data, success) => {
// Do something with consent data value; this callback may be invoked
// multiple times as user completes consent flow.
})
});
</script>
يمكنك استخدام مفتاح قائمة انتظار معاودة الاتصال CONSENT_DATA_READY
للتأكّد من أنّه لا يتم استدعاء عمليات معاودة الاتصال المقابلة إلا عند جمع موافقة المستخدم وإتاحتها باستخدام الإصدار 2 من واجهة برمجة التطبيقات لإطار الشفافية والموافقة الصادر عن مكتب IAB.
يمكن استخدام هذا الأمر بالتزامن مع الأمر
'addEventListener'
، إذ ستتضمّن البيانات المقدَّمة في الاستدعاء الأول لوظيفة رد الاتصال التي توفّرها خيارات موافقة المستخدم (طالما أنّ الإصدار 2 من "إطار الشفافية والموافقة" ينطبق على هذا المستخدم). يُرجى العِلم أنّه مع طرح الإصدار 2.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 (يمكنك الاطّلاع على مزيد من المعلومات في مركز المساعدة).
يمكن تنفيذ "وضع الموافقة" في الوضع الأساسي أو الوضع المتقدّم، كما هو موضّح في مستندات "إعلانات Google" و"إحصاءات Google". عليك استشارة القسم القانوني لديك بشأن وضع الموافقة الذي يجب تنفيذه لاستيفاء المتطلبات القانونية.
يتوفّر وضع الموافقة المتقدّم تلقائيًا، وبعد تفعيل "وضع الموافقة" في واجهة مستخدم "الخصوصية والمراسلة"، لن تحتاج إلى اتّخاذ أي إجراءات إضافية.
لتنفيذ وضع الموافقة الأساسي باستخدام حلول إدارة الموافقة من Google،
يمكنك استخدام مفتاح قائمة انتظار معاودة الاتصال CONSENT_MODE_DATA_READY
لتحميل علامات "إعلانات Google" و"إحصاءات Google" بشكل مشروط
بعد توفّر بيانات "وضع الموافقة".
ستتوفّر بيانات "وضع الموافقة" بعد أن تحدّد "خيارات التمويل" أنّ "وضع الموافقة" لا ينطبق على هذا الطلب (على سبيل المثال، لأنّ اللوائح التنظيمية في الاتحاد الأوروبي لا تنطبق على هذا الطلب) أو بعد أن يتّخذ المستخدم قرارًا بشأن الموافقة بموجب اللوائح التنظيمية في الاتحاد الأوروبي. يجب استشارة قسم الشؤون القانونية بشأن المعايير التي يجب استخدامها لتحديد ما إذا كان يمكن تحميل علاماتك عند توفّر "وضع الموافقة".
على سبيل المثال، لتحميل علاماتك بعد توفّر بيانات "وضع الموافقة"، بغض النظر عن قرار الموافقة الذي اتّخذه المستخدِم النهائي، اتّبِع الخطوات التالية:
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Helper function to load Google Ads/Analytics tags once consent mode data is
// ready.
const loadGtagScript = () => {
// Load gtag.js script - code taken from
// https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
var gtagScript = document.createElement('script');
gtagScript.async = true;
gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';
var firstScript = document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(gtagScript,firstScript);
}
// Queue the callback using the CONSENT_MODE_DATA_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_MODE_DATA_READY':
() => {
loadGtagScript();
},
});
</script>
يمكنك أيضًا استخدام واجهة برمجة التطبيقات googlefc.getGoogleConsentModeValues()
للحصول على قيم أغراض "وضع الموافقة" الفردية عندما تتوفّر بيانات "وضع الموافقة".
تعرض واجهة برمجة التطبيقات هذه الكائن GoogleFcConsentModeUserStatus
الذي يحتوي على حقل واحد لكل غرض من أغراض "وضع الموافقة" المتوافق، وقيمة كل حقل هي قيمة تعدادية تشير إلى قيمة غرض "وضع الموافقة" هذا.
على سبيل المثال، يمكنك استخدام googlefc.getGoogleConsentModeValues()
لإلغاء حظر علامات "إعلانات Google" و"إحصاءات Google" فقط في الحالتَين التاليتَين:
- يتّخذ المستخدِم النهائي قرارًا بالموافقة بموجب اللوائح التنظيمية في الاتحاد الأوروبي يؤدي إلى منح الموافقة لجميع أغراض "وضع الموافقة"، أو
- جميع أغراض "وضع الموافقة" غير قابلة للتطبيق على الطلب الحالي (قد يحدث ذلك إذا كانت اللوائح التنظيمية في الاتحاد الأوروبي غير سارية أو إذا لم يتم ضبط "وضع الموافقة" لغرض واحد أو أكثر في أداة "الخصوصية والمراسلة").
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Helper function to determine whether Google Ads and Analytics tags can be
// unblocked. Returns true if all consent mode purposes are set to GRANTED,
// NOT_APPLICABLE, or NOT_CONFIGURED.
const shouldUnblockConsentTags = (googleFcConsentModeStatus) => {
const allConsentModeValues = [
googleFcConsentModeStatus.adStoragePurposeConsentStatus,
googleFcConsentModeStatus.adUserDataPurposeConsentStatus,
googleFcConsentModeStatus.adPersonalizationPurposeConsentStatus,
googleFcConsentModeStatus.analyticsStoragePurposeConsentStatus
];
for (const consentModeValue of allConsentModeValues) {
switch (consentModeValue) {
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_UNKNOWN:
// Indicates either an error case or that consent mode data is not
// ready yet. Cannot unblock tags until consent data is ready and valid,
// so return false.
return false;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_GRANTED:
// Consent is granted for this consent mode purpose.
break;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_DENIED:
// Consent is denied for this consent mode purpose. Do not unblock tags.
return false;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_APPLICABLE:
// Consent mode does not apply for this purpose.
break;
case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_CONFIGURED:
// Consent mode not configured for this purpose.
// If you configured support for Ads purposes but not Analytics purposes in the
// Privacy & messaging UI, the value of `analyticsStoragePurposeConsentStatus` will
// always be set to NOT_CONFIGURED. If you do not enable any Consent Mode support
// in the Privacy & messaging UI, the values of all purposes will always be set to
// NOT_CONFIGURED.
break;
default:
console.log("Unexpected consent mode value encountered");
}
}
// If all prior checks pass, all consent mode values are either GRANTED,
// NOT_APPLICABLE, or NOT_CONFIGURED.
return true;
};
// Helper function to load Google Ads/Analytics tags.
const loadGtagScript = () => {
// Load gtag.js script - code taken from
// https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
var gtagScript = document.createElement('script');
gtagScript.async = true;
gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';
var firstScript = document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(gtagScript,firstScript);
}
googlefc.callbackQueue.push({
CONSENT_MODE_DATA_READY: () => {
if (shouldUnblockConsentTags(googlefc.getGoogleConsentModeValues())) {
loadGtagScript();
}
},
});
</script>
استخدام حلول إدارة الموافقة من Google مع إطار عمل GPP الصادر عن مكتب IAB للّوائح التنظيمية في الولايات الأمريكية
إذا كنت تستخدم حلول إدارة الموافقات من Google لتقديم رسائل إيقاف بموجب لوائح الولايات الأمريكية إلى المستخدمين النهائيين ضمن إطار عمل GPP الصادر عن مكتب IAB، عليك استخدام واجهة برمجة التطبيقات GPP الصادرة عن IAB.
بسبب طبيعة لوائح الولايات الأمريكية التي تتيح إيقاف المشاركة، يمكنك استخدام إما
CONSENT_API_READY
أو
CONSENT_DATA_READY
مفتاح قائمة انتظار
وظائف معاودة الاتصال لضمان إمكانية استدعاء واجهة برمجة التطبيقات GPP الصادرة عن مكتب IAB وعرض بيانات الموافقة
في الوقت الذي يتم فيه استدعاء وظائف معاودة الاتصال.
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Queue the callback on the callbackQueue.
window.googlefc.callbackQueue.push({
'CONSENT_DATA_READY':
() => __gpp('ping', (data, success) => {
// Do something with consent data value.
})
});
</script>
استخدام حلول إدارة الموافقات من Google مع إطار عمل GPP الصادر عن مكتب IAB للوائح الولايات الأمريكية مع رابط مخصّص خاص بك لعدم البيع أو المشاركة
إذا كنت تستخدم حلول إدارة الموافقات من Google لتقديم رسائل إيقاف بموجب لوائح الولايات الأمريكية إلى المستخدِمين النهائيين ضمن إطار عمل GPP الصادر عن مكتب IAB، يمكنك تقديم رابط مخصّص خاص بك لعدم البيع أو المشاركة من خلال ضبط العلامة googlefc.usstatesoptout.overrideDnsLink
على true
.
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Signals that the default DNS link will be overridden.
window.googlefc.usstatesoptout.overrideDnsLink = true;
// Register the callback for the initial US state regulations data.
window.googlefc.callbackQueue.push({
'INITIAL_US_STATES_OPT_OUT_DATA_READY': () => {
if (googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() ===
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.NOT_OPTED_OUT) {
// TODO: Display custom Do Not Sell or Share link here.
}
}
});
</script>
يضمن ذلك عدم عرض رابط "عدم البيع أو المشاركة" التلقائي. بعد ذلك، عليك التعامل مع تفاعل المستخدم مع رابط "عدم البيع أو المشاركة" المخصّص من خلال استدعاء مربّع حوار تأكيد إيقاف المشاركة وفقًا للوائح السارية في الولايات الأمريكية.
يُرجى العِلم أنّه عند استخدام رابط مخصّص خاص بك لميزة "عدم البيع أو المشاركة"، تكون أنت المسؤول عن ضمان امتثال الرابط للوائح التنظيمية في الولايات الأمريكية.
<script>
// This callback will be called when the user makes a US state regulations
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
if (userOptedOut) {
// TODO: Hide custom Do Not Sell or Share link here.
}
}
// Invoke the US state regulations opt-out confirmation dialog when the user
// clicks the link.
document.getElementById("your-custom-do-not-sell-link").addEventListener(
"click", () => googlefc.usstatesoptout.openConfirmationDialog(usStateRegCompletionCallback));
</script>