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