במסמך הזה מפורטים ממשקי ה-API לתיוג בצד השרת.
addEventCallback
הרשמה של פונקציית קריאה חוזרת שתופעל בסוף אירוע. פונקציית ה-callback תופעל אחרי שהתגים של האירוע יבוצעו. לשם כך, מעבירים לשם שני ערכים: המזהה של המאגר שמפעיל את הפונקציה ואובייקט שמכיל מידע על האירוע.
כשמשתמשים ב-API הזה בתג, הוא משויך לאירוע הנוכחי. כשמשתמשים ב-API הזה בלקוח, צריך לשייך אותו לאירוע ספציפי באמצעות הפונקציה bindToEvent
של ה-API runContainer
. פרטים נוספים זמינים בדוגמה.
תחביר
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
callback |
function | הפונקציה שתופעל בסיום האירוע. |
האובייקט eventData
מכיל את הנתונים הבאים:
שם מפתח | סוג | תיאור |
---|---|---|
tags |
מערך |
מערך של אובייקטים של נתוני תגים. לכל תג שהופעל במהלך האירוע תהיה רשומה במערך הזה. אובייקט נתוני התג מכיל את המזהה של התג (id ), את סטטוס הביצוע שלו (status ) ואת זמן הביצוע שלו (executionTime ). נתוני התג יכללו גם מטא-נתונים נוספים של התג שהוגדרו בתג.
|
בלקוח:
const addEventCallback = require('addEventCallback');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const logToConsole = require('logToConsole');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((evt, i) => {
runContainer(evt, /* onComplete= */ (bindToEvent) => {
bindToEvent(addEventCallback)((containerId, eventData) => {
logToConsole('Event Number: ' + i);
eventData.tags.forEach((tag) => {
logToConsole('Tag ID: ' + tag.id);
logToConsole('Tag Status: ' + tag.status);
logToConsole('Tag Execution Time: ' + tag.executionTime);
});
});
if (events.length === ++eventsCompleted) {
returnResponse();
}
});
});
בתג:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
הרשאות משויכות
callLater
תזמון קריאה לפונקציה כך שתתבצע באופן אסינכרוני. הפונקציה תיקרא אחרי שהקוד הנוכחי יוחזר. זה שווה ערך ל-setTimeout(<function>, 0)
.
דוגמה
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
תחביר
callLater(function)
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
function |
function | הפונקציה שרוצים להפעיל. |
הרשאות משויכות
ללא.
claimRequest
משתמשים ב-API הזה בלקוח כדי לטעון בעלות על הבקשה. אחרי שמוגשת בקשה, הקונטיינר לא מפעיל לקוחות נוספים.
ה-API הזה יוצר חריגה אם הוא נקרא בתג או במשתנה. ה-API הזה יוצר חריג אם הוא נקרא אחרי שהלקוח חוזר (למשל, אם הוא נקרא בחיוג חוזר אסינכררוני כמו ב-callLater
או בפונקציה runContainer
onComplete
).
לפני שמפעילים את ה-API runContainer
, הלקוח צריך לטעון בעלות על הבקשה באמצעות ה-API הזה.
דוגמה
const claimRequest = require('claimRequest');
claimRequest();
תחביר
claimRequest();
הרשאות משויכות
ללא.
computeEffectiveTldPlusOne
הפונקציה מחזירה את הדומיין ברמה העליונה בפועל + 1 (eTLD+1) של הדומיין או כתובת ה-URL שצוינו. ה-eTLD+1 מחושב על ידי הערכת הדומיין לפי הכללים של רשימת הסיומות הציבוריות. בדרך כלל, eTLD+1 הוא הדומיין ברמה הכי גבוהה שאפשר להגדיר בו קובץ cookie.
אם הארגומנט הוא null או לא מוגדר, הערך שלו מוחזר ללא שינוי. אחרת, הארגומנט הופך למחרוזת. אם הארגומנט הוא לא דומיין או כתובת URL תקינים, תוחזר מחרוזת ריקה. אם השרת לא מצליח לאחזר את רשימת הסיומת הציבורית, ערך הארגומנט מוחזר ללא שינוי.
דוגמה
const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');
תחביר
computeEffectiveTldPlusOne(domainOrUrl);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
domainOrUrl |
string | דומיין או כתובת URL שעליהם מחשבים את eTLD+1. |
הרשאות משויכות
ללא.
createRegex
יצירת מופע חדש של ביטוי רגולרי והחזרתו עטוף באובייקט. אי אפשר לגשת לביטוי הרגולרי ישירות. עם זאת, אפשר להעביר אותו לממשקי ה-API testRegex
, String.replace()
, String.match()
ו-String.search()
.
הפונקציה מחזירה את הערך null
אם ביטוי ה-regex לא תקין או אם Re2 לא זמין בשרת.
ב-API הזה נעשה שימוש בהטמעה של Re2. קובץ האימג' של Docker בשרת צריך להיות מגרסה 2.0.0 ואילך.
דוגמה
const createRegex = require('createRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');
תחביר
createRegex(pattern, flags);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
pattern |
string | הטקסט של הביטוי הרגולרי. |
flags |
string | מחרוזת אופציונלית שמכילה את הדגלים של ביטוי ה-regex שנוצר. יש תמיכה ב-g (גלובלי) וב-i (לא תלוי-רישיות). המערכת מתעלמת בשקט מכל התווים האחרים. |
הרשאות משויכות
ללא.
גרסת המינימום של התמונה
decodeUri
הפונקציה מפענחת תווים מקודדים ב-URI שצוין. הפונקציה מחזירה מחרוזת שמייצגת את ה-URI שעבר פענוח. הפונקציה מחזירה את הערך undefined
כשהיא מקבלת קלט לא תקין.
דוגמה
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
תחביר
decodeUri(encoded_uri);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
encoded_uri |
string |
URI שקודד על ידי encodeUri() או באמצעים אחרים.
|
הרשאות משויכות
ללא.
decodeUriComponent
הפונקציה מפענחת תווים מקודדים ברכיב ה-URI שסופק. הפונקציה מחזירה מחרוזת שמייצגת את רכיב ה-URI שעבר פענוח. הפונקציה מחזירה את הערך undefined
כשהקלט לא תקין.
דוגמה
const decodeUriComponent = require('decodeUriComponent');
const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
// ...
}
תחביר
decodeUriComponent(encoded_uri_component);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
encoded_uri_component |
string |
רכיב URI שקודד באמצעות encodeUriComponent() או באמצעים אחרים.
|
הרשאות משויכות
ללא.
encodeUri
הפונקציה מחזירה מזהה משאבים אחיד (URI) מקודד באמצעות בריחה מתווים מיוחדים. הפונקציה מחזירה מחרוזת שמייצגת את המחרוזת שצוינה בקידוד כ-URI.
דוגמה
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
תחביר
encodeUri(uri);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
uri |
string | URI מלא. |
הרשאות משויכות
ללא.
encodeUriComponent
הפונקציה מחזירה מזהה משאבים אחיד (URI) מקודד באמצעות בריחה מתווים מיוחדים. הפונקציה מחזירה מחרוזת שמייצגת את המחרוזת שצוינה, שמקודדת כ-URI.
דוגמה
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
תחביר
encodeUriComponent(str);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
str |
string | רכיב של URI. |
הרשאות משויכות
ללא.
extractEventsFromMpv1
תרגום של בקשה נכנסת של Measurement Protocol V1 לרשימת אירועים בפורמט Unified Schema. הפונקציה מחזירה את רשימת האירועים שחולצו. אם הבקשה לא בפורמט הנכון, הפונקציה תשליך שגיאה.
דוגמה
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
const events = extractEventsFromMpv1();
for (let i = 0; i < events.length; ++i) {
const event = events[i];
// Process event.
}
}
תחביר
extractEventsFromMpv1();
הרשאות משויכות
נדרשת ההרשאה read_request
. צריך להגדיר את ההרשאה כך שתאפשר גישה לפחות:
body
query parameters
extractEventsFromMpv2
תרגום של בקשה נכנסת של Measurement Protocol V2 לרשימת אירועים בפורמט Unified Schema. הפונקציה מחזירה את רשימת האירועים שחולצו. אם הבקשה לא בפורמט הנכון, הפונקציה תשליך שגיאה.
דוגמה
const extractEventsFromMpv2 = require('extractEventsFromMpv2');
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
const events = extractEventsFromMpv2();
for (let i = 0; i < events.length; ++i) {
const event = events[i];
// Process event.
}
}
תחביר
extractEventsFromMpv2();
הרשאות משויכות
נדרשת ההרשאה read_request
. צריך להגדיר את ההרשאה כך שתאפשר גישה לפחות:
body
query parameters
fromBase64
פענוח מחרוזת בקידוד base64. הפונקציה מחזירה את הערך undefined
אם הקלט לא תקין.
תחביר
fromBase64(base64EncodedString);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
base64EncodedString |
string | מחרוזת בקידוד Base64. |
דוגמה
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
הרשאות משויכות
ללא.
generateRandom
הפונקציה מחזירה מספר (שלם) אקראי בטווח שצוין.
דוגמה
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
תחביר
generateRandom(min, max);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
min |
number | הערך המינימלי הפוטנציאלי של המספר השלם המוחזר (כולל). |
max |
number | הערך המקסימלי הפוטנציאלי של המספר השלם המוחזר (כולל). |
הרשאות משויכות
ללא.
getAllEventData
הפונקציה מחזירה עותק של נתוני האירוע.
תחביר
getAllEventData();
הרשאות משויכות
getClientName
הפונקציה מחזירה מחרוזת שמכילה את השם של הלקוח הנוכחי.
תחביר
getClientName();
הרשאות משויכות
getContainerVersion
הפונקציה מחזירה אובייקט שמכיל נתונים על המאגר הנוכחי. האובייקט המוחזר יכלול את השדות הבאים:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
דוגמה
const getContainerVersion = require('getContainerVersion');
const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];
תחביר
getContainerVersion();
הרשאות משויכות
getCookieValues
הפונקציה מחזירה מערך שמכיל את הערכים של כל קובצי ה-Cookie עם השם הנתון.
דוגמה
const getCookieValues = require('getCookieValues');
const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
// ...
}
תחביר
getCookieValues(name[, noDecode]);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
name |
string | השם של קובץ ה-cookie. |
noDecode |
boolean |
אם הערך הוא true , ערכי קובצי ה-cookie לא יפורשו לפני שהם יחזרו. ברירת המחדל היא false .
|
הרשאות משויכות
getEventData
הפונקציה מחזירה עותק של הערך שנמצא בנתוני האירוע בנתיב הנתון. הפונקציה מחזירה את הערך undefined
אם אין נתוני אירוע או אם אין ערך בנתיב הנתון.
דוגמה
const getEventData = require('getEventData');
const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
keyPath |
any |
הנתיב של המפתח, שבו רכיבי הנתיב מופרדים בנקודות. רכיבי הנתיב יכולים להיות מפתחות באובייקט או אינדקסים במערך. אם הערך של keyPath הוא לא מחרוזת, הוא הופך למחרוזת.
|
תחביר
getEventData(keyPath);
הרשאות משויכות
getGoogleAuth
הפונקציה מחזירה אובייקט הרשאה, שכשמשתמשים בו עם sendHttpGet
או sendHttpRequest
, הוא כולל כותרת הרשאה לממשקי Google Cloud API. ממשק ה-API הזה משתמש ב-Application Default Credentials כדי למצוא באופן אוטומטי את פרטי הכניסה מסביבת השרת.
דוגמה
const getGoogleAuth = require('getGoogleAuth');
const logToConsole = require('logToConsole');
const sendHttpGet = require('sendHttpGet');
const auth = getGoogleAuth({
scopes: ['https://www.googleapis.com/auth/datastore']
});
sendHttpGet(
'https://firestore.googleapis.com/v1/projects/my-project/databases/(default)/documents/collection/document',
{authorization: auth}
).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
logToConsole('Result: ' + result.body);
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
});
תחביר
getGoogleAuth(scopes);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
scopes
|
מערך | מערך של היקפי OAuth 2.0 ל-Google API שרוצים לבקש גישה אליהם. |
הרשאות משויכות
נדרשת ההרשאה use_google_credentials
. צריך להגדיר להרשאה היקף הרשאה אחד או יותר.
getGoogleScript
הפונקציה מאחזרת משאב מקבוצה מוגדרת מראש של סקריפטים של Google, ומחזירה promise עם הסקריפט והמטא-נתונים המשויכים לשמירת המטמון.
ההבטחה תיפתר לאובייקט שמכיל שני מפתחות: script
ו-metadata
. אם הבקשה נכשלת, ההבטחה תידחה עם מפתח reason
.
האובייקט metadata
יכיל את המטא-נתונים הבאים של האחסון במטמון, על סמך כותרות התשובה של המשאב. כל שדה יופיע רק אם הכותרת המתאימה מופיעה בתשובה של המשאב.
{
'cache-control': string,
'expires': string,
'last-modified': string,
}
דוגמה
const getGoogleScript = require('getGoogleScript');
getGoogleScript('ANALYTICS').then((result) => {
// Operate on result.script and result.metadata here.
});
תחביר
getGoogleScript(script[, options]);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
script |
string |
השם של הסקריפט. הסקריפטים הנתמכים הם 'ANALYTICS' , 'GTAG' ו-'GTM' .האפשרות 'ANALYTICS'
מאחזרת את הסקריפט של Google Analytics מ-
https://www.google-analytics.com/analytics.js .האפשרות 'GTAG' מאחזרת את הסקריפט של תג המעקב ברמת האתר (gtag.js) מ-https://www.googletagmanager.com/gtag/js .האפשרות 'GTM' מאחזרת את הסקריפט של Google Tag Manager מ-https://www.googletagmanager.com/gtm.js .
|
options |
object | אפשרויות בקשה אופציונליות. בהמשך מפורטות האפשרויות הנתמכות. |
אפשרויות
אפשרות | סוג | תיאור |
---|---|---|
id |
string |
רלוונטי ל-'GTAG' עם מזהה המדידה של GTAG ול-'GTM' עם מזהה מאגר התגים באתר (למשל, GTM-XXXX).
|
debug |
any | אם הערך הוא true, הפונקציה מבקשת את גרסת ניפוי הבאגים של סקריפט המדידה ומחזירה אותה. |
timeout |
number |
זמן הקצאת הזמן לתפוגה של הבקשה באלפיות שנייה. המערכת מתעלמת מערכים שאינם חיוביים. אם יפוג הזמן הקצוב לבקשה, פונקציית ה-callback תופעל עם הערך undefined עבור הערך של הסקריפט ועם הערך {} עבור אובייקט המטא-נתונים.
|
המערכת מתעלמת ממפתחות אפשרות לא מזוהים.
הרשאות משויכות
נדרשת ההרשאה send_http
. צריך להגדיר את ההרשאה כך שתאפשר גישה לפחות ל:
- מתן הרשאה ל-Google Domains
getRemoteAddress
הפונקציה מחזירה ייצוג של מחרוזת של כתובת ה-IP שממנה נשלחה הבקשה, למשל 12.345.67.890
עבור IPv4 או 2001:0db8:85a3:0:0:8a2e:0370:7334
עבור IPv6, על ידי קריאת כותרות הבקשה כמו Forwarded ו-X-Forwarded-For.
הערה: ה-API הזה מנסה כמיטב יכולתו לגלות את כתובת ה-IP המקורית, אבל אי אפשר להבטיח שהתוצאה תהיה מדויקת.
תחביר
getRemoteAddress();
הרשאות משויכות
נדרשת ההרשאה read_request
. צריך להגדיר את ההרשאה כך שתאפשר גישה לפחות:
- כותרות
Forwarded
ו-X-Forwarded-For
- כתובת IP מרוחקת
getRequestBody
הפונקציה מחזירה את גוף הבקשה כמחרוזת, אם הוא קיים, או undefined
אחרת.
תחביר
getRequestBody();
הרשאות משויכות
getRequestHeader
הפונקציה מחזירה את הערך של כותרת הבקשה בעלת השם כמחרוזת, אם היא קיימת, או את הערך undefined
במקרה אחר. אם הכותרת חוזרת על עצמה, הערכים המוחזרים מחוברים יחד באמצעות ', '
.
דוגמה
const getRequestHeader = require('getRequestHeader');
const host = getRequestHeader('host');
תחביר
getRequestHeader(headerName);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
headerName |
string | שם הכותרת. הערך הזה לא תלוי אותיות רישיות. |
הרשאות משויכות
getRequestMethod
הפונקציה מחזירה את שיטת הבקשה, למשל 'GET'
או 'POST'
, כמחרוזת.
דוגמה
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
תחביר
getRequestMethod();
הרשאות משויכות
ללא.
getRequestPath
הפונקציה מחזירה את נתיב הבקשה ללא מחרוזת השאילתה. לדוגמה, אם כתובת ה-URL היא '/foo?id=123'
, הפונקציה מחזירה את הערך '/foo'
. הסרת התוספת לנתיב שמופיעה בכתובת ה-URL של מאגר התגים בצד השרת באופן אוטומטי. לדוגמה, אם כתובת ה-URL של מאגר התגים של השרת היא https://example.com/analytics
ונתיב הבקשה הוא '/analytics/foo'
, הפונקציה מחזירה את הערך '/foo'
.
דוגמה
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
תחביר
getRequestPath();
הרשאות משויכות
getRequestQueryParameter
הפונקציה מחזירה את הערך המקודד של פרמטר מחרוזת השאילתה בעל השם כמחרוזת, או את הערך undefined
אם הפרמטר לא קיים. אם הפרמטר חוזר במחרוזת השאילתה, הערך הראשון שמופיע במחרוזת השאילתה יוחזר.
דוגמה
const getRequestQueryParameter = require('getRequestQueryParameter');
const query = getRequestQueryParameter('query');
if (query) {
// Process query here.
}
תחביר
getRequestQueryParameter(name);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
name |
string | השם של פרמטר השאילתה. |
הרשאות משויכות
getRequestQueryParameters
הפונקציה מחזירה את פרמטרים השאילתה של בקשת ה-HTTP הנכנסת כאובייקט שממפה את שמות פרמטרים השאילתה לערך או לערכים התואמים. השמות והערכים של הפרמטרים מקודדים.
דוגמה
const getRequestQueryParameters = require('getRequestQueryParameters');
const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
// Handle the search query here.
const maxResults = queryParameters['max_results'];
}
תחביר
getRequestQueryParameters();
הרשאות משויכות
getRequestQueryString
הפונקציה מחזירה את שאילתת הבקשה כמחרוזת, ללא סימן השאלה המוביל, או מחרוזת ריקה אם כתובת ה-URL של הבקשה לא כוללת מחרוזת שאילתה.
דוגמה
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
תחביר
getRequestQueryString();
הרשאות משויכות
getTimestamp
הוצא משימוש. עדיף להשתמש ב-getTimestampMillis.
הפונקציה מחזירה מספר שמייצג את השעה הנוכחית במיליוניות השנייה מאז תחילת הזמן ב-Unix, כפי שמוחזר על ידי Date.now()
.
תחביר
getTimestamp();
הרשאות משויכות
ללא.
getTimestampMillis
הפונקציה מחזירה מספר שמייצג את השעה הנוכחית במיליוניות השנייה מאז תחילת הזמן ב-Unix, כפי שמוחזר על ידי Date.now()
.
תחביר
getTimestampMillis();
הרשאות משויכות
ללא.
getType
הפונקציה מחזירה מחרוזת שמתארת את סוג הערך הנתון.
סוג הקלט | הערך המוחזר |
---|---|
string | 'string' |
number | 'number' |
boolean | 'boolean' |
null | 'null' |
undefined | 'undefined' |
מערך | 'array' |
אובייקט | 'object' |
פעולה | 'function' |
דוגמה
const getType = require('getType');
const type = getType(value);
if (type === 'string') {
// Handle string input.
} else if (type === 'number') {
// Handle numeric input.
} else {
logToConsole('Unsupported input type: ', type);
}
תחביר
getType(value);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
value |
any | ערך קלט. |
הרשאות משויכות
ללא.
hmacSha256
חישוב חתימה מקודדת באמצעות קוד אימות הודעות המבוסס על גיבוב (HMAC) עם SHA-256. ברירת המחדל היא קידוד base64url
.
כדי להשתמש ב-API הזה, מגדירים את משתנה הסביבה SGTM_CREDENTIALS
בשרת לנתיב של קובץ מפתח JSON עם קידוד UTF-8 בפורמט הבא:
{
"keys": {
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
}
הערכים הם מפתחות HMAC בקידוד Base64. טקסט ה-JSON לא יכול להתחיל בסמן של סדר הבייטים.
דוגמה
const hmacSha256 = require('hmacSha256');
const toBase64 = require('toBase64');
const header = toBase64('{"alg":"HS256","typ":"JWT"}', {urlEncoding: true});
const claim = toBase64('{"sub":"1234567890","iat":1698164946}', {urlEncoding: true});
const signature = hmacSha256(header + '.' + claim, 'key1');
const jwt = header + "." + claim + '.' + signature;
תחביר
hmacSha256(data, keyId, options)
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
data |
string | הנתונים לחישוב ערך ה-HMAC. |
keyId
|
string | מזהה מפתח מקובץ המפתחות בפורמט JSON שמתייחס למפתח שבו רוצים להשתמש. |
options
|
object | הגדרת API אופציונלית. (מידע נוסף זמין בקטע אפשרויות בהמשך). |
אפשרויות
אפשרות | סוג | תיאור |
---|---|---|
outputEncoding
|
string | מציין את פורמט הקידוד של ערך ההחזרה. הפורמטים הנתמכים הם hex , base64 או base64url . אם לא צוין ערך, ערך ברירת המחדל הוא base64url . |
הרשאות משויכות
גרסת המינימום של התמונה
isRequestMpv1
הפונקציה מחזירה את הערך true
אם הבקשה הנכנסת היא בקשה של Measurement Protocol V1, או את הערך false
במקרים אחרים.
דוגמה
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
// Handle Measurement Protocol V1 request.
const events = extractEventsFromMpv1();
}
תחביר
isRequestMpv1();
הרשאות משויכות
ללא.
isRequestMpv2
הפונקציה מחזירה את הערך true
אם הבקשה הנכנסת היא בקשה של Measurement Protocol V2, או
false
אחרת.
דוגמה
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
תחביר
isRequestMpv2();
הרשאות משויכות
ללא.
logToConsole
הרישום של הארגומנטים במסוף.
היומנים האלה גלויים ב-Logs Explorer במסוף Google Cloud.
מריצים את השאילתה logName =~ "stdout"
ב-Logs Explorer כדי לראות את רשומות היומן שנוצרו על ידי ה-API הזה.
דוגמה
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
תחביר
logToConsole(argument1[, argument2, ...]);
פרמטרים
ה-API מקבל ארגומנטים אחד או יותר, שכל אחד מהם מומר למחרוזת, אם צריך, ומתוועד במסוף.
הרשאות משויכות
makeInteger
הפונקציה ממירה את הערך הנתון למספר (מספר שלם).
תחביר
makeInteger(value);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
value |
any type | הערך שרוצים להמיר. |
הרשאות משויכות
ללא.
makeNumber
הפונקציה ממירה את הערך הנתון למספר.
תחביר
makeNumber(value);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
value |
any type | הערך שרוצים להמיר. |
הרשאות משויכות
ללא.
makeString
הפונקציה מחזירה את הערך הנתון כמחרוזת.
תחביר
makeString(value);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
value |
any type | הערך שרוצים להמיר. |
הרשאות משויכות
ללא.
makeTableMap
הפונקציה ממירה אובייקט טבלה פשוט עם שתי עמודות ל-Map
. האפשרות הזו משמשת לשינוי שדה תבנית SIMPLE_TABLE
עם שתי עמודות לפורמט קל יותר לניהול.
לדוגמה, הפונקציה הזו יכולה להמיר אובייקט טבלה:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
למפה:
{
'k1': 'v1',
'k2': 'v2'
}
הפונקציה מחזירה אובייקט: Map
המומר של זוגות המפתח/ערך נוספו אליו, או null
במקרה אחר.
תחביר
makeTableMap(tableObj, keyColumnName, valueColumnName);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
tableObj |
רשימת |
אובייקט הטבלה שרוצים להמיר. זוהי רשימה של מפות, שבהן כל Map מייצג שורה בטבלה. כל שם מאפיין באובייקט שורה הוא שם העמודה, וערך המאפיין הוא ערך העמודה בשורה.
|
keyColumnName |
string |
שם העמודה שהערכים שלה יהפכו למפתחות ב-Map המומר.
|
valueColumnName |
string |
שם העמודה שהערכים שלה יהפכו לערכים ב-Map המומר.
|
הרשאות משויכות
ללא.
parseUrl
הפונקציה מחזירה אובייקט שמכיל את כל החלקים של כתובת URL נתונה, בדומה לאובייקט URL
.
ה-API הזה יחזיר את הערך undefined
לכל כתובת URL לא תקינה. בכתובות URL בפורמט תקין, השדות שלא מופיעים במחרוזת של כתובת ה-URL יהיו בעלי ערך של מחרוזת ריקה, או במקרה של searchParams
, אובייקט ריק.
השדות הבאים יופיעו באובייקט המוחזר:
{
href: string,
origin: string,
protocol: string,
username: string,
password: string,
host: string,
hostname: string,
port: string,
pathname: string,
search: string,
searchParams: Object<string, (string|Array)>,
hash: string,
}
דוגמה
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
תחביר
parseUrl(url);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
url |
string | כתובת ה-URL המלאה שתעבור ניתוח. |
הרשאות משויכות
ללא.
returnResponse
הפונקציה מנקה את התגובה שהוגדרה בעבר על ידי תבניות אחרות באמצעות ממשקי ה-API שמשמשים לשינוי התגובה, כולל setCookie, setPixelResponse, setResponseBody, setResponseHeader ו-setResponseStatus. ברירת המחדל היא קוד סטטוס HTTP 200, גוף ריק ללא כותרות.
מומלץ להשתמש ב-API הזה מתבנית לקוח.
תחביר
returnResponse();
דוגמה
הרשאות משויכות
runContainer
הפעלה של הלוגיקה של מאגר התגים (משתנים, טריגרים ותגים) בהיקף של אירוע. אם קוראים ל-API הזה במהלך ההרצה של הקונטיינר, הקונטיינר מופעל מחדש.
פונקציות הקריאה החוזרת onComplete
ו-onStart
מקבלות פונקציה שנקראת bindToEvent
. אפשר להשתמש ב-bindToEvent
כדי להריץ ממשק API בהקשר של האירוע.
פרטים נוספים זמינים בדוגמה addEventCallback.
מומלץ להשתמש ב-API הזה מתבנית לקוח.
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
// Runs the container with a simple pageview event and then returns a response.
runContainer({'event_name': 'pageview'}, () => returnResponse());
תחביר
runContainer(event, onComplete, onStart);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
event |
object | הפרמטרים של האירוע. |
onComplete |
function | קריאה חוזרת (callback) שמופיעה אחרי שכל התגים מופעלים. |
onStart |
function | קריאה חוזרת (callback) שמופיעה באופן מיידי, לפני שהתגים מתחילים לפעול. |
הרשאות משויכות
sendEventToGoogleAnalytics
הפונקציה שולחת אירוע יחיד באמצעות נתוני אירועים נפוצים אל Google Analytics ומחזירה promise שמתקבלת כאובייקט עם מפתח location
או כאובייקט עם מפתח reason
. היעד, Google Analytics 4, מבוסס על מזהה המדידה בנתוני האירוע.
השדה location
מוגדר לכותרת location
, אם היא קיימת.
דוגמה
const logToConsole = require('logToConsole');
const sendEventToGoogleAnalytics = require('sendEventToGoogleAnalytics');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
// Sends an event to Google Analytics and returns failure if the request did not
// succeed. Additionally, if the request resulted in a redirect request, the
// code nominates a redirect response to be returned.
sendEventToGoogleAnalytics(event).then((response) => {
if (response.location) {
setResponseHeader('location', response.location);
setResponseStatus(302);
} else {
setResponseStatus(200);
}
data.gtmOnSuccess();
}).catch((error) => {
logToConsole(error.reason);
setResponseStatus(500);
data.gtmOnFailure();
});
תחביר
sendEventToGoogleAnalytics(event);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
event |
object | האירוע בפורמט Unified Schema. |
הרשאות משויכות
נדרשת ההרשאה send_http
. צריך להגדיר את ההרשאה כך שתאפשר גישה לפחות ל:
- מתן הרשאה ל-Google Domains
sendHttpGet
הפונקציה שולחת בקשת HTTP GET לכתובת ה-URL שצוינה ומחזירה promise שמתקבלת בו התוצאה אחרי שהבקשה מסתיימת או שתוקף הזמן שלה פג.
התוצאה שמוחזרת היא אובייקט שמכיל שלושה מפתחות: statusCode
, headers
ו-body
. אם הבקשה נכשלה (למשל, כתובת URL לא חוקית, אין מסלול למארח, SSL negotiation failure וכו'), ההתחייבות תידחה עם הערך: {reason:
'failed'}
. אם האפשרות timeout
הוגדרה והזמן פג, ההתחייבות תידחה עם הערך: {reason: 'timed_out'}
דוגמה
const sendHttpGet = require('sendHttpGet');
// Returns the response body as the value for a variable.
return sendHttpGet('https://example.com/item/' + data.itemId, {
headers: {key: 'value'},
timeout: 500,
}).then((result) => result.body, () => undefined);
תחביר
sendHttpGet(url[, options]);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
url |
string | כתובת ה-URL המבוקשת. |
options
|
object | אפשרויות בקשה אופציונליות. (מידע נוסף זמין בקטע אפשרויות בהמשך). |
אפשרויות
אפשרות | סוג | תיאור |
---|---|---|
headers |
string | כותרות בקשה נוספות. |
timeout
|
number | הזמן הקצוב לתפוגה, באלפיות שנייה, לפני שהבקשה מבוטלת. ברירת המחדל היא 15000 . |
authorization
|
object | אובייקט הרשאה אופציונלי מהקריאה ל-getGoogleAuth , לצורך הכללת כותרות הרשאה כששולחים בקשות ל-googleapis.com . |
הרשאות משויכות
sendHttpRequest
הפונקציה שולחת בקשת HTTP לכתובת ה-URL שצוינה ומחזירה promise שמתמלא בתגובה לאחר השלמת הבקשה או לאחר תפוגת הזמן הקצוב.
התוצאה שמוחזרת היא אובייקט שמכיל שלושה מפתחות: statusCode
, headers
ו-body
. אם הבקשה נכשלה (למשל, כתובת URL לא חוקית, אין מסלול למארח, SSL negotiation failure וכו'), ההתחייבות תידחה עם הערך: {reason:
'failed'}
. אם האפשרות timeout
הוגדרה והזמן פג, ההתחייבות תידחה עם הערך: {reason: 'timed_out'}
דוגמה
const sendHttpRequest = require('sendHttpRequest');
const setResponseBody = require('setResponseBody');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
const postBody = 'interaction=click&campaign=promotion&medium=email';
// Sends a POST request and nominates response based on the response to the POST
// request.
sendHttpRequest('https://example.com/collect', {
headers: {key: 'value'},
method: 'POST',
timeout: 500,
}, postBody).then((result) => {
setResponseStatus(result.statusCode);
setResponseBody(result.body);
setResponseHeader('cache-control', result.headers['cache-control']);
});
תחביר
sendHttpRequest(url[, options[, body]]);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
url |
string | כתובת ה-URL המבוקשת. |
options
|
object | אפשרויות בקשה אופציונליות. (מידע נוסף זמין בקטע אפשרויות בהמשך). |
body |
string | גוף בקשה אופציונלי. |
אפשרויות
אפשרות | סוג | תיאור |
---|---|---|
headers |
string | כותרות בקשה נוספות. |
method |
object | שיטת הבקשה. ברירת המחדל היא GET . |
timeout
|
number | הזמן הקצוב לתפוגה, באלפיות שנייה, לפני שהבקשה מבוטלת. ברירת המחדל היא 15000 . |
authorization
|
object | אובייקט הרשאה אופציונלי מהקריאה ל-getGoogleAuth , לצורך הכללת כותרות הרשאה כששולחים בקשות ל-googleapis.com . |
הרשאות משויכות
sendPixelFromBrowser
שליחת פקודה לדפדפן כדי לטעון את כתובת ה-URL שצוינה בתור תג <img>
. פרוטוקול הפקודות הזה נתמך בתגי האינטרנט של Google Tag ל-GA4 ובתגי האינטרנט של Google Analytics: אירוע GA. צריך להגדיר את כתובת ה-URL של מאגר התגים של השרת. פרטים נוספים זמינים בהוראות.
ה-API הזה מחזיר את הערך false
אם הבקשה הנכנסת לא תומכת בפרוטוקול הפקודה, או אם התשובה כבר נמחקה. אחרת, ה-API מחזיר את הערך true
.
דוגמה:
const sendPixelFromBrowser = require('sendPixelFromBrowser');
sendPixelFromBrowser('https://example.com/?id=123');
תחביר
sendPixelFromBrowser(url)
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
url |
string | כתובת ה-URL שרוצים לשלוח לדפדפן. |
הרשאות משויכות
setCookie
הגדרה או מחיקה של קובץ cookie עם האפשרויות שצוינו.
כדי למחוק קובץ cookie, צריך להגדיר קובץ cookie עם אותו נתיב ודומיין שבהם קובץ ה-cookie נוצר, ולהקצות לו ערך תפוגה שכבר חלף, למשל "Thu, 01 Jan 1970 00:00:00 GMT"
.
חשוב לזכור שצריך להפעיל את returnResponse כדי שהתגובה תישלח בחזרה ללקוח.
דוגמה
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
תחביר
setCookie(name, value[, options[, noEncode]]);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
name |
string | שם קובץ ה-cookie. השם לא תלוי-רישיות. |
value |
string | ערך קובץ ה-cookie. |
options |
object | מאפייני קובץ cookie אופציונליים:domain, expires, fallbackDomain,httpOnly, max- age, path, secure, ו-sameSite. (אפשרויות בהמשך). |
noEncode |
boolean |
אם הערך הוא True, ערך קובץ ה-Cookie לא יקודר. ברירת המחדל היא false .
|
domain: המארח שאליו יישלח קובץ ה-Cookie. אם מוגדר הערך המיוחד auto, המארח יחושב באופן אוטומטי לפי האסטרטגיה הבאה:
- ה-eTLD+1 של הכותרת
Forwarded
, אם היא קיימת. - ה-eTLD+1 של הכותרת
X-Forwarded-Host
, אם היא קיימת. - ה-eTLD+1 של הכותרת
Host
.
- ה-eTLD+1 של הכותרת
expires: משך החיים המקסימלי של קובץ ה-cookie. זו חייבת להיות מחרוזת תאריך בפורמט UTC, למשל: "Sat, 26 Oct 1985 08:21:00 GMT". אם גם
expires
וגםmax-age
מוגדרים, הערך שלmax-age
מקבל קדימות.httpOnly: אם הערך הוא
true
, האפשרות הזו אוסרת על JavaScript לגשת לקובץ ה-cookie.max-age: מספר השניות עד שתוקף קובץ ה-cookie יפוג. אם מזינים אפס או מספר שלילי, התוקף של קובץ ה-Cookie יפוג באופן מיידי. אם גם
expires
וגםmax-age
מוגדרים, הערך שלmax-age
מקבל קדימות.path: נתיב שחייב להופיע בכתובת ה-URL המבוקשת, אחרת הדפדפן לא ישלח את הכותרת Cookie.
secure: אם ההגדרה היא
true
, קובץ ה-cookie נשלח לשרת רק כשמתבצעת בקשה מנקודת קצה מסוגhttps:
.sameSite: מצהיר שאסור לשלוח קובץ cookie עם בקשות ממקורות שונים. הערך חייב להיות
'strict'
,'lax'
או'none'
.
הרשאות משויכות
setPixelResponse
הגדרת גוף התגובה כקובץ GIF בגודל 1x1, הגדרת הכותרת Content-Type כ-'image/gif', הגדרת כותרות שמשמשות לשמירת נתונים במטמון כך שסוכנויות משתמשים לא ייצרו מטמון של התגובה והגדרת סטטוס התגובה כ-200.
חשוב לזכור שצריך להפעיל את returnResponse כדי שהתגובה תישלח בחזרה ללקוח.
תחביר
setPixelResponse();
הרשאות משויכות
נדרשת ההרשאה access_response
. צריך להגדיר את ההרשאה כך שתאפשר גישה לפחות:
headers
– צריך להעניק הרשאה למפתחות הבאיםcontent-type
cache-control
expires
pragma
body
status
setResponseBody
הגדרת גוף התגובה לארגומנט.
חשוב לזכור שצריך להפעיל את returnResponse כדי שהתגובה תישלח בחזרה ללקוח.
תחביר
setResponseBody(body[, encoding]);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
body |
string | הערך להגדרה כגוף התגובה. |
encoding |
string |
קידוד התווים של תוכן התגובה (ברירת המחדל היא 'utf8' ). הערכים הנתמכים הם 'ascii' , 'utf8' , 'utf16le' , 'ucs2' , 'base64' , 'latin1' , 'binary' ו-'hex' .
|
הרשאות משויכות
נדרשת ההרשאה access_response
. צריך להגדיר את ההרשאה כך שתאפשר גישה לפחות:
body
setResponseHeader
הגדרת כותרת בתגובה שתוחזר. אם כותרת עם השם הזה (ללא קשר לאותיות רישיות) הוגדרה בעבר על ידי ה-API הזה, הקריאה האחרונה תמחק או תכתוב מחדש את הערך שהוגדר על ידי מבצע הקריאה הקודם.
חשוב לזכור שצריך להפעיל את returnResponse כדי שהתגובה תישלח בחזרה ללקוח.
תחביר
setResponseHeader(name, value);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
name |
string | שם הכותרת. שמות של כותרות HTTP הם לא תלויי אותיות רישיות, ולכן שם הכותרת יהיה באותיות קטנות. |
value |
string undefined | ערך הכותרת. אם הערך הוא null או לא מוגדר, הכותרת בעלת השם תימחק מהתגובה שתוחזר. |
הרשאות משויכות
נדרשת ההרשאה access_response
. צריך להגדיר את ההרשאה כך שתאפשר גישה לפחות:
headers
setResponseStatus
הגדרת קוד הסטטוס של HTTP בתגובה שתוחזר.
חשוב לזכור שצריך להפעיל את returnResponse כדי שהתגובה תישלח בחזרה ללקוח.
תחביר
setResponseStatus(statusCode);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
statusCode |
number | קוד מצב ה-HTTP שיוחזר. |
הרשאות משויכות
נדרשת ההרשאה access_response
. צריך להגדיר את ההרשאה כך שתאפשר גישה לפחות:
status
sha256
הפונקציה מחשבת את הגיבוב SHA-256 של הקלט ומפעילה קריאה חוזרת (callback) עם הגיבוב המקודד ב-base64, אלא אם באובייקט options
צוין קידוד פלט אחר.
החתימה וההתנהגות של ה-API תואמים ל-API של sha256
לקונטיינרים של אינטרנט. עם זאת, בתבניות בהתאמה אישית בקונטיינרים של שרתים צריך להשתמש ב-API של sha256Sync
כדי לקבל קוד פשוט יותר.
דוגמה
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256 = require('sha256');
sha256('inputString', (digest) => {
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
});
sha256('inputString', (digest) => {
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
}, {outputEncoding: 'hex'});
תחביר
sha256(input, onSuccess, options = undefined);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
input |
string | המחרוזת ליצירת גיבוב. |
onSuccess |
function |
הקריאה מתבצעת עם הסיכום שנוצר, שמקודד ב-base64, אלא אם באובייקט options צוין קידוד פלט אחר.
|
options |
object |
אובייקט אפשרויות אופציונלי לציון קידוד הפלט. אם הוא מצוין, האובייקט צריך להכיל את המפתח outputEncoding עם הערך base64 או hex .
|
הרשאות משויכות
ללא.
sha256Sync
הפונקציה מחשבת את סיכום SHA-256 של הקלט ומחזירה אותו, בקידוד base64, אלא אם אובייקט options
מציין קידוד פלט אחר.
דוגמה
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256Sync = require('sha256Sync');
const digestBase64 = sha256Sync('inputString');
const digestHex = sha256Sync('inputString', {outputEncoding: 'hex'});
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestBase64));
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestHex));
תחביר
sha256Sync(input, options = undefined);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
input |
string | המחרוזת ליצירת גיבוב. |
options |
object |
אובייקט אפשרויות אופציונלי לציון קידוד הפלט. אם הוא מצוין, האובייקט צריך להכיל את המפתח outputEncoding עם הערך base64 או hex .
|
הרשאות משויכות
ללא.
templateDataStorage
הפונקציה מחזירה אובייקט עם שיטות לגישה לאחסון נתוני התבנית. אחסון נתוני התבנית מאפשר לשתף נתונים בין פעולות של תבנית אחת. נתונים שמאוחסנים באחסון הנתונים של התבנית נשארים בשרת שבו פועל הקונטיינר. ברוב המקרים יש כמה שרתים שמפעילים את הקונטיינר, ולכן שמירת נתונים באחסון נתוני התבניות לא מבטיחה שלכל בקשה שתישלח לאחר מכן תהיה גישה לנתונים.
המילה 'data' בשם 'templateDataStorage' מתייחסת לעובדה שאפשר לאחסן באמצעות ה-API הזה רק סוגי נתונים פשוטים, שאינם פונקציות. כל הפונקציות או ההפניות לפונקציות שיועברו ל-API יישמרו כ-null
במקום זאת.
תחביר
const templateDataStorage = require('templateDataStorage');
// Returns a copy of the value stored for the given key, or null if nothing
// is stored with that key.
templateDataStorage.getItemCopy(key);
// Stores a copy of the value for the given key (or removes the data stored
// for the given key if the input value is null).
templateDataStorage.setItemCopy(key, value);
// Removes the value stored for the given key, if present.
templateDataStorage.removeItem(key);
// Deletes all values stored for the current template.
templateDataStorage.clear();
דוגמה
const sendHttpGet = require('sendHttpGet');
const setResponseBody = require('setResponseBody');
const setResponseStatus = require('setResponseStatus');
const templateDataStorage = require('templateDataStorage');
// Check to see if the item is in the cache.
const cachedBody = templateDataStorage.getItemCopy(data.key);
if (cachedBody) {
setResponseBody(cachedBody);
data.gtmOnSuccess();
return;
}
sendHttpGet(data.url).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
setResponseBody(result.body);
templateDataStorage.setItemCopy(data.key, result.body);
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
setResponseStatus(result.statusCode);
});
הרשאות משויכות
testRegex
בדיקה של מחרוזת מול ביטוי רגולרי שנוצר באמצעות createRegex
API. הפונקציה מחזירה את הערך true
אם יש התאמה לביטוי הרגולרי. אחרת, הפונקציה מחזירה את הערך false
.
ביטוי רגולרי שנוצר באמצעות הדגל הגלובלי הוא בעל מצב (stateful). פרטים נוספים זמינים במסמכי התיעוד של RegExp.
דוגמה
const createRegex = require('createRegex');
const testRegex = require('testRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// createRegex returns null if the regex is invalid or Re2 is not available.
if (domainRegex === null) return;
// Returns true
testRegex(domainRegex, 'example.com/foobar');
תחביר
testRegex(regex, string);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
regex |
אובייקט | ביטוי ה-regex לבדיקה, שמוחזרים מ-createRegex API. |
string |
string | מחרוזת לבדיקה. |
הרשאות משויכות
ללא.
toBase64
קידוד מחרוזת כ-base64 או כ-base64url. ברירת המחדל היא קידוד base64.
תחביר
toBase64(input, options);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
input |
string | המחרוזת שרוצים לקודד. |
options
|
object | הגדרת API אופציונלית. (מידע נוסף זמין בקטע אפשרויות בהמשך). |
אפשרויות
אפשרות | סוג | תיאור | גירסת מינימום |
---|---|---|---|
urlEncoding
|
boolean | אם הערך הוא true, התוצאה תקודד בפורמט base64url . |
1.0.0 |
דוגמה
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
הרשאות משויכות
ללא.
BigQuery
הפונקציה מחזירה אובייקט שמספק פונקציות של BigQuery.
הפונקציה BigQuery.insert
מאפשרת לכתוב נתונים בטבלה של BigQuery. הפונקציה מחזירה promise שמתבצע אחרי הוספה מוצלחת או נדחה אחרי שגיאה.
כשההוספה מסתיימת בהצלחה, הפתרון של ההבטחה מתקבל ללא ארגומנטים.
אם ההוספה נכשלת, ה-promise נדחה עם רשימה של אובייקטים שמכילים את הסיבה לשגיאה, ואולי גם אובייקט שורה אם מתרחשת שגיאה. יכול להיות שחלק מהבקשה יושלם בהצלחה, וחלקים אחרים לא. במקרה כזה, הבטחה נדחית עם רשימת שגיאות לכל שורה עם אובייקט שורה כדי להבדיל בין השורות שנוספו (ראו דוגמאות לשגיאות בהמשך). למידע נוסף, אפשר לעיין במאמר בנושא הודעות שגיאה ב-BigQuery.
תחביר
BigQuery.insert(connectionInfo, rows[, options]);
פרמטר | סוג | תיאור |
---|---|---|
connectionInfo |
object |
הגדרת המידע הנדרש כדי להתחבר לטבלה של BigQuery. יש פרמטר אופציונלי אחד ושני פרמטרים נדרשים:
|
rows |
מערך | השורות שרוצים להוסיף לטבלה. |
options |
object | אפשרויות בקשה אופציונליות. האפשרויות הנתמכות הן: ignoreUnknownValues ו-skipInvalidRows. המערכת מתעלמת ממפתחות אפשרות לא מוכרים. (אפשרויות בהמשך). |
פרמטר | סוג | תיאור |
---|---|---|
ignoreUnknownValues |
boolean | אם הערך מוגדר כ-true , המערכת תקבל שורות שמכילות ערכים שלא תואמים לסכימה. המערכת מתעלמת מהערכים הלא מוכרים. ברירת המחדל היא false . |
skipInvalidRows |
boolean | אם הערך מוגדר כ-true , המערכת תוסיף את כל השורות התקינות של הבקשה, גם אם יש שורות לא חוקיות. ברירת המחדל היא false . |
אם מופיעה שגיאה מסוג 'לא נמצא מודול', סביר להניח שבקונטיינר השרת פועלת גרסה ישנה יותר של התמונה שלנו, שעדיין לא כללה את מודול BigQuery. צריך לפרוס מחדש את מאגר השרתים עם אותן הגדרות באמצעות סקריפט הפריסה שלנו. המודול ייכלל באופן אוטומטי בסיום הפעולה.
שגיאה שאינה שגיאת הטמעה כוללת בדרך כלל אובייקט שגיאה אחד עם מפתח reason
:
[{reason: 'invalid'}]
שגיאת הטמעה יכולה להכיל כמה אובייקטי שגיאה עם מערך errors
ואובייקט row
. הדוגמה הבאה היא של תגובת שגיאה מהוספה של שתי שורות, שבהן יש שגיאה רק בשורה אחת:
[
{
"errors": [
{
"reason":"invalid"
}
],
"row": {
"string_col":"otherString",
"number_col":-3,
"bool_col":3
}
},
{
"errors": [
{
"reason":"stopped"
}
],
"row": {
"string_col":"stringValue",
"number_col":5,
"bool_col:false
}
}
]
דוגמה
const BigQuery = require('BigQuery');
const connectionInfo = {
'projectId': 'gcp-cloud-project-id',
'datasetId': 'destination-dataset',
'tableId': 'destination-table',
};
const rows = [{
'column1': 'String1',
'column2': 1234,
}];
const options = {
'ignoreUnknownValues': true,
'skipInvalidRows': false,
};
BigQuery.insert(connectionInfo, rows, options)
.then(data.gtmOnSuccess, data.gtmOnFailure);
הרשאות משויכות
Firestore
הפונקציה מחזירה אובייקט שמספק פונקציות של Firestore.
ה-API הזה תומך רק ב-Firestore במצב Native, ולא ב-Firestore במצב Datastore. בנוסף, ה-API תומך רק בשימוש במסד הנתונים שמוגדר כברירת מחדל.
Firestore.read
הפונקציה Firestore.read
קוראת נתונים ממסמך Firestore ומחזירה promise שמתקבל ממנו אובייקט שמכיל שני מפתחות: id
ו-data
. אם המסמך לא קיים, הבטחה תידחה עם אובייקט שמכיל מפתח reason
שווה ל-not_found
.
תחביר
Firestore.read(path[, options]);
פרמטר | סוג | תיאור |
---|---|---|
path |
string | הנתיב למסמך או לאוסף. אסור שהיא תתחיל או תסתיים ב-'/'. |
options |
object | אפשרויות בקשה אופציונליות. האפשרויות הנתמכות הן: projectId, disableCache ו-transaction. המערכת מתעלמת ממפתחות אפשרות לא מוכרים. (אפשרויות בהמשך). |
פרמטר | סוג | תיאור |
---|---|---|
projectId |
string | אופציונלי. מזהה הפרויקט ב-Google Cloud Platform. אם השדה הזה לא יצוין, הערך של projectId יוחזר ממשתנה הסביבה GOOGLE_CLOUD_PROJECT , כל עוד ההרשאה של access_firestore למזהה הפרויקט מוגדרת כ-* או כ-GOOGLE_CLOUD_PROJECT . אם מאגר השרתים פועל ב-Google Cloud, הערך של GOOGLE_CLOUD_PROJECT כבר יוגדר כמזהה הפרויקט ב-Google Cloud. |
disableCache |
boolean | אופציונלי. קובעת אם להשבית את המטמון או לא. האחסון במטמון מופעל כברירת מחדל, והתוצאות יישמרו במטמון למשך זמן הבקשה. |
transaction |
string | אופציונלי. הערך שאוחזר מ-Firestore.runTransaction(). מסמנים את הפעולה לשימוש בתוך עסקה. |
דוגמה
const Firestore = require('Firestore');
return Firestore.read('collection/document', {
projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);
Firestore.write
הפונקציה Firestore.write
כותבת נתונים למסמך או לאוסף ב-Firestore. אם הנתיב הוא לאוסף, המערכת תיצור מסמך עם מזהה שנוצר באופן אקראי. אם הנתיב הוא למסמך והוא לא קיים, הוא ייווצר. ה-API הזה מחזיר הבטחה שמתקבלת בה המזהה של המסמך שנוסף או שונה. אם משתמשים באפשרות העסקה, ה-API עדיין מחזיר הבטחה, אבל לא יכיל את המזהה כי הכתיבה מתבצעת בקבוצות.
תחביר
Firestore.write(path, input[, options]);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
path |
string | הנתיב למסמך או לאוסף. אסור שהיא תתחיל או תסתיים ב-'/'. |
input |
object | הערך שרוצים לכתוב במסמך. אם מגדירים את אפשרות המיזוג, ה-API ימזג את המפתחות מהקלט למסמך. |
options |
object | אפשרויות בקשה אופציונליות. האפשרויות הנתמכות הן: projectId, merge ו-transaction. המערכת מתעלמת ממפתחות אפשרות לא מוכרים. (אפשרויות בהמשך). |
פרמטר | סוג | תיאור |
---|---|---|
projectId |
string | אופציונלי. מזהה הפרויקט ב-Google Cloud Platform. אם השדה הזה לא יצוין, הערך של projectId יוחזר ממשתנה הסביבה GOOGLE_CLOUD_PROJECT , כל עוד ההרשאה של access_firestore למזהה הפרויקט מוגדרת כ-* או כ-GOOGLE_CLOUD_PROJECT . אם מאגר השרתים פועל ב-Google Cloud, הערך של GOOGLE_CLOUD_PROJECT כבר יוגדר כמזהה הפרויקט ב-Google Cloud. |
merge |
boolean | אופציונלי. אם הערך מוגדר כ-true , המפתחות מהקלט ימוזגו למסמך. אחרת, השיטה תחליף את כל המסמך. ברירת המחדל היא false . |
transaction |
string | אופציונלי. הערך שאוחזר מ-Firestore.runTransaction(). מסמנים את הפעולה לשימוש בתוך עסקה. |
דוגמה
const Firestore = require('Firestore');
const input = {key1: 'value1', key2: 12345};
Firestore.write('collection/document', input, {
projectId: 'gcp-cloud-project-id',
merge: true,
}).then((id) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
Firestore.query
הפונקציה Firestore.query
שולחת שאילתה לאוסף הנתון ומחזירה הבטחה שמתקבלת ממנה מערך של מסמכי Firestore שתואמים לתנאי השאילתה. אובייקט המסמך ב-Firestore זהה לזה שמופיע למעלה ב-Firestore.read
. אם אין מסמכים שתואמים לתנאי השאילתה, הפתרון של ההבטחה שתוחזר יהיה מערך ריק.
תחביר
Firestore.query(collection, queryConditions[, options]);
פרמטר | סוג | תיאור |
---|---|---|
collection |
string | הנתיב לאוסף. אסור שהיא תתחיל או תסתיים ב-'/'. |
queryConditions |
מערך | מערך של תנאי שאילתות. כל שאילתה מגיעה בצורת מערך עם שלושה ערכים: key, operator ו-expectedValue. E.g.:
[[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]]. התנאים מחוברים באמצעות AND כדי ליצור את תוצאת השאילתה. ב אופרטורים של שאילתות ב-Firestore מפורטת רשימה של אופרטורים תואמים של שאילתות. |
options |
object | אפשרויות בקשה אופציונליות. האפשרויות הנתמכות הן: projectId, disableCache, limit ו-transaction. המערכת מתעלמת ממפתחות אפשרות לא מוכרים. (אפשרויות בהמשך). |
פרמטר | סוג | תיאור |
---|---|---|
projectId |
string | אופציונלי. מזהה הפרויקט ב-Google Cloud Platform. אם השדה הזה לא יצוין, הערך של projectId יוחזר ממשתנה הסביבה GOOGLE_CLOUD_PROJECT , כל עוד ההרשאה של access_firestore למזהה הפרויקט מוגדרת כ-* או כ-GOOGLE_CLOUD_PROJECT . אם מאגר השרתים פועל ב-Google Cloud, הערך של GOOGLE_CLOUD_PROJECT כבר יוגדר כמזהה הפרויקט ב-Google Cloud. |
disableCache |
boolean | אופציונלי. קובעת אם להשבית את המטמון או לא. האחסון במטמון מופעל כברירת מחדל, והתוצאות יישמרו במטמון למשך זמן הבקשה. |
limit |
number | אופציונלי. שינוי מספר התוצאות המקסימלי שהוחזרו על ידי השאילתה. ברירת המחדל היא 5. |
transaction |
string | אופציונלי. הערך שאוחזר מ-Firestore.runTransaction(). מסמנים את הפעולה לשימוש בתוך עסקה. |
דוגמה
const Firestore = require('Firestore');
const queries = const queries = [['id', '==', '5']];
return Firestore.query('collection', queries, {
projectId: 'gcp-cloud-project-id',
limit: 1,
}).then((documents) => documents[0].data.key, () => undefined);
Firestore.runTransaction
הפונקציה Firestore.runTransaction
מאפשרת למשתמש לקרוא ולכתוב באופן אטומי מ-Firestore. אם מתרחשת כתיבה בו-זמנית או התנגשויות אחרות בעסקאות, המערכת תנסה שוב לבצע את העסקה עד פעמיים. אם הניסיון נכשל אחרי שלושה ניסיונות בסך הכול, ה-API ידחה אותו עם הודעת שגיאה. ה-API הזה מחזיר הבטחה שמתקבלת ממנה מערך של מזהי מסמכים, לכל פעולת כתיבה, אם העסקה מוצלחת, וסרב עם השגיאה אם היא נכשלת.
תחביר
Firestore.runTransaction(callback[, options]);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
callback |
function | קריאה חוזרת (callback) שמופעל עם מחרוזת של מזהה עסקה. אפשר להעביר את מזהה העסקה בקריאות ל-API לצורך קריאה, כתיבה או שליחת שאילתה. פונקציית הקריאה החוזרת הזו חייבת להחזיר promise. הקריאה החוזרת יכולה לפעול עד שלוש פעמים לפני שהיא נכשלת. |
options |
object | אפשרויות בקשה אופציונליות. האפשרות הנתמכת היחידה היא projectId. המערכת מתעלמת ממפתחות אפשרות לא מוכרים. (אפשרויות בהמשך). |
פרמטר | סוג | תיאור |
---|---|---|
projectId |
string | אופציונלי. מזהה הפרויקט ב-Google Cloud Platform. אם השדה הזה לא יצוין, הערך של projectId יוחזר ממשתנה הסביבה GOOGLE_CLOUD_PROJECT , כל עוד ההרשאה של access_firestore למזהה הפרויקט מוגדרת כ-* או כ-GOOGLE_CLOUD_PROJECT . אם מאגר השרתים פועל ב-Google Cloud, הערך של GOOGLE_CLOUD_PROJECT כבר יוגדר כמזהה הפרויקט ב-Google Cloud. |
דוגמה
const Firestore = require('Firestore');
const path = 'collection/document';
const projectId = 'gcp-cloud-project-id';
Firestore.runTransaction((transaction) => {
const transactionOptions = {
projectId: projectId,
transaction: transaction,
};
// Must return a promise.
return Firestore.read(path, transactionOptions).then((result) => {
const newInputCount = result.data.inputCount + 1;
const input = {key1: 'value1', inputCount: newInputCount};
return Firestore.write(path, input, transactionOptions);
});
}, {
projectId: projectId
}).then((ids) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
שגיאות זמינות בכל פונקציה של Firestore, והן נדחות עם אובייקט שמכיל מפתח reason
:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
הסיבות לשגיאות יכולות לכלול, בין היתר, את קודי השגיאות של API ל-REST ב-Firestore.
הרשאות משויכות
JSON
הפונקציה מחזירה אובייקט שמספק פונקציות JSON.
הפונקציה parse()
מפענחת מחרוזת JSON כדי ליצור את הערך או האובייקט שמתוארים במחרוזת. אם אי אפשר לנתח את הערך (למשל, JSON בפורמט שגוי), הפונקציה תחזיר את הערך undefined
. אם ערך הקלט הוא לא מחרוזת, הקלט יוחלץ למחרוזת.
הפונקציה stringify()
ממירה את הקלט למחרוזת JSON. אם אי אפשר לנתח את הערך (למשל, אם יש באובייקט מחזור), השיטה מחזירה את הערך undefined
.
דוגמה
const JSON = require('JSON');
// The JSON input string is converted to an object.
const object = JSON.parse('{"foo":"bar"}');
// The input object is converted to a JSON string.
const str = JSON.stringify({foo: 'bar'});
תחביר
JSON.parse(stringInput);
JSON.stringify(value);
הרשאות משויכות
ללא.
Math
אובייקט שמספק פונקציות Math
.
תחביר
const Math = require('Math');
// Retrieve the absolute value.
const absolute = Math.abs(-3);
// Round the input down to the nearest integer.
const roundedDown = Math.floor(3.6);
// Round the input up to the nearest integer.
const roundedUp = Math.ceil(2.2);
// Round the input to the nearest integer.
const rounded = Math.round(3.1);
// Return the largest argument.
const biggest = Math.max(1, 3);
// Return the smallest argument.
const smallest = Math.min(3, 5);
// Return the first argument raised to the power of the second argument.
const powerful = Math.pow(3, 1);
// Return the square root of the argument.
const unsquared = Math.sqrt(9);
פרמטרים
הפרמטרים של פונקציות מתמטיות מומרו למספרים.
הרשאות משויכות
ללא.
Messages
ממשקי ה-API הבאים פועלים יחד כדי לאפשר העברת הודעות בין חלקים שונים של מאגר.
addMessageListener
הוספת פונקציה שמאזינה להודעה מסוג מסוים. כשנשלחת הודעה מהסוג הזה באמצעות ה-API של sendMessage
(בדרך כלל על ידי תג), הפונקציה הלא סטריאוטיפית (callback) מופעלת באופן סינכרוני. הקריאה החוזרת מופעלת עם שני פרמטרים:
messageType:string
message:Object
אם הקריאה החוזרת מתווספת ללקוח, היא תקבל הודעות מכל האירועים שהלקוח יוצר. אם פונקציית ה-callback אמורה לקבל הודעות רק מאירוע מסוים, צריך לקשר את ה-API הזה לאירוע באמצעות bindToEvent
בפונקציה onStart
של ה-API runContainer
. דוגמה.
תחביר
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
messageType |
string | סוג ההודעה שרוצים להאזין לה. אם הערך הוא לא מחרוזת, הוא יאולץ להיות מחרוזת. |
callback |
function | פונקציית ה-callback שתופעל כשנשלחת הודעה מסוג ההודעה הרלוונטי. אם הקריאה החוזרת היא לא פונקציה, ה-API לא יבצע שום פעולה. |
דוגמה
const addMessageListener = require('addMessageListener');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever a tag sends a 'send_pixel' message.
});
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((event, i) => {
runContainer(events[i], /* onComplete= */ () => {
if (events.length === ++eventsCompleted) {
returnResponse();
}
}, /* onStart= */ (bindToEvent) => {
if (i === 0) {
bindToEvent(addMessageListener)('send_pixel', (messageType, message) => {
// This will be called whenever a tag for the first event sends a
// 'send_pixel' message.
});
}
});
});
הרשאות משויכות
נדרשת ההרשאה use_message
. צריך להגדיר את ההרשאה כך שתאפשר לפחות:
- סוג הודעה עם
Usage
שלlisten
אוlisten_and_send
.
hasMessageListener
הפונקציה מחזירה את הערך True אם נוספה תשובה להודעה לסוג ההודעה הנתון. אחרת, הפונקציה מחזירה את הערך false.
תחביר
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
הרשאות משויכות
ללא.
sendMessage
שליחת הודעה מהסוג שצוין למאזין רשום. אפשר להשתמש בזה כדי לשלוח הודעות מתג בחזרה ללקוח שהפעיל את הקונטיינר.
תחביר
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
messageType |
string | סוג ההודעה שרוצים לשלוח. אם הערך הוא לא מחרוזת, הוא יוחלץ למחרוזת. |
message |
object | ההודעה שרוצים לשלוח. אם ההודעה היא לא אובייקט, ה-API לא יבצע שום פעולה. |
הרשאות משויכות
נדרשת ההרשאה use_message
. צריך להגדיר את ההרשאה כך שתאפשר לפחות:
- סוג הודעה עם
Usage
שלlisten_and_send
אוsend
.
Object
הפונקציה מחזירה אובייקט שמספק שיטות Object
.
השיטה keys()
מספקת את ההתנהגות של Object.keys() בספרייה הרגילה. הפונקציה מחזירה מערך של שמות המאפיינים הניתנים למנייה של אובייקט נתון, באותו הסדר שבו חזרה של for...in...
מחזירה אותם. אם ערך הקלט הוא לא אובייקט, הוא יאולץ להיות אובייקט.
השיטה values()
מספקת את ההתנהגות של Object.values() בספרייה הרגילה. הפונקציה מחזירה מערך של ערכי המאפיינים הניתנים לספירה של אובייקט נתון, באותו הסדר שבו עשו זאת לולאה for...in...
. אם ערך הקלט הוא לא אובייקט, הוא יוחלץ לאובייקט.
השיטה entries()
מספקת את ההתנהגות של Object.entries() בספרייה הרגילה. הפונקציה מחזירה מערך של זוגות [key, value]
של המאפיין הניתן למנייה של אובייקט נתון, באותו סדר שבו חזרה של for...in...
הייתה מחזירה אותם. אם ערך הקלט הוא לא אובייקט, הוא יאולץ להיות אובייקט.
השיטה freeze()
מספקת את ההתנהגות Object.freeze() של הספרייה הרגילה. אי אפשר לשנות אובייקט שהוקפא. הקפאת אובייקט מונעת הוספה של מאפיינים חדשים, הסרה של מאפיינים קיימים ושינוי של ערכי המאפיינים הקיימים. freeze()
מחזירה את אותו אובייקט שהוענק לה. ארגומנט פרימיטיבי או null יטופלו כאילו הם אובייקט קפוא, והם יחזרו.
השיטה delete()
מספקת את ההתנהגות של אופרטור המחיקה בספרייה הרגילה. הפונקציה מסירה את המפתח הנתון מהאובייקט, אלא אם האובייקט קפוא.
בדומה למפעיל המחיקה בספרייה הרגילה, הפונקציה מחזירה את הערך true
אם ערך הקלט הראשון (objectInput
) הוא אובייקט שלא קופא, גם אם ערך הקלט השני (keyToDelete
) מציין מפתח שלא קיים. בכל שאר המקרים, הפונקציה מחזירה את הערך false
. עם זאת, הוא שונה מאופרטור המחיקה של ספריית Standard בדרכים הבאות:
keyToDelete
לא יכול להיות מחרוזת שמפרידה בין הנקודות ומציינת מפתח בתצוגת עץ.- אי אפשר להשתמש ב-
delete()
כדי להסיר רכיבים ממערך. - אי אפשר להשתמש ב-
delete()
כדי להסיר נכסים מההיקף הגלובלי.
תחביר
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
פרמטרים
Object.keys
פרמטר | סוג | תיאור |
---|---|---|
objectInput | any | האובייקט שרוצים להכין לו את רשימת המפתחות. אם הקלט הוא לא אובייקט, הוא יומר לאובייקט. |
Object.values
פרמטר | סוג | תיאור |
---|---|---|
objectInput | any | האובייקט שרוצים לעבור על הערכים שלו. אם הקלט הוא לא אובייקט, הוא יאולץ להיות אובייקט. |
Object.entries
פרמטר | סוג | תיאור |
---|---|---|
objectInput | any | האובייקט שרוצים למנות את צמדי המפתח/הערך שלו. אם הקלט הוא לא אובייקט, הוא יאולץ להיות אובייקט. |
Object.freeze
פרמטר | סוג | תיאור |
---|---|---|
objectInput | any | האובייקט שרוצים להקפיא. אם הקלט הוא לא אובייקט, הוא ייחשב כאובייקט קפוא. |
Object.delete
פרמטר | סוג | תיאור |
---|---|---|
objectInput | any | האובייקט שרוצים למחוק את המפתח שלו. |
keyToDelete | string | המקש ברמה העליונה למחיקה. |
דוגמה
const Object = require('Object');
// The keys of an object are enumerated in an array.
const keys = Object.keys({foo: 'bar'});
// The values of an object are enumerated in an array.
const values = Object.values({foo: 'bar'});
// The key/value pairs of an object are enumerated in an array.
const entries = Object.entries({foo: 'bar'});
// The input object is frozen.
const frozen = Object.freeze({foo: 'bar'});
// The key is removed from the input object.
const obj1 = {deleteme: 'value'};
Object.delete(obj1, 'deleteme');
// Only a top-level key can be specified as the key to delete.
const obj2 = {nested: {key: 'value'}};
Object.delete(obj2, 'nested.key'); // This has no effect.
Object.delete(obj2.nested, 'key'); // This deletes the nested key.
Promise
הפונקציה מחזירה אובייקט שמספק שיטות ליצירת אינטראקציה עם הבטחות.
הבטחות (promises) זהות מבחינה פונקציונלית להבטחות ב-JavaScript. לכל מופע יש שלוש שיטות שמחזירות Promise שמאפשר לבצע פעולה נוספת כשה-Promise מתקבל:
.then()
– מטפל גם בבקשות התמיכה שהטיפול בהן הסתיים וגם בבקשות שנדחו. הוא מקבל שני פונקציות קריאה חוזרת (callbacks) כפרמטרים: אחת למקרה של הצלחה ואחת למקרה של כישלון..catch()
– מטפל רק בבקשות התמיכה שנדחו. הפונקציה מקבלת קריאה חוזרת אחת כפרמטר..finally()
– מאפשרת להריץ קוד גם אם הבטחה נפתרה וגם אם היא נדחתה. הפונקציה מקבלת פרמטר אחד של קריאה חוזרת, שמופעל ללא ארגומנט.
משתנה שמחזיר הבטחה שווה לערך שהוגדר להבטחה, או ל-false
אם ההבטחה נדחתה.
דוגמה
promise.then((resolvedValue) => {
// Handles when promise resolves.
}, (rejectedValue) => {
// Handles when promise rejects.
});
promise.catch((rejectedValue) => {
// Handles when promise rejects.
});
promise.finally(() => {
// Runs regardless of whether or not the previous promise resolves or
// rejects.
});
Promise.all
הפונקציה מחזירה הבטחה (promise) שמציינת אחת מהאפשרויות הבאות:
- נפתרת כשכל הקלטות נפתרו, או
- נדחה אם אחד מהקלטים נדחה
תחביר
Promise.all(inputs);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
inputs |
מערך | מערך של ערכים או הבטחות. אם הקלט הוא לא הבטחה, הקלט מועבר כאילו הוא הערך המאומת של הבטחה. הפונקציה מחזירה שגיאה אם הקלט הוא לא מערך. |
דוגמה
const Promise = require('Promise');
const sendHttpGet = require('sendHttpGet');
return Promise.all(['a', sendHttpGet('https://example.com')])
.then((results) => {
// results will equal: ['a', {statusCode: 200, headers: {}, body: ''}]
});
הרשאות משויכות
ללא.
Promise.create
יצירת הבטחה (promise) שפונקציונלית זהה להבטחה (promise) ב-JavaScript.
תחביר
Promise.create(resolver);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
resolver |
function | פונקציה שמופעל באמצעות שתי פונקציות – resolve ו-reject. ההבטחה שתוחזר תיפתר או תידחה כשהפרמטר התואם יופעל. אם הפונקציה resolver היא לא פונקציה, מתקבלת הודעת שגיאה. |
דוגמה
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
הרשאות משויכות
ללא.
ממשקי API לבדיקה
ממשקי ה-API האלה פועלים עם בדיקות JavaScript בארגז חול כדי ליצור בדיקות לתבניות בהתאמה אישית ב-Google Tag Manager. לא נדרשת הצהרה require()
לממשקי ה-API האלה לבדיקה. [מידע נוסף על בדיקות של תבניות בהתאמה אישית]
assertApi
הפונקציה מחזירה אובייקט התאמה שאפשר להשתמש בו כדי להצהיר ביעילות על ה-API הנתון.
תחביר
assertApi(apiName)
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
apiName |
string | שם ה-API לבדיקה. המחרוזת הזו זהה למחרוזת שהועברה ל-require() .
|
Matchers
Subject.wasCalled()
Subject.wasNotCalled()
Subject.wasCalledWith(...expected)
Subject.wasNotCalledWith(...expected)
דוגמאות
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
ממשק ה-API של assertThat
מבוסס על הספרייה [Truth] של Google. הפונקציה מחזירה אובייקט שאפשר להשתמש בו כדי להצהיר ביעילות על הערך של נושא. כשל בטענת הנכוֹנוּת יגרום להפסקה מיידית של הבדיקה ולסימון שלה כ'נכשלה'. עם זאת, כשל בבדיקה אחת לא ישפיע על תרחישי בדיקה אחרים.
תחביר
assertThat(actual, opt_message)
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
actual |
any | הערך שישמש בבדיקות של fluent. |
opt_message |
string | הודעת ברירת מחדל להדפסה אם טענת הנכוֹנוּת נכשלת. |
Matchers
Matcher | תיאור |
---|---|
isUndefined() |
טענת נכוֹנוּת (assertion) שמציינת שהנושא הוא undefined . |
isDefined() |
טענת נכוֹנוּת (assertion) שמציינת שהנושא הוא לא undefined . |
isNull() |
טענת נכוֹנוּת (assertion) שמציינת שהנושא הוא null . |
isNotNull() |
טענת נכוֹנוּת (assertion) שמציינת שהנושא הוא לא null . |
isFalse() |
טענת נכוֹנוּת (assertion) שמציינת שהנושא הוא false . |
isTrue() |
טענת נכוֹנוּת (assertion) שמציינת שהנושא הוא true . |
isFalsy() |
טענת נכוֹנוּת (assert) שמציינת שהנושא הוא שקר. ערכים שגויים הם undefined , null , false , NaN , 0 ו-'' (מחרוזת ריקה). |
isTruthy() |
טענת נכוֹנוּת (assertion) שמאשרת שהנושא נכון. ערכים שגויים הם undefined , null , false , NaN , 0 ו-'' (מחרוזת ריקה). |
isNaN() |
טענת נכוֹנוּת (assert) שמציינת שהנושא הוא הערך NaN. |
isNotNaN() |
טענת נכוֹנוּת (assertion) שמציינת שהנושא הוא ערך כלשהו מלבד NaN. |
isInfinity() |
טענת נכוֹנוּת (assert) שמציינת שהנושא הוא Infinity חיובי או שלילי. |
isNotInfinity() |
בודק שהנושא הוא ערך כלשהו מלבד אינסוף חיובי או שלילי. |
isEqualTo(expected) |
טענת נכוֹנוּת (assertion) שמצהירה שהנושא שווה לערך הנתון. זוהי השוואת ערכים, ולא השוואת הפניה. התוכן של אובייקטים ומערכים מושווה באופן רפלקסיבי. |
isNotEqualTo(expected) |
טענת נכוֹנוּת (assertion) שמצהירה שהנושא לא שווה לערך שצוין. זוהי השוואת ערכים, ולא השוואת הפניות. התוכן של אובייקטים ומערכים מושווה באופן רפלקסיבי. |
isAnyOf(...expected) |
טענת נכוֹנוּת (assertion) שמצהירה שהנושא שווה לאחד מהערכים שצוינו. זוהי השוואת ערכים, ולא השוואת הפניות. התוכן של אובייקטים ומערכים מושווה באופן רפלקסיבי. |
isNoneOf(...expected) |
טענת נכוֹנוּת (assert) שמצהירה שהנושא לא שווה לאף אחד מהערכים שצוינו. זוהי השוואת ערכים, ולא השוואת הפניות. התוכן של אובייקטים ומערכים מושווה באופן רפלקסיבי. |
isStrictlyEqualTo(expected) |
טענת נכוֹנוּת (assert) שמציינת שהנושא שווה (=== ) לערך הנתון. |
isNotStrictlyEqualTo(expected) |
טענת נכוֹנוּת (assert) שמצהירה שהנושא לא שווה (!== ) בדיוק לערך שצוין. |
isGreaterThan(expected) |
טענת נכוֹנוּת (assert) שמציינת שהנושא גדול מ-(> ) הערך הנתון בהשוואה מסודרת. |
isGreaterThanOrEqualTo(expected) |
טענת נכוֹנוּת (assert) שמציינת שהנושא גדול מ->= או שווה לו בהשוואה מסודרת. |
isLessThan(expected) |
פונקציית טענת נכוֹנוּת (assertion) שמאשרת שהנושא קטן מ-(< ) הערך הנתון בהשוואה מסודרת. |
isLessThanOrEqualTo(expected) |
טענת נכוֹנוּת (assert) שמציינת שהנושא קטן מ-(<= ) או שווה לו (<= )
בהשוואה מסודרת. |
contains(...expected) |
בודק שהנושא הוא מערך או מחרוזת שמכילים את כל הערכים הנתונים בסדר כלשהו. זוהי השוואת ערכים, ולא השוואה למקור. התוכן של אובייקטים ומערכים מושווה באופן רפלקסיבי. |
doesNotContain(...expected) |
בודק שהנושא הוא מערך או מחרוזת שלא מכילים אף אחד מהערכים הנתונים. זוהי השוואת ערכים, ולא השוואת הפניות. התוכן של אובייקטים ומערכים מושווה באופן רפלקסיבי. |
containsExactly(...expected) |
בודק שהנושא הוא מערך שמכיל את כל הערכים הנתונים בסדר כלשהו, ללא ערכים אחרים. זוהי השוואת ערכים, ולא השוואת הפניה. התוכן של אובייקטים ומערכים מושווה באופן רפלקסיבי. |
doesNotContainExactly(...expected) |
בודק שהנושא הוא מערך שמכיל קבוצה שונה של ערכים מהערכים שצוינו, בסדר כלשהו. זוהי השוואת ערכים, ולא השוואת ערכי הפניה. התוכן של אובייקטים ומערכים מושווה באופן רפלקסיבי. |
hasLength(expected) |
בודק שהנושא הוא מערך או מחרוזת באורך הנתון. טענת הנכוֹנוּת תמיד נכשלת אם הערך הוא לא מערך או מחרוזת. |
isEmpty() |
בודק שהנושא הוא מערך או מחרוזת ריקים (length = 0). טענת הנכוֹנוּת תמיד נכשלת אם הערך הוא לא מערך או מחרוזת. |
isNotEmpty() |
בודק שהנושא הוא מערך או מחרוזת לא ריקים (אורך > 0). טענת הנכוֹנוּת תמיד נכשלת אם הערך הוא לא מערך או מחרוזת. |
isArray() |
טענת נכוֹנוּת (assert) שמציינת שהסוג של הנושא הוא מערך. |
isBoolean() |
טענת נכוֹנוּת (assert) שמציינת שהסוג של הנושא הוא בוליאני. |
isFunction() |
טענת נכוֹנוּת (assert) שמציינת שהסוג של הנושא הוא פונקציה. |
isNumber() |
טענת נכוֹנוּת (assert) שמאשרת שהסוג של הנושא הוא מספר. |
isObject() |
טענת נכוֹנוּת (assert) שמציינת שהסוג של הנושא הוא אובייקט. |
isString() |
טענת נכוֹנוּת (assert) שמציינת שהסוג של הנושא הוא מחרוזת. |
דוגמאות
assertThat(undefined).isUndefined();
assertThat(id, 'ID must be defined').isDefined();
assertThat(null).isNull();
assertThat(undefined).isNotNull();
assertThat(true).isTrue();
assertThat(false).isFalse();
assertThat(1).isTruthy();
assertThat('').isFalsy();
assertThat(1/0).isInfinity();
assertThat(0).isNotInfinity();
assertThat(-'foo').isNaN();
assertThat(100).isNotNaN();
assertThat(sentUrl).isEqualTo('https://endpoint.example.com/?account=12345');
assertThat(category).isNotEqualTo('premium');
assertThat(5).isAnyOf(1, 2, 3, 4, 5);
assertThat(42).isNoneOf('the question', undefined, 41.9);
assertThat('value').isStrictlyEqualTo('value');
assertThat('4').isNotStrictlyEqualTo(4);
assertThat(['a', 'b', 'c']).contains('a', 'c');
assertThat(['x', 'y', 'z']).doesNotContain('f');
assertThat(['1', '2', '3']).containsExactly('3', '2', '1');
assertThat(['4', '5']).doesNotContainExactly('4');
assertThat('a string').hasLength(8);
assertThat([]).isEmpty();
assertThat('another string').isNotEmpty();
fail
הפונקציה מכשילה באופן מיידי את הבדיקה הנוכחית ומדפיסה את ההודעה שצוינה, אם היא סופקה.
תחביר
fail(opt_message);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
opt_message |
string | טקסט אופציונלי של הודעת השגיאה. |
דוגמה
fail('This test has failed.');
mock
ה-API של mock
מאפשר לשנות את ההתנהגות של ממשקי API ב-Sandbox. אפשר להשתמש ב-mock API בקוד התבנית בבטחה, אבל הוא פועל רק במצב בדיקה.
המודלים המדומים מתאפסים לפני כל בדיקה.
תחביר
mock(apiName, returnValue);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
apiName |
string | שם ה-API ליצירת אשליה (mock); אותה מחרוזת שמועברת אל
require() |
returnValue |
any | הערך להחזרה עבור ה-API או הפונקציה שנקראת במקום ה-API. אם returnValue היא פונקציה, המערכת קוראת לפונקציה הזו במקום ל-Sandboxed API. אם returnValue היא לא פונקציה, המערכת מחזירה את הערך הזה במקום ל-Sandboxed API. |
דוגמאות
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
באמצעות ה-API של mockObject
אפשר לשנות את ההתנהגות של ממשקי API ב-Sandbox שמחזירים אובייקט. אפשר להשתמש ב-API בקוד של תבנית בבטחה, אבל הוא פועל רק במצב בדיקה. המודלים המדומים מתאפסים לפני כל בדיקה.
תחביר
mockObject(apiName, objectMock);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
apiName |
string | שם ה-API ליצירת אשליה (mock); אותה מחרוזת שמועברת אל
require() |
objectMock |
object | הערך להחזרה עבור ה-API או הפונקציה שנקראת במקום ה-API. חייב להיות אובייקט. |
דוגמאות
const storage = {};
let firestoreId = 1;
function asTestPromise(result) {
return {
then: (callback) => callback(result)
};
}
mockObject('Firestore', {
write: (collection, input) => {
storage[collection + '/' + (++firestoreId)] = input;
return asTestPromise(firestoreId);
},
read: (document) => asTestPromise({data: storage[document]})
});
runCode
הפעלת הקוד של התבנית, כלומר התוכן בכרטיסייה Code, בסביבת הבדיקה הנוכחית עם אובייקט נתוני קלט נתון.
תחביר
runCode(data)
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
data |
object | אובייקט הנתונים שישמש בבדיקה. |
ערך המוחזר
הפונקציה מחזירה את הערך של משתנה בתבניות עם משתנים, ומחזירה את הערך undefined
לכל סוגי התבניות האחרים.
דוגמה
runCode({field1: 123, field2: 'value'});