במסמך הזה מפורטות ההרשאות לתבניות מותאמות אישית באינטרנט.
כל הרשאה היא:
- נבדקת על ידי ממשקי 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'});
}