הרשאות לשימוש בתבניות מותאמות אישית

במסמך הזה מפורטות ההרשאות לתבניות בהתאמה אישית באינטרנט.


כל הרשאה היא:

  • נבדקים על ידי ממשקי API שמחייבים אותם.
  • זיהוי אוטומטי ב-JavaScript שמופעל בארגז חול, בהתאם לממשקי ה-API שבהם נעשה שימוש. זה קורה כשעורכים בכלי לעריכת תבניות בהתאמה אישית (כדי ליצור לולאת משוב מהירה) וכשמבוצע קומפילציה של הקוד (כדי לוודא שההרשאות הנכונות נאכפות).
  • ניתן לערוך את הפרטים בעורך התבניות בהתאמה אישית כדי שההרשאה תהיה ספציפית יותר.
  • אפשר להריץ שאילתות ב-JavaScript בארגז חול (sandbox) דרך ה-API של queryPermission.

access_globals

שם לתצוגה: גישה למשתנים גלובליים

תיאור: מאפשרת גישה למשתנה גלובלי (שעשויה לכלול ממשקי API רגישים).

הגדרה: רשימת המפתחות שאפשר לגשת אליהם. כל מפתח הוא נתיב שמופרד באמצעות נקודות. לדוגמה: 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

Display name (שם תצוגה): גישה לאחסון של תבניות

תיאור: מאפשרת גישה לאחסון זמני לתבניות שיכולות להישמר לכל משך החיים של הדף.

הגדרה: ללא

נדרש על ידי: 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

Display name: קריאת הערכים של קובצי ה-cookie

תיאור: קריאת הערכים של קובצי ה-cookie עם השם שצוין.

הגדרה: רשימת השמות של קובצי cookie שמותרים לקריאה.

נדרש על ידי: getCookieValues

חתימת השאילתה: queryPermission('get_cookies', <name>)

הערות:המדיניות הזו קובעת אם ניתן לקרוא את קובץ ה-cookie בהתאם לשם הקובץ.

קוד לדוגמה

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

Display name: קריאה של כתובת ה-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);
}

logging

השם המוצג: יומנים במסוף

תיאור: יומנים למסוף המפתחים ולמצב התצוגה המקדימה של GTM.

הגדרה: אפשרות להפעיל רישום ביומן בסביבת הייצור. ברירת המחדל היא הפעלת רישום ביומן רק בניפוי באגים/בתצוגה מקדימה. אם ההרשאה נדחית, הודעת השגיאה 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

Display name (שם תצוגה): קריאה של שכבת הנתונים

תיאור: קריאת נתונים מה-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

Display name: קריאה של נתוני המאגר

תיאור: קריאת נתונים לגבי מאגר התגים.

הגדרה: ללא

נדרש על ידי: 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

השם המוצג: קריאת המטא-נתונים של האירוע

תיאור: קריאת מטא-נתונים של אירועים ב-Event Callbacks

הגדרה: ללא

נדרש על ידי: 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

שם תצוגה: מגדיר קובץ Cookie

תיאור: הגדרה של קובץ cookie עם השם והפרמטרים שצוינו.

הגדרה: טבלה של השמות המותרים של קובצי cookie, שבכל אחד מהם יש הגבלות אופציונליות על השם, הדומיין, הנתיב, המאפיין secure והתפוגה.

נדרש על ידי: setCookie

חתימת השאילתה: queryPermission('set_cookies', <name>, <options>)

הערות:קובע אם אפשר לכתוב קובץ cookie, בהתאם לשם של קובץ ה-cookie, לדומיין, לנתיב, למאפיין 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'});
}