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

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


يكون كل إذن على النحو التالي:

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

الاسم المعروض: يتيح هذا الإذن قراءة طبقة البيانات.

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

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

مطلوب من قِبل: 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_analytics_storage

الاسم المعروض: لقراءة البيانات المحفوظة في مساحة تخزين "إحصاءات Google"

الوصف: يتيح ذلك للنماذج قراءة بيانات الإحصاءات المخزّنة، مثل أرقام تعريف العملاء.

الإعدادات: ما مِن إعدادات

مطلوب من قِبل: readAnalyticsStorage

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

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

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

const queryPermission = require('queryPermission');
const readAnalyticsStorage = require('readAnalyticsStorage');
if (queryPermission('read_analytics_storage')) {
  const value = readAnalyticsStorage();
}

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

الاسم المعروض: يتيح هذا الإذن كتابة البيانات في طبقة البيانات

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

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

مطلوب من قِبل: 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'});
}