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

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


כל הרשאה היא:

  • נבדקת על ידי ממשקי API שמחייבים את ההרשאות האלה.
  • מזוהה באופן אוטומטי ב-JavaScript בארגז חול (sandbox), על סמך ממשקי ה-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

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

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

הגדרה: ללא

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

תיאור: מאפשרת גישת קריאה לחלקים מצומצמים של מקור ההפניה (referrer).

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

שם תצוגה: החדרת iframes מוסתרים

תיאור: החדרת 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);
}

רישום ביומן

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

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

הגדרה: אפשרות להפעלת הרישום ביומן בסביבת הייצור. ברירת המחדל היא רק להפעיל רישום ביומן של ניפוי באגים/תצוגה מקדימה. אם ההרשאה תידחה, logToConsole לא יקפיץ שגיאה, אלא יסתיר את הודעת היומן.

חובה על ידי: logToConsole

חתימת השאילתה: queryPermission('logging')

הערות: המדיניות קובעת אם אפשר לרשום תבנית בהתאמה אישית ב-Developer Console.

קוד לדוגמה

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

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

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

הגדרה: ללא

חובה על ידי: 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

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

תיאור: קריאת המטא-נתונים של האירוע בקריאות חוזרות (callbacks) של אירועים

הגדרה: ללא

חובה על ידי: addEventCallback

חתימת השאילתה: queryPermission('read_event_metadata')

הערה: ההגדרה קובעת אם תבנית בהתאמה אישית יכולה לקרוא מטא-נתונים של אירועים ב קריאה חוזרת (callback).

קוד לדוגמה

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'});
}