إنشاء نموذج لوضع الموافقة

هذه المقالة مخصَّصة للمطوّرين الذين يقدّمون حلاً لإدارة الموافقة على المواقع الإلكترونية التي تستخدم "إدارة العلامات من Google" (GTM).

تقدِّم هذه الصفحة أنواع الموافقة في أداة "إدارة العلامات من Google" وتوضّح لك كيفية ودمجها مع حلّ إدارة الموافقات الذي تستخدمه

عند تقديم نموذج علامة، يمكن للمستخدِمين دمج موافقتك. بدون رموز برمجية، ما يوفر قدرًا كبيرًا من الوقت والجهد.

يمكن للمستخدِمين ضبط حالات الموافقة التلقائية باستخدام نموذج "وضع الموافقة". إبلاغ "إدارة العلامات من Google" بخيارات موافقة الزوّار يضمن ذلك الأمثل أداء علامات Google وعلامات الجهات الخارجية التي تدعم طلب الموافقة الحالي.

بصفتك منشئ نماذج، يمكنك تنفيذ نماذج وضع الموافقة للاستخدام الداخلي أو انشرها في معرض نماذج المنتدى متاحة للجمهور. مزوّدو "منصّة إدارة الموافقة" (CMP) الذين يقدّمون تتاح لك فرصة إدراج نماذج "وضع الموافقة" في "وضع الموافقة" التوثيق وجعل "أداة اختيار معرض النماذج" تعرض النماذج الخاصة بها.

تعدّل علامات Google وعلامات الجهات الخارجية سلوك مساحة التخزين استنادًا إلى موافقة. حالة إما granted أو denied. يمكن أن يكون لديهم عمليات مدمجة للتحقّق من الموافقة. لأيّ من أنواع الموافقة التالية:

نوع الموافقة الوصف
ad_storage لتفعيل عملية تخزين المعلومات المرتبطة بالإعلانات، مثل ملفات تعريف الارتباط
ad_user_data لضبط الموافقة على إرسال بيانات المستخدمين إلى Google لأغراض الإعلان على الإنترنت.
ad_personalization لضبط الموافقة على الإعلانات المخصّصة
analytics_storage لتفعيل عملية تخزين المعلومات، مثل ملفات تعريف الارتباط، المرتبطة بالإحصاءات (على سبيل المثال، الانتقال إلى المدة).
functionality_storage لتفعيل عملية التخزين التي تتيح تنفيذ وظائف الموقع الإلكتروني أو التطبيق مثل إعدادات اللغة.
personalization_storage لتفعيل عملية تخزين المعلومات المرتبطة بالتخصيص، مثل الفيديو والتوصيات لدينا.
security_storage لتفعيل عملية تخزين المعلومات المرتبطة بالأمان، مثل المصادقة والوظائف، ومنع الاحتيال، ووسائل حماية المستخدم الأخرى

يتتبّع "وضع الموافقة" خيارات موافقة الزوّار وعمليات التحقّق من موافقة العلامات. والتأكد من تعديل سلوك العلامة وفقًا لذلك. عند إنشاء موافقة جديدة قالبك، اتبع أفضل الممارسات:

  • استخدام واجهات برمجة التطبيقات لميزة "وضع الموافقة" في أداة "إدارة العلامات من Google" setDefaultConsentState updateConsentState بدلاً من gtag consent.

  • ضبط حالات الموافقة التلقائية فور تنشيطها باستخدام إعداد الموافقة - مشغِّل جميع الصفحات

  • يجب أن تطلب "منصّة إدارة الموافقة" من الزائر في أقرب وقت ممكن منح الموافقة أو رفضها. لجميع أنواع الموافقة السارية.

  • عندما يشير الزائر إلى خيار الموافقة، يجب أن تجتاز منصّة إدارة الموافقة (CMP) حالة الموافقة.

1. إنشاء نموذج جديد

يستخدم نهج التنفيذ هذا حقلاً واحدًا في النموذج للاحتفاظ حالة الموافقة التلقائية يقرأ رمز التنفيذ هذا الحقل لتعيين حالة الموافقة التلقائية في وقت التشغيل بالنسبة لأمر التحديث، تحاول التعليمة البرمجية قراءة ملف تعريف ارتباط تم ضبطه من خلال حلّ الموافقة لتخزين خيارات موافقة الزوّار سيتم أيضًا إعداد معاودة الاتصال للعميل "updateConsentState" لمعالجة هذا الطلب. عندما لم يتّخذ الزائر خيار الموافقة أو يقرّر تغييرها موافقتهم.

  1. سجِّل الدخول إلى حسابك على أداة إدارة العلامات من Google.
  2. في شريط التنقّل الأيمن، اختَر النماذج.
  3. في لوحة نماذج العلامات، انقر على جديد.
  1. حدد علامة التبويب الحقول، وانقر على إضافة حقل > جدول المَعلمات
  2. يجب تغيير الاسم إلى defaultSettings.
  3. وسِّع الحقل.
  4. عدِّل الاسم المعروض إلى Default settings.
  5. انقر على إضافة عمود، ثم على إدخال النص، وغيِّر الاسم إلى region ضع علامة في المربّع اشتراط أن تكون قيم الأعمدة فريدة.
  6. وسِّع العمود، وغيِّر الاسم المعروض إلى Region (leave blank to have consent apply to all regions). العبارة الموجودة بين قوسين هي الوثائق الخاصة بمستخدمي النموذج لديك. مزيد من المعلومات حول إعداد القيم التلقائية للموافقة لمناطق مختلفة
  7. انقر على إضافة عمود، ثم على إدخال النص، ثم غيِّر الاسم إلى granted.
  8. وسِّع العمود وغيِّر الاسم المعروض إلى Granted Consent Types (comma separated).
  9. انقر على إضافة عمود، ثم على إدخال النص، ثم غيِّر الاسم إلى denied.
  10. توسيع العمود وتغيير الاسم المعروض إلى Denied Consent Types (comma separated)

اختياري: لإتاحة ميزة إخفاء بيانات الإعلانات:

  1. انقر على إضافة حقل، واختر مربّع الاختيار، وغيِّر اسم الحقل إلى ads_data_redaction
  2. تعديل "الاسم المعروض" إلى "Redact Ads Data"

مزيد من المعلومات حول سلوك ملف تعريف الارتباط من خلال ميزة إخفاء بيانات الإعلانات

اختياري: لإتاحة تمرير مَعلمات عناوين URL:

  1. انقر على إضافة حقل، واختر مربّع الاختيار، وغيِّر اسم الحقل إلى url_passthrough
  2. تعديل "الاسم المعروض" إلى "Pass through URL parameters"

اطّلِع على مزيد من المعلومات عن تمرير مَعلمات عناوين URL.

لإضافة رمز التنفيذ:

  1. افتح علامة التبويب الرمز في محرِّر النماذج.
  2. في نموذج الرمز البرمجي أدناه، عدِّل حقول العنصر النائب.
  3. انسخ الرمز واستبدِل به الرمز الجاهز في محرِّر النماذج.
  4. احفظ النموذج.
// The first two lines are optional, use if you want to enable logging
const log = require('logToConsole');
log('data =', data);
const setDefaultConsentState = require('setDefaultConsentState');
const updateConsentState = require('updateConsentState');
const getCookieValues = require('getCookieValues');
const callInWindow = require('callInWindow');
const gtagSet = require('gtagSet');
const COOKIE_NAME = 'Your_cookie_name';
/*
 *   Splits the input string using comma as a delimiter, returning an array of
 *   strings
 */
const splitInput = (input) => {
  return input.split(',')
      .map(entry => entry.trim())
      .filter(entry => entry.length !== 0);
};
/*
 *   Processes a row of input from the default settings table, returning an object
 *   which can be passed as an argument to setDefaultConsentState
 */
const parseCommandData = (settings) => {
  const regions = splitInput(settings['region']);
  const granted = splitInput(settings['granted']);
  const denied = splitInput(settings['denied']);
  const commandData = {};
  if (regions.length > 0) {
    commandData.region = regions;
  }
  granted.forEach(entry => {
    commandData[entry] = 'granted';
  });
  denied.forEach(entry => {
    commandData[entry] = 'denied';
  });
  return commandData;
};
/*
 *   Called when consent changes. Assumes that consent object contains keys which
 *   directly correspond to Google consent types.
 */
const onUserConsent = (consent) => {
  const consentModeStates = {
    ad_storage: consent['adConsentGranted'] ? 'granted' : 'denied',
    ad_user_data: consent['adUserDataConsentGranted'] ? 'granted' : 'denied',
    ad_personalization: consent['adPersonalizationConsentGranted'] ? 'granted' : 'denied',
    analytics_storage: consent['analyticsConsentGranted'] ? 'granted' : 'denied',
    functionality_storage: consent['functionalityConsentGranted'] ? 'granted' : 'denied',
    personalization_storage: consent['personalizationConsentGranted'] ? 'granted' : 'denied',
    security_storage: consent['securityConsentGranted'] ? 'granted' : 'denied',
  };
  updateConsentState(consentModeStates);
};
/*
 *   Executes the default command, sets the developer ID, and sets up the consent
 *   update callback
 */
const main = (data) => {
  /*
   * Optional settings using gtagSet
   */
  gtagSet('ads_data_redaction', data.ads_data_redaction);
  gtagSet('url_passthrough', data.url_passthrough);
  gtagSet('developer_id.your_developer_id', true);
  // Set default consent state(s)
  data.defaultSettings.forEach(settings => {
    const defaultData = parseCommandData(settings);
  // wait_for_update (ms) allows for time to receive visitor choices from the CMP
    defaultData.wait_for_update = 500;
    setDefaultConsentState(defaultData);
  });

  // Check if cookie is set and has values that correspond to Google consent
  // types. If it does, run onUserConsent().
  const settings = getCookieValues(COOKIE_NAME);
  if (typeof settings !== 'undefined') {
    onUserConsent(settings);
  }
  /**
   *   Add event listener to trigger update when consent changes
   *
   *   References an external method on the window object which accepts a
   *   function as an argument. If you do not have such a method, you will need
   *   to create one before continuing. This method should add the function
   *   that is passed as an argument as a callback for an event emitted when
   *   the user updates their consent. The callback should be called with an
   *   object containing fields that correspond to the five built-in Google
   *   consent types.
   */
  callInWindow('addConsentListenerExample', onUserConsent);
};
main(data);
data.gtmOnSuccess();

ثانيًا، اضبط الأذونات للوصول إلى حالة الموافقة والوصول ملفات تعريف الارتباط.

  1. اختَر علامة التبويب الأذونات وانقر على إذن الوصول إلى حالة الموافقة.
  2. انقر على إضافة نوع الموافقة.
  3. انقر على المربّع واختَر ad_storage من القائمة المنسدلة.
  4. ضَع علامة في المربّع كتابة.
  5. انقر على إضافة.
  6. كرِّر الخطوات من 2 إلى 5 لـ ad_user_data وad_personalization و analytics_storage إذا كنت بحاجة إلى أنواع إضافية من الموافقة، يمكنك إضافتها في بالطريقة نفسها.
  7. انقر على حفظ.

لإضافة أذونات للوصول إلى ملفات تعريف الارتباط:

  1. اختَر علامة التبويب الأذونات وانقر على قراءة قيم ملفات تعريف الارتباط.
  2. ضمن خاصة، أدخِل أسماء كل ملف من ملفات تعريف الارتباط التي يحتاجها الرمز. المطلوب قراءته لتحديد خيارات الموافقة التي يختارها المستخدم، مع إدخال اسم واحد في كل سطر.
  3. انقر على حفظ.

2. إنشاء اختبارات للوحدات

راجِع قسم الاختبارات للحصول على معلومات حول إنشاء اختبارات للنموذج.

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

// Array of callbacks to be executed when consent changes
const consentListeners = [];

/**
 *   Called from GTM template to set callback to be executed when user consent is provided.
 *   @param {function} Callback to execute on user consent
 */
window.addConsentListenerExample = (callback) => {
  consentListeners.push(callback);
};

/**
 *   Called when user grants/denies consent.
 *   @param {Object} Object containing user consent settings.
 */
const onConsentChange = (consent) => {
  consentListeners.forEach((callback) => {
    callback(consent);
  });
};

بعد أن يشير زائر الموقع الإلكتروني إلى خياراته بشأن الموافقة، عادةً من خلال عند التفاعل مع بانر الموافقة، يجب أن يعدّل رمز النموذج حالة الموافقة وفقًا لواجهة برمجة التطبيقات updateConsentState.

يعرض المثال التالي الاستدعاء updateConsentState لزائر أشار إلى موافقته على جميع أنواع مساحات التخزين. مرة أخرى، يستخدم هذا المثال ترميزًا ثابتًا قيمًا لـ granted، ولكن من الناحية العملية، يجب تحديدها في وقت التشغيل باستخدام موافقة الزائر التي تجمعها منصّة إدارة الموافقة.

const updateConsentState = require('updateConsentState');

updateConsentState({
  'ad_storage': 'granted',
  'ad_user_data': 'granted',
  'ad_personalization': 'granted',
  'analytics_storage': 'granted',
  'functionality_storage': 'granted',
  'personalization_storage': 'granted',
  'security_storage': 'granted'
});

لمحة عن السلوك الخاص بمنطقة معيّنة

لضبط حالات الموافقة التلقائية التي تنطبق على الزوّار من مناطق معيّنة: تحديد منطقة (وفقًا لمعيار ISO) 3166-2) في القالب. يتيح استخدام قيم المنطقة لمستخدمي النماذج الالتزام بسياسة المنطقة بدون فقدان معلومات من الزوّار خارج تلك المناطق. فعندما لم يتم تحديد منطقة في الأمر setDefaultConsentState، فإن القيمة على جميع المناطق الأخرى.

على سبيل المثال، في ما يلي الحالة التلقائية لـ analytics_storage على denied للزوار من إسبانيا وألاسكا، وتعيين analytics_storage على granted لكل المستخدمين الآخرين:

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'analytics_storage': 'denied',
  'region': ['ES', 'US-AK']
});
setDefaultConsentState({
  'analytics_storage': 'granted'
});

الأكثر تحديدًا تكون الأولوية

في حال حدوث أمرَين تلقائيَين للموافقة في الصفحة نفسها باستخدام قيم لمنطقة معيّنة ومنطقة فرعية، فسيتم تفعيل المنطقة ذات المنطقة الأكثر تحديدًا. بالنسبة على سبيل المثال، إذا تم ضبط ad_storage على 'granted' للمنطقة US تم ضبط ad_storage على 'denied' للمنطقة US-CA، وهو زائر من كاليفورنيا. سيتم تطبيق إعداد US-CA الأكثر تحديدًا.

المنطقة ad_storage السلوك
الولايات المتحدة 'granted' تنطبق على المستخدمين في الولايات المتحدة غير في CA
الولايات المتحدة وكندا 'denied' يسري على المستخدمين المقيمين في الولايات المتحدة.
غير محدّد 'granted' ويتم استخدام القيمة التلقائية، وهي 'granted'. في هذا المثال، ينطبق على المستخدمين غير المقيمين في الولايات المتحدة أو كندا.

البيانات الوصفية الإضافية

يمكنك استخدام واجهة برمجة التطبيقات gtagSet لإعداد المَعلمات الاختيارية التالية:

لا تتوفّر واجهات برمجة التطبيقات هذه إلا في بيئة وضع الحماية لنموذج "إدارة العلامات من Google".

تمرير معلومات النقر على الإعلان ومعرّف العميل ومعرّف الجلسة في عناوين URL

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

ولكن إذا كانت قيمة ad_storage هي denied، لن تحفظ علامات Google هذه المعلومات. محليًا. وفي هذه الحالة، يمكن للمعلنين تحسين جودة قياس عدد النقرات على الإعلانات تمرير معلومات النقر على الإعلان اختياريًا من خلال معلمات عناوين URL في جميع الصفحات باستخدام تسمى مرور عنوان URL.

وبالمثل، إذا تم ضبط analytics_storage على "مرفوض"، يمكن استخدام إمكانية مرور عنوان URL. لإرسال الإحصاءات المستندة إلى الأحداث والجلسات (بما في ذلك الإحالات الناجحة) بدون ملفات تعريف الارتباط عبر الصفحات.

يجب استيفاء الشروط التالية لاستخدام ميزة عبور عنوان URL:

  • علامات Google التي تحتاج إلى الموافقة متوفّرة في الصفحة.
  • وافق الموقع على استخدام ميزة تمرير عنوان URL.
  • يتم تنفيذ "وضع الموافقة" في الصفحة.
  • يشير الرابط الصادر إلى النطاق نفسه الذي يشير إليه نطاق الصفحة الحالية.
  • تتوفّر مَعلمة gclid/dclid في عنوان URL (علامات "إعلانات Google" وFloodlight فقط).

يجب أن يسمح النموذج لمستخدم النموذج بضبط ما إذا كان يريد تفعيل هذا الإعداد. يُستخدم رمز النموذج التالي لضبط url_passthrough إلى true:

gtagSet('url_passthrough', true);

إخفاء بيانات الإعلانات

عند رفض ad_storage، لا يتم ضبط ملفات تعريف ارتباط جديدة للإعلانات. الأهداف. بالإضافة إلى ذلك، فإن ملفات تعريف ارتباط الجهات الخارجية التي تم تعيينها سابقًا على google.com لن يتم استخدام doubleclick.net. وستتضمّن البيانات المرسَلة إلى Google عنوان URL الكامل للصفحة، بما في ذلك أي معلومات عن النقرات على الإعلانات في معلمات عناوين URL.

لإخفاء بيانات إعلاناتك بصورةٍ أكبر عند رفض ad_storage، يمكنك ضبط ads_data_redaction على "صحيح".

عندما تكون ads_data_redaction صحيحة وتم رفض ad_storage، يتم النقر على الإعلان. المعرّفات المُرسَلة في طلبات الشبكة من خلال علامات "إعلانات Google" وعلامات Floodlight وإخفاء هذه البيانات.

gtagSet('ads_data_redaction', true);

رقم تعريف المطوّر

إذا كنت مورّدًا في منصّة إدارة الموافقة ولديك رقم تعريف مطوِّر صادر عن Google، عليك استخدام ما يلي: لتعيين ذلك في أقرب وقت ممكن في القالب.

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

gtagSet('developer_id.<your_developer_id>', true);

تقديم الوثائق للمستخدمين

سيستخدم المستخدمون نموذج الموافقة لإعداد علامة تجمع بيانات المستخدمين. أو موافقتك. تقديم وثائق للمستخدمين توضح أفضل ما يلي الممارسات:

  • طريقة ضبط القيم التلقائية للموافقة في جدول الإعدادات
  • كيفية إعداد القيم التلقائية للموافقة لمناطق مختلفة عن طريق إضافة قيم أخرى صفوف الجدول.
  • شغِّل العلامة في مشغِّل إعداد الموافقة - جميع الصفحات.

الخطوات التالية

إذا كنت تريد تقديم النموذج إلى جميع مستخدمي أداة "إدارة العلامات من Google"، عليك تحميله إلى معرض نماذج المنتدى