أذونات النماذج المخصَّصة

يوضّح هذا المستند أذونات نماذج الويب المخصَّصة.


يتميّز كل إذن بما يلي:

  • تم التحقّق من البيانات بواسطة واجهات برمجة التطبيقات التي تتطلّبها.
  • يتم رصدها تلقائيًا في JavaScript في وضع الحماية، استنادًا إلى واجهات برمجة التطبيقات التي يتم استخدامها. ويحدث ذلك عند إجراء تعديلات في محرِّر النماذج المخصّصة (للحصول على تقرير ملاحظات سريع)، وبعد تجميع الرمز (للتحقّق من فرض الأذونات الصحيحة).
  • قابل للتعديل في محرِّر النماذج المخصّصة لجعل الإذن أكثر تحديدًا.
  • يمكن طلب البحث في JavaScript في وضع الحماية من خلال واجهة برمجة التطبيقات queryPermission.

access_globals

الاسم المعروض: الوصول إلى المتغيّرات العمومية

الوصف: تسمح هذه السياسة بالوصول إلى متغيّر عمومي (من المحتمل أن يتضمّن واجهات برمجة تطبيقات حسّاسة).

الإعدادات: قائمة بالمفاتيح التي يمكن الوصول إليها. كل مفتاح عبارة عن مسار مفصول بالنقاط. على سبيل المثال: foo.bar يجب ألا يكون الرمز المميّز الأول في كل مسار مفتاحًا محدّدًا مسبقًا للنطاق العالمي للمتصفِّح أو كلمة رئيسية بلغة JavaScript. يحتوي على مربعات اختيار للقراءة والكتابة والتنفيذ تحكم الوصول.

مطلوب من: setInWindow وcopyFromWindow وcallInWindow وcreateQueue وcreateArgumentsQueue

توقيع طلب البحث: queryPermission('access_globals', 'read', <key to read from>) أو queryPermission('access_globals', 'write', <key to write to>) أو queryPermission('access_globals', 'readwrite', <key to read and write>) أو queryPermission('access_globals', 'execute', <key of function to execute>)

ملاحظات: تتحكّم هذه السياسة في ما إذا كان بإمكان النموذج المخصّص قراءة و/أو الكتابة إلى قيم عامة.

مثال على الرمز

const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
  const dataLayerPush = createQueue('dataLayer');
}

access_local_storage

الاسم المعروض: للوصول إلى مساحة التخزين المحلية

الوصف: السماح بالوصول إلى المفاتيح المحدَّدة في مساحة التخزين المحلية

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

مطلوب من: localStorage

توقيع طلب البحث: queryPermission('access_local_storage', 'read', <key to read from>) أو queryPermission('access_local_storage', 'write', <key to write to>) أو queryPermission('access_local_storage', 'readwrite', <key to read and write>)

مثال على الرمز

const queryPermission = require('queryPermission');
const localStorage = require('localStorage');
const key = 'my_key';
if (queryPermission('access_local_storage', 'read', key)) {
  const value = localStorage.getItem(key);
}

access_template_storage

الاسم المعروض: للوصول إلى مساحة تخزين النموذج

الوصف: يسمح بالوصول إلى مساحة التخزين المؤقتة للنماذج التي يمكن أن تستمر طوال فترة عرض الصفحة.

الإعدادات: غير متوفّرة

مطلوب من: templateStorage

توقيع طلب البحث: queryPermission('access_template_storage')

مثال على الرمز

const queryPermission = require('queryPermission');
const templateStorage = require('templateStorage');
const key = 'my_key';
if (queryPermission('access_template_storage')) {
  const value = templateStorage.getItem(key);
}

get_cookies

الاسم المعروض: يقرأ قيم ملفات تعريف الارتباط

الوصف: تقرأ قيم ملفات تعريف الارتباط بالاسم المحدَّد.

الإعداد: قائمة بأسماء ملفات تعريف الارتباط المسموح بها للقراءة.

مطلوب من: getCookieValues

توقيع طلب البحث: queryPermission('get_cookies', <name>)

ملاحظات: يتحكّم هذا الخيار في إمكانية قراءة ملف تعريف الارتباط، وذلك استنادًا إلى اسمه.

مثال على الرمز

const queryPermission = require('queryPermission');
const getCookieValues = require('getCookieValues');
const cookieName = 'info';
let cookieValues;
if (queryPermission('get_cookies', cookieName)) {
  cookieValues = getCookieValues(cookieName);
}

get_referrer

الاسم المعروض: يعرض عنوان URL المُحيل

الوصف: يسمح بالوصول للقراءة إلى الأجزاء المحدودة من المُحيل.

الضبط: تتحكّم القيم المنطقية التالية في القسم الذي يمكن قراءته من المُحيل. لا يمكن قراءة جزء معيّن من المُحيل إلا إذا كان الجزء المقابل له هو true. يمكن للمتصل استدعاء getReferrerUrl بدون مكوّن محدد للحصول على عنوان URL المُحيل بالكامل إذا تم ضبط جميع هذه القيم المنطقية على true. إذا لم يتم ضبط أي قيمة، ستكون القيمة التلقائية هي all. إذا تم ضبط قيمة، يجب أن تكون القيمة عبارة عن مصفوفة من المكوّنات حيث يكون أحد المكوّنات أحد الأنواع التالية: protocol أو host أو port أو path أو query أو extension.

queryKeys: في حال اختيار طلب البحث، قد يحدّ مؤلف النموذج من مجموعة مفاتيح طلب البحث التي يمكنه القراءة منها. هذه مصفوفة بسيطة من المفاتيح، بدون أحرف بدل.

مطلوب من: getReferrerUrl، getReferrerQueryParameters

توقيع طلب البحث: queryPermission('get_referrer', <url_component>)

مثال على الرمز

const queryPermission = require('queryPermission');
const getReferrerUrl = require('getReferrerUrl');
let referrer;
if (queryPermission('get_referrer', 'query')) {
  referrer = getReferrerUrl('queryParams');
}

get_url

الاسم المعروض: يقرأ عنوان URL

الوصف: لعرض جزء من عنوان URL للصفحة الحالية أو جزء منه.

الضبط: تتحكّم القيم المنطقية التالية في القسم الذي يمكن قراءته من عنوان URL. لا يمكن قراءة جزء معيّن من عنوان URL إلّا إذا كان الجزء المقابل له صحيحًا. يمكن للمتصل استدعاء getUrl بدون تحديد مكوّن للحصول على عنوان URL الكامل إذا تم ضبط جميع هذه القيم المنطقية على true فقط. إذا لم يتم ضبط أي قيمة، ستكون القيمة التلقائية هي all إذا تم ضبط قيمة، يجب أن تكون القيمة مصفوفة من المكوّنات التي يكون فيها المكوِّن واحدًا مما يلي: protocol أو host أو port أو path أو query أو extension أو fragment.

queryKeys: في حال اختيار طلب البحث، قد يحدّ مؤلف النموذج من مجموعة مفاتيح طلب البحث التي يمكنه القراءة منها. هذه مصفوفة بسيطة من المفاتيح، بدون أحرف بدل.

مطلوب من: getUrl

توقيع طلب البحث: queryPermission('get_url', <optional url component>, <optional query key>)

في حال توفير هذه السمة، يجب أن يكون مكوّن عنوان URL واحدًا على النحو التالي: 'protocol' أو 'host' أو 'port' أو 'path' أو 'query' أو 'extension' أو 'fragment'. في حال حذفه، يكون استعلام الإذن هو طلب الوصول إلى عنوان URL بالكامل.

في حالة توفير مفتاح الاستعلام، يجب أن يكون وسيطة سلسلة الاستعلام التي يريد رمز النموذج قراءتها.

ملاحظات: تتحكَّم هذه السياسة في إمكانية قراءة نموذج مخصَّص من الموقع الجغرافي الحالي. تسمح بتقييد المحتوى في جزء معين من الموقع.

مثال على الرمز

const queryPermission = require('queryPermission');
const getUrl = require('getUrl');
if (queryPermission('get_url', 'query', 'gclid')) {
  const gclid = getUrl('query', false, null, 'gclid');
}

inject_hidden_iframe

الاسم المعروض: لإدخال إطارات iframe مخفية

الوصف: إدخال إطار iframe غير مرئي بعنوان URL معيّن.

الإعداد: قائمة أنماط عناوين URL

مطلوب من: injectHiddenIframe

توقيع طلب البحث: queryPermission('inject_hidden_iframe', <url>)

ملاحظات: يتحكّم هذا الخيار في ما إذا كان بإمكان النموذج المخصّص إدخال إطار iframe غير مرئي، وتحديد المصدر الذي يمكنه ذلك منه.

مثال على الرمز

const queryPermission = require('queryPermission');
const injectHiddenIframe = require('injectHiddenIframe');
const url = 'https://www.example.com/iframes';
if (queryPermission('inject_hidden_iframe', url)) {
  injectHiddenIframe(url);
}

inject_script

الاسم المعروض: لإدخال نصوص برمجية

الوصف: لإدخال نص برمجي في الصفحة.

الإعداد: قائمة أنماط عناوين URL

مطلوب من: injectScript

توقيع طلب البحث: queryPermission('inject_script', <url>)

ملاحظات: يتحكّم هذا الخيار في ما إذا كان بإمكان النموذج المخصّص إدخال JavaScript، ومن المصدر الذي يمكنه إجراء ذلك.

مثال على الرمز

const queryPermission = require('queryPermission');
const injectScript = require('injectScript');
const url = 'https://www.example.com?api.js';
if (queryPermission('inject_script', url)) {
  injectScript(url);
}

تسجيل

الاسم المعروض: السجلات في وحدة التحكّم

الوصف: تُسجِّل الدخول إلى وحدة تحكُّم المطوِّر ووضع المعاينة في "إدارة العلامات من Google".

الإعداد: خيار تفعيل تسجيل الدخول في مرحلة الإنتاج. إعداد الإعدادات التلقائية للسماح بتسجيل الدخول لتصحيح الأخطاء/المعاينة فقط إذا تم رفض الإذن، لن يعرض logToConsole خطأ، ولكن سيوقف رسالة السجلّ.

مطلوب من: logToConsole

توقيع طلب البحث: queryPermission('logging')

ملاحظات: تتحكَّم هذه السياسة في إمكانية تسجيل نموذج مخصَّص إلى وحدة تحكُّم المطوِّر.

مثال على الرمز

const queryPermission = require('queryPermission');
const logToConsole = require('logToConsole');
// Note that it's fine to call log, since the log call will be ignored if
// logging isn't permitted in the current environment.
logToConsole('diagnostic info');

read_data_layer

الاسم المعروض: يقرأ طبقة البيانات

الوصف: تقرأ البيانات من dataLayer.

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

مطلوب من: copyFromDataLayer

توقيع طلب البحث: queryPermission('read_data_layer', <data layer key to read from>)

ملاحظات: تتحكَّم هذه السياسة في إمكانية قراءة نموذج مخصَّص من طبقة البيانات.

مثال على الرمز

const queryPermission = require('queryPermission');
const copyFromDataLayer = require('copyFromDataLayer');
const dlKey = 'foo.bar';
if (queryPermission('read_data_layer', dlKey)) {
  const dlContents = copyFromDataLayer(dlKey);
}

read_character_set

الاسم المعروض: لقراءة مجموعة أحرف المستند

الوصف: اقرأ document.characterSet.

الإعدادات: غير متوفّرة

مطلوب من: readCharacterSet

توقيع طلب البحث: queryPermission('read_character_set')

ملاحظات: يتحكّم هذا الإعداد في ما إذا كان يمكن استخدام نموذج مخصّص لقراءة document.characterSet.

مثال على الرمز

const queryPermission = require('queryPermission');
const readCharacterSet = require('readCharacterSet');
if (queryPermission('read_character_set')) {
  const characterSet = readCharacterSet();
}

read_container_data

الاسم المعروض: لقراءة بيانات الحاوية

الوصف: تقرأ بيانات عن الحاوية.

الإعدادات: غير متوفّرة

مطلوب من: getContainerVersion

توقيع طلب البحث: queryPermission('read_container_data')

ملاحظات: تتحكّم هذه السياسة في ما إذا كان النموذج المخصّص يمكنه قراءة البيانات المتعلقة بالحاويات.

مثال على الرمز

const queryPermission = require('queryPermission');
const getCookieValues = require('getContainerVersion');
let version;
if (queryPermission('read_container_data')) {
  version = getContainerVersion();
}

read_event_metadata

الاسم المعروض: لقراءة البيانات الوصفية للحدث

الوصف: قراءة البيانات الوصفية للحدث في طلبات معاودة الاتصال للأحداث

الإعدادات: غير متوفّرة

مطلوب من: addEventCallback

توقيع طلب البحث: queryPermission('read_event_metadata')

ملاحظات: تتحكَّم هذه السياسة في ما إذا كان بإمكان نموذج مخصَّص قراءة البيانات الوصفية للحدث في عمليات معاودة الاتصال.

مثال على الرمز

const queryPermission = require('queryPermission');
const addEventCallback = require('addEventCallback');
if (queryPermission('read_event_metadata')) {
  addEventCallback((containerId, eventMetadata) => {
    // Read event metadata.
  });
}

read_title

الاسم المعروض: لقراءة عنوان المستند

الوصف: اقرأ document.title.

الإعدادات: غير متوفّرة

مطلوب من: readTitle

توقيع طلب البحث: queryPermission('read_title')

ملاحظات: يتحكّم هذا الخيار في ما إذا كان يمكن لنموذج مخصَّص قراءة document.title.

مثال على الرمز

const queryPermission = require('queryPermission');
const readTitle = require('readTitle');
if (queryPermission('read_title')) {
  const title = readTitle();
}

send_pixel

اسم العرض: يرسل وحدات البكسل

الوصف: لإرسال طلب GET إلى عنوان URL محدّد. لم تتم معالجة الرد.

الإعدادات: قائمة بأنماط عناوين URL المسموح بها

مطلوب من: sendPixel

توقيع طلب البحث: queryPermission('send_pixel', <url>)

ملاحظات: يتحكّم هذا الإعداد في ما إذا كان بإمكان النموذج المخصّص إرسال طلب GET، وإلى المصدر الذي يمكنه إرسال ذلك إليه.

مثال على الرمز

const queryPermission = require('queryPermission');
const sendPixel = require('sendPixel');
const url = 'https://www.example.com?foo=3';
if (queryPermission('send_pixel', url)) {
  sendPixel(url);
}

set_cookies

الاسم المعروض: لضبط ملف تعريف ارتباط

الوصف: لإعداد ملف تعريف ارتباط بالاسم والمَعلمات المحدَّدة

الضبط: جدول يضم أسماء ملفات تعريف الارتباط المسموح بها، ويشمل كل منها قيودًا اختيارية على الاسم والنطاق والمسار وسمة secure وتاريخ انتهاء الصلاحية.

مطلوب من: setCookie

توقيع طلب البحث: queryPermission('set_cookies', <name>, <options>)

ملاحظات: يتحكّم هذا الإعداد في إمكانية كتابة ملف تعريف الارتباط، اعتمادًا على اسم ملف تعريف الارتباط والنطاق والمسار وسمة secure وتاريخ انتهاء الصلاحية.

مثال على الرمز

const queryPermission = require('queryPermission');
const setCookie = require('setCookie');
const options = {
  'domain': 'www.example.com',
  'path': '/',
  'max-age': 60*60*24*365,
  'secure': true
};
if (queryPermission('set_cookies', 'info', options)) {
  setCookie('info', 'xyz', options);
}

write_data_layer

اسم العرض: يكتب طبقة البيانات

الوصف: تكتب البيانات في طبقة dataLayer.

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

مطلوب من: gtagSet

توقيع طلب البحث: queryPermission('write_data_layer', <data layer key to write from>)

ملاحظات: تتحكَّم هذه السياسة في ما إذا كان النموذج المخصّص يمكنه الكتابة في طبقة البيانات.

مثال على الرمز

const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
  gtagSet({dlKey: 'baz'});
}