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

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


كل إذن هو:

  • يتم التحقّق منها من خلال واجهات برمجة التطبيقات التي تتطلّب ذلك.
  • يتم رصدها تلقائيًا في 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 إلا إذا كان الجزء المقابل له هو true. يمكن للمتصل الاتصال بـ 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

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

الوصف: يتيح هذا الإذن قراءة البيانات من طبقة البيانات.

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

الجهة التي طلبت إجراء ذلك: 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')

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

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

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

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

الوصف: يُستخدَم لضبط ملفّ تعريف ارتباط بالاسم والمَعلمات المحدّدَين.

الإعداد: جدول بأسماء ملفات تعريف الارتباط المسموح بها، ولكل منها قيود optional على الاسم والنطاق والمسار وسمة 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

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

الوصف: تُستخدَم هذه السمة لكتابة البيانات في طبقة البيانات.

الإعداد: مجموعة من تعبيرات مطابقة المفاتيح، حيث يمكن أن تكون مطابقة المفتاح سلسلة مقدّمة من الإحالات التي تحتوي على نقاط، مع حرف بدل متأخر. تتحكم عبارات مطابقة المفتاح في المواقع التي يمكنها الكتابة في طبقة البيانات.

الجهة التي طلبت إجراء ذلك: 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'});
}