במסמך הזה מתוארים ממשקי ה-API לתיוג בצד השרת.
addEventCallback
רושם פונקציית קריאה חוזרת שתופעל בסיום אירוע. הקריאה החוזרת תופעל כאשר כל התגים של האירוע יופעלו. הקריאה החוזרת (callback) מועברת שני ערכים: המזהה של הקונטיינר שמפעיל את הפונקציה ואובייקט שמכיל מידע על האירוע.
כשמשתמשים ב-API הזה בתג, הוא משויך לאירוע הנוכחי. כשהפעולה הזו
נעשה שימוש ב-API בחשבון לקוח, הוא צריך להיות מקושר לאירוע ספציפי באמצעות
הפונקציה bindToEvent
של runContainer
API. לצפייה
example כדי לקבל פרטים נוספים.
תחביר
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
callback |
פונקציה | הפונקציה שתפעיל בסוף האירוע. |
האובייקט 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 |
פונקציה | הפונקציה שצריך להפעיל. |
ההרשאות המשויכות
ללא.
claimRequest
צריך להשתמש ב-API הזה בלקוח כדי לתבוע בעלות על הבקשה. אחרי שליחת הבקשה, המאגר לא מפעיל לקוחות נוספים.
ה-API הזה יקפיץ חריג אם הוא מופעל בתג או במשתנה. ה-API הזה מחזיר
חריג אם הוא נקרא אחרי שהלקוח חוזר (למשל, אם הוא נקרא באסינכרוני).
קריאה חוזרת, למשל ב-callLater
או בפונקציה runContainer
onComplete
).
לקוח צריך לתבוע בעלות על הבקשה באמצעות ה-API הזה לפני הקריאה
API של runContainer
.
דוגמה
const claimRequest = require('claimRequest');
claimRequest();
תחביר
claimRequest();
ההרשאות המשויכות
ללא.
computeEffectiveTldPlusOne
הפונקציה מחזירה את הערך האפקטיבי של הדומיין ברמה העליונה + 1 (eTLD+1) של הדומיין או כתובת ה-URL הנתונים. ה-eTLD+1 מחושב על ידי הערכת הדומיין מול רשימת הסיומות הציבוריות כללים. eTLD+1 הוא בדרך כלל הדומיין ברמה הגבוהה ביותר שבו ניתן להגדיר .
אם הארגומנט הוא 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
יצירת מכונה של ביטוי רגולרי (regex) חדש ומחזירה אותו בתוך אובייקט. אי אפשר
לגשת ישירות לביטוי הרגולרי. עם זאת, אפשר להעביר אותו ל-API של testRegex
,
String.replace()
, String.match()
וגם String.search()
.
הפונקציה מחזירה את הערך null
אם הביטוי הרגולרי לא תקין או אם הביטוי 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 | מחרוזת אופציונלית שמכילה את הדגלים של הביטוי הרגולרי שנוצר. המערכת תומכת ב-'g' (גלובלי) וב-'i' (לא תלוי-רישיות). כל שאר התווים מתעלמים ממנו בשקט. |
ההרשאות המשויכות
ללא.
גרסת תמונה מינימלית
decodeUri
מפענח כל תווים מקודדים ב-URI שסופק. הפונקציה מחזירה string עם
שמייצג את ה-URI המפוענח. הפונקציה מחזירה את הערך undefined
אם צוין ערך לא תקין
מהקלט.
דוגמה
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
תחביר
decodeUri(encoded_uri);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
encoded_uri |
string |
URI שמקודד על ידי
encodeUri() או באמצעים אחרים.
|
ההרשאות המשויכות
ללא.
decodeUriComponent
מפענח כל תווים מקודדים ברכיב ה-URI שסופק. הפונקציה מחזירה את
string שמייצג את רכיב ה-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) מקודד באמצעות Escing Special תווים. הפונקציה מחזירה string שמייצגת את המחרוזת שצוינה בקידוד בתור URI.
דוגמה
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
תחביר
encodeUri(uri);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
uri |
string | URI מלא. |
ההרשאות המשויכות
ללא.
encodeUriComponent
פונקציה זו מחזירה מזהה משאבים אחיד (URI) מקודד באמצעות Escing Special תווים. הפונקציה מחזירה string שמייצגת את המחרוזת שסופקה עם הקידוד של 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 נכנסת לרשימת אירועים ב- פורמט סכימה מאוחד. הפונקציה מחזירה את רשימת האירועים שחולצו. מתריעה הודעת שגיאה אם הבקשה אינה בפורמט הנכון.
דוגמה
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 נכנסת לרשימת אירועים ב- פורמט סכימה מאוחד. הפונקציה מחזירה את רשימת האירועים שחולצו. מתריעה הודעת שגיאה אם הבקשה אינה בפורמט הנכון.
דוגמה
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
מחזירה number (מספר שלם) אקראי בתוך הטווח הנתון.
דוגמה
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
תחביר
generateRandom(min, max);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
min |
number | הערך הפוטנציאלי המינימלי של המספר השלם המוחזר (כולל). |
max |
number | הערך הפוטנציאלי המקסימלי של המספר השלם המוחזר (כולל). |
ההרשאות המשויכות
ללא.
getAllEventData
מחזירה עותק של נתוני האירוע.
תחביר
getAllEventData();
ההרשאות המשויכות
getClientName
הפונקציה מחזירה string שמכיל את השם של הלקוח הנוכחי.
תחביר
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 |
בוליאני |
אם הערך שלו הוא 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 |
כלשהו |
הנתיב של המפתח, שבו רכיבי הנתיב מופרדים באמצעות נקודות.
רכיבי הנתיב יכולים להיות מפתחות באובייקט או אינדקסים במערך. אם המיקום
הערך keyPath אינו מחרוזת, הוא מועתק למחרוזת.
|
תחביר
getEventData(keyPath);
ההרשאות המשויכות
getGoogleAuth
פונקציה זו מחזירה אובייקט הרשאה שכאשר משתמשים בו יחד עם
ב-sendHttpGet
או ב-sendHttpRequest
,
כוללים כותרת הרשאה ל-Google Cloud APIs. ה-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 |
אובייקט | אפשרויות בקשה אופציונליות. בהמשך מפורטות האפשרויות הנתמכות. |
אפשרויות
אפשרות | סוג | תיאור |
---|---|---|
id |
string |
רלוונטי ל-'GTAG' עם מזהה המדידה של gtag וגם
'GTM' עם מזהה מאגר התגים באינטרנט (לדוגמה: GTM-XXXX).
|
debug |
כלשהו | אם היא תקינה, היא מבקשת ומחזירה את גרסת ניפוי הבאגים של המדידה. סקריפט. |
timeout |
number |
הזמן הקצוב לתפוגה של הבקשה באלפיות השנייה; המערכת מתעלמת מערכים לא חיוביים. אם המיקום
בסיום הזמן הקצוב לתפוגה של הבקשה, הקריאה החוזרת תופעל באמצעות
undefined לערך הסקריפט ו-{} עבור ערך הסקריפט
של מטא-נתונים.
|
המערכת מתעלמת ממפתחות אפשרויות לא מזוהים.
ההרשאות המשויכות
נדרשת ההרשאה send_http
. צריך להגדיר את ההרשאה כדי להתיר
גישה אל:
- מתן הרשאה ל-Google Domains
getRemoteAddress
מחזירה ייצוג string של כתובת ה-IP שבה הבקשה
מקורו, לדוגמה 12.345.67.890
ל-IPv4 או 2001:0db8:85a3:0:0:8a2e:0370:7334
ל-IPv6, על ידי קריאת כותרות של בקשות כמו 'העברה' ו-'X-Forwarded-For'.
הערה: אנחנו מנסים להשתמש ב-API הזה כדי לאתר את כתובת ה-IP המקורית, אבל
הוא לא יכול להבטיח שהתוצאה מדויקת.
תחביר
getRemoteAddress();
ההרשאות המשויכות
נדרשת ההרשאה read_request
. צריך להגדיר את ההרשאה כך
תעניק גישה לפחות ל:
- כותרות
Forwarded
ו-X-Forwarded-For
- כתובת IP מרוחקת
getRequestBody
הפונקציה מחזירה את גוף הבקשה כ-string, אם יש כזו, או undefined
אחרת.
תחביר
getRequestBody();
ההרשאות המשויכות
getRequestHeader
הפונקציה מחזירה את הערך של כותרת הבקשה בעלת השם כ-string, אם יש כזו, או
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
מחזירה את נתיב הבקשה בלי מחרוזת השאילתה. לדוגמה, אם כתובת האתר היא
'/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
הפונקציה מחזירה את הערך המפוענח של הפרמטר בעל השם של מחרוזת השאילתה כ-string,
או 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.
מחזירה מספר שמייצג את השעה הנוכחית באלפיות השנייה מאז יוניקס
תקופה של זמן מערכת, כפי שהוחזר על ידי Date.now()
.
תחביר
getTimestamp();
ההרשאות המשויכות
ללא.
getTimestampMillis
מחזירה מספר שמייצג את השעה הנוכחית באלפיות השנייה מאז יוניקס
תקופה של זמן מערכת, כפי שהוחזר על ידי Date.now()
.
תחביר
getTimestampMillis();
ההרשאות המשויכות
ללא.
getType
מחזירה מחרוזת שמתארת את סוג הערך הנתון.
סוג הקלט | הערך שהוחזר |
---|---|
string | 'string' |
number | 'number' |
בוליאני | '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 |
כלשהו | ערך הקלט. |
ההרשאות המשויכות
ללא.
hmacSha256
חישוב חתימה מקודדת באמצעות אימות הודעות המבוסס על גיבוב
קוד (HMAC) עם SHA-256. ברירת המחדל היא קידוד base64url
.
כדי להשתמש ב-API הזה, צריך להגדיר את משתנה הסביבה SGTM_CREDENTIALS
בשרת
לנתיב של קובץ מפתח JSON בקידוד UTF-8, בפורמט הבא:
{
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
הערכים הם מפתחות HMAC בקידוד base64.
דוגמה
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
|
אובייקט | הגדרה אופציונלית של ה-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.
ב-Logs Explorer, מריצים את השאילתה logName =~ "stdout"
כדי לראות את רשומות היומן
שנוצר על ידי ה-API הזה.
דוגמה
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
תחביר
logToConsole(argument1[, argument2, ...]);
פרמטרים
ה-API מקבל ארגומנט אחד או יותר, וכל אחד מהם מומר למחרוזת, אם נדרש, ונרשם במסוף.
ההרשאות המשויכות
makeInteger
ממירה את הערך הנתון ל-number (שלם).
תחביר
makeInteger(value);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
value |
כל סוג | הערך להמרה. |
ההרשאות המשויכות
ללא.
makeNumber
ממירה את הערך הנתון ל-number.
תחביר
makeNumber(value);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
value |
כל סוג | הערך להמרה. |
ההרשאות המשויכות
ללא.
makeString
מחזירה את הערך הנתון כ-string.
תחביר
makeString(value);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
value |
כל סוג | הערך להמרה. |
ההרשאות המשויכות
ללא.
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
.
ה-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
.
ההרשאות המשויכות
runContainer
מפעילה את לוגיקת הקונטיינר (משתנים, טריגרים, תגים) בהיקף של אירוע. אם מתבצעת קריאה ל-API הזה במהלך הפעלת הקונטיינר, הקונטיינר יופעל שוב.
הקריאות החוזרות (callback) 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 |
אובייקט | הפרמטרים של האירוע. |
onComplete |
פונקציה | קריאה חוזרת שמופעלת לאחר שכל התגים מסיימים לפעול. |
onStart |
פונקציה | קריאה חוזרת (callback) מופעלת באופן מיידי, לפני שהתגים מתחילים לפעול. |
ההרשאות המשויכות
sendEventToGoogleAnalytics
שולחת אירוע יחיד באמצעות Common Event Data ל-Google Analytics ומחזירה
הבטחה שמפנה לאובייקט עם מפתח location
או
דוחה לאובייקט עם מפתח reason
. היעד, אוניברסלי
מערכת Analytics או 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 |
אובייקט | האירוע בפורמט סכימה מאוחדת. |
ההרשאות המשויכות
נדרשת ההרשאה send_http
. צריך להגדיר את ההרשאה כדי להתיר
גישה אל:
- מתן הרשאה ל-Google Domains
sendHttpGet
שולחת בקשת HTTP GET לכתובת ה-URL שצוינה ומחזירה הבטחה שמתאימה לתוצאה לאחר השלמת הבקשה, או לזמן קצוב לתפוגה.
התוצאה שטופלה היא אובייקט שמכיל שלושה מפתחות: statusCode
, headers
,
ו-body
. אם הבקשה נכשלה (למשל כתובת URL לא חוקית, אין נתיב למארח,
כישלון משא ומתן של SSL וכו'), ההבטחה תידחה עם: {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
|
אובייקט | אפשרויות אופציונליות לבקשות. (ראו אפשרויות שמופיעות למטה.) |
אפשרויות
אפשרות | סוג | תיאור |
---|---|---|
headers |
string | כותרות נוספות לבקשות. |
timeout
|
number | הזמן הקצוב לתפוגה, באלפיות שנייה, לפני
הבקשה מבוטלת. ברירת המחדל היא 15000 . |
authorization
|
אובייקט | אובייקט הרשאה אופציונלי מ-
קריאה אל getGoogleAuth כדי לכלול
כותרות הרשאה בעת שליחת בקשות
אל googleapis.com . |
ההרשאות המשויכות
sendHttpRequest
שולחת בקשת HTTP לכתובת ה-URL שצוינה ומחזירה promise נסגר עם התשובה לאחר השלמת הבקשה או תום הזמן הקצוב לתפוגה.
התוצאה שטופלה היא אובייקט שמכיל שלושה מפתחות: statusCode
, headers
,
ו-body
. אם הבקשה נכשלה (למשל כתובת URL לא חוקית, אין נתיב למארח,
כישלון משא ומתן של SSL וכו'), ההבטחה תידחה עם: {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
|
אובייקט | אפשרויות אופציונליות לבקשות. (ראו אפשרויות שמופיעות למטה.) |
body |
string | גוף הבקשה אופציונלי. |
אפשרויות
אפשרות | סוג | תיאור |
---|---|---|
headers |
string | כותרות נוספות לבקשות. |
method |
אובייקט | שיטת הבקשה. ברירת המחדל היא GET . |
timeout
|
number | הזמן הקצוב לתפוגה, באלפיות שנייה, לפני
הבקשה מבוטלת. ברירת המחדל היא 15000 . |
authorization
|
אובייקט | אובייקט הרשאה אופציונלי מ-
קריאה אל getGoogleAuth כדי לכלול
כותרות הרשאה בעת שליחת בקשות
אל googleapis.com . |
ההרשאות המשויכות
sendPixelFromBrowser
שולחת פקודה לדפדפן כדי לטעון את כתובת ה-URL שסופקה כתג <img>
. הזה
ש-Google Tag תומך ב-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 |
אובייקט | מאפיינים אופציונליים של קובצי Cookie:דומיין, יפוג, fallbackDomain,httpOnly, max- גיל, path, מאובטח, ו-sameSite. (ראו אפשרויות, למטה.) |
noEncode |
בוליאני |
אם הערך הוא 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: מונע מ-JavaScript לגשת לקובץ ה-cookie אם
true
.max-age: מספר השניות עד שפג התוקף של קובץ ה-cookie. מספר אפס או מספר שלילי יפוג התוקף של קובץ ה-cookie באופן מיידי. אם גם
expires
וגםmax-age
מוגדרות,max-age
יש קדימות.path: נתיב שחייב להתקיים בכתובת ה-URL המבוקשת, אחרת הדפדפן לא שולחים את הכותרת Cookie.
secure: אם מוגדר הערך
true
, קובץ ה-Cookie נשלח לשרת רק כאשר נשלחת מנקודת קצה (endpoint)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 |
מחרוזת undefined | ערך הכותרת. אם הערך הוא null או לא מוגדר, הפעולה הזו מנקה את הכותרת בעלת השם. מהתגובה שתוחזר. |
ההרשאות המשויכות
נדרשת ההרשאה access_response
. צריך להגדיר את ההרשאה כך
תעניק גישה לפחות ל:
headers
setResponseStatus
מגדיר את קוד הסטטוס של ה-HTTP של התגובה שתוחזר.
לתשומת ליבך, צריך לקרוא ל-returnResponse לצורך התגובה ל- יישלחו בחזרה ללקוח.
תחביר
setResponseStatus(statusCode);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
statusCode |
number | קוד מצב ה-HTTP שיש להחזיר. |
ההרשאות המשויכות
נדרשת ההרשאה access_response
. צריך להגדיר את ההרשאה כך
תעניק גישה לפחות ל:
status
sha256
הפונקציה מחשבת את תקציר SHA-256 של הקלט ומפעילים קריאה חוזרת באמצעות
התקציר מקודד ב-base64, אלא אם האובייקט options
מציין
לקידוד פלט.
החתימה וההתנהגות האלה של ה-API תואמים ל-API של sha256
לקונטיינרים באינטרנט;
עם זאת, תבניות מותאמות אישית בקונטיינרים של שרת צריכות להשתמש
sha256Sync
API לקוד פשוט יותר.
דוגמה
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 |
פונקציה |
נקרא עם התקציר שנוצר, עם קידוד ב-base64, אלא אם
האובייקט options מציין קידוד פלט שונה.
|
options |
אובייקט |
אובייקט אופציונלי שמציין את קידוד הפלט. אם המיקום
שצוין, האובייקט צריך להכיל את המפתח 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 |
אובייקט |
אובייקט אופציונלי שמציין את קידוד הפלט. אם המיקום
שצוין, האובייקט צריך להכיל את המפתח outputEncoding
עם הערך אחד מ-base64 או hex .
|
ההרשאות המשויכות
ללא.
templateDataStorage
מחזירה אובייקט עם שיטות לגישה לאחסון נתוני תבניות. התבנית אחסון נתונים מאפשר לשתף נתונים בין הפעלות של תבנית אחת. נתונים שמאוחסנים באחסון נתוני תבניות נשארים בשרת שבו פועל מאגר תגים. ברוב המקרים יש מספר שרתים שמפעילים את הקונטיינר, כך אחסון נתונים בתבנית אחסון נתונים לא מבטיח שבכל פעם לבקשת הגישה לנתונים.
ה"נתונים" בשם '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
בדיקת מחרוזת מול ביטוי רגולרי שנוצר באמצעות API של createRegex
. הפונקציה מחזירה את הערך true
אם הביטוי הרגולרי תואם. הפונקציה מחזירה את הערך false
אחרת.
ביטוי רגולרי שנוצר עם הדגל הגלובלי ניתן לשמור על מצב. לצפייה מסמכי תיעוד של 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 |
מפגע | הביטוי הרגולרי לבדיקה, הוחזר מ-createRegex API. |
string |
string | מחרוזת בדיקה לבדיקה. |
ההרשאות המשויכות
ללא.
toBase64
הפונקציה מקודדת מחרוזת כ-base64 או כ-base64url. ברירת המחדל היא קידוד base64.
תחביר
toBase64(input, options);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
input |
string | המחרוזת לקידוד. |
options
|
אובייקט | הגדרה אופציונלית של ה-API. (ראו אפשרויות שמופיעות למטה.) |
אפשרויות
אפשרות | סוג | תיאור | גירסת מינימום |
---|---|---|---|
urlEncoding
|
בוליאני | אם הערך הוא True, התוצאה
להיות מקודדים באמצעות
פורמט של base64url . |
1.0.0 |
דוגמה
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
ההרשאות המשויכות
ללא.
BigQuery
מחזירה אובייקט שמספק פונקציות של BigQuery.
הפונקציה BigQuery.insert
מאפשרת לכתוב נתונים בטבלה של BigQuery. הוא
מחזירה הבטחה שמסתיימת בהוספה מוצלחת או
דוחה במקרה של שגיאה.
כשההוספה מצליחה, ההבטחה נסגרת ללא ארגומנטים.
כשההוספה נכשלת, ההבטחה נדחית עם רשימה של אובייקטים שמכילים את סיבת השגיאה, ואולי גם אובייקט שורה אם מתרחשת שגיאה. ייתכן שבשביל חלק מהבקשה יושלמו בהצלחה, ואילו חלקים אחרים לא. ההבטחה נדחתה במקרה הזה עם רשימת שגיאות בכל שורה עם אובייקט שורה כדי לעזור להבחין אילו שורות נוספו (ראו דוגמאות לשגיאות בהמשך). צפייה מסמכי התיעוד של BigQuery בנושא שגיאה הודעות לקבלת מידע נוסף.
תחביר
BigQuery.insert(connectionInfo, rows[, options]);
פרמטר | סוג | תיאור |
---|---|---|
connectionInfo |
אובייקט |
מגדיר את המידע הנדרש כדי להתחבר לטבלה ב-BigQuery. יש
פרמטר אופציונלי אחד ושני פרמטרים נדרשים:
|
rows |
מערך | השורות שיש להוסיף לטבלה. |
options |
אובייקט | אפשרויות בקשה אופציונליות. האפשרויות הנתמכות הן: ignoreUnknownValues וגם skipInvalidRows. המערכת מתעלמת ממפתחות של אפשרויות לא מוכרים. (ראו אפשרויות, למטה.) |
פרמטר | סוג | תיאור |
---|---|---|
ignoreUnknownValues |
בוליאני | אם המדיניות מוגדרת לערך true , צריך לקבל שורות שמכילות ערכים
שלא תואמים לסכימה. המערכת מתעלמת מהערכים הלא ידועים. ברירות מחדל
אל false . |
skipInvalidRows |
בוליאני | אם המדיניות מוגדרת לערך 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 in מצב מאגר נתונים. בנוסף, ה-API תומך רק בשימוש במסד הנתונים שמוגדר כברירת מחדל.
Firestore.read
הפונקציה Firestore.read
קוראת נתונים ממסמך Firestore וגם
מחזירה promis שמפנה לאובייקט שמכיל שני מפתחות:
id
וגם data
. אם המסמך לא קיים, ההבטחה נדחית עם
אובייקט שמכיל מפתח reason
שווה ל-not_found
.
תחביר
Firestore.read(path[, options]);
פרמטר | סוג | תיאור |
---|---|---|
path |
string | הנתיב למסמך או לאוסף. לא יכול להתחיל או להסתיים ב- '/'. |
options |
אובייקט | אפשרויות אופציונליות לבקשות. האפשרויות הנתמכות הן: projectId, disableCache, ו- עסקה. מקורות לא מוכרים המערכת מתעלמת ממקשי האפשרויות. (ראו אפשרויות, למטה.) |
פרמטר | סוג | תיאור |
---|---|---|
projectId |
string | אופציונלי. מזהה הפרויקט ב-Google Cloud Platform. אם לא צוין, המאפיין
הערך projectId אוחזר ממשתנה הסביבה
GOOGLE_CLOUD_PROJECT כל עוד
access_firestore
הגדרת ההרשאה עבור מזהה הפרויקט היא * או
GOOGLE_CLOUD_PROJECT . אם מאגר התגים בצד השרת פועל
Google Cloud, GOOGLE_CLOUD_PROJECT כבר מוגדר בתור
את המזהה של הפרויקט ב-Google Cloud. |
disableCache |
בוליאני | אופציונלי. המדיניות קובעת אם להשבית את המטמון או לא. השמירה במטמון מופעלת כברירת מחדל, והיא שומרת במטמון את התוצאות משך הזמן של הבקשה. |
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 |
אובייקט | הערך שיש לכתוב במסמך. אם אפשרות המיזוג מוגדרת, ה-API ימזג את המפתחות מהקלט עם המסמך. |
options |
אובייקט | אפשרויות אופציונליות לבקשות. האפשרויות הנתמכות הן: projectId, Merge עסקה. המערכת מתעלמת ממפתחות של אפשרויות לא מוכרים. (ראו אפשרויות, למטה.) |
פרמטר | סוג | תיאור |
---|---|---|
projectId |
string | אופציונלי. מזהה הפרויקט ב-Google Cloud Platform. אם לא צוין, המאפיין
הערך projectId אוחזר ממשתנה הסביבה
GOOGLE_CLOUD_PROJECT כל עוד
access_firestore
הגדרת ההרשאה עבור מזהה הפרויקט היא * או
GOOGLE_CLOUD_PROJECT . אם מאגר התגים בצד השרת פועל
Google Cloud, GOOGLE_CLOUD_PROJECT כבר מוגדר בתור
את המזהה של הפרויקט ב-Google Cloud. |
merge |
בוליאני | אופציונלי. אם מוגדר
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 |
אובייקט | אפשרויות אופציונליות לבקשות. האפשרויות הנתמכות הן: 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 |
בוליאני | אופציונלי. המדיניות קובעת אם להשבית את המטמון או לא. השמירה במטמון מופעלת כברירת מחדל, והיא שומרת במטמון את התוצאות משך הזמן של הבקשה. |
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 |
פונקציה | קריאה חוזרת (callback) שמופעלת עם מזהה עסקה במחרוזת. ניתן להעביר מזהה עסקה לקריאות ל-API של קריאה/כתיבה/שאילתה. פונקציית הקריאה החוזרת חייבת להחזיר הבטחה. הקריאה החוזרת עשויה לפעול עד שלוש פעמים לפני שהיא תיכשל. |
options |
אובייקט | אפשרויות אופציונליות לבקשות. האפשרות הנתמכת היחידה שנתמכת הוא 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 |
פונקציה | הקריאה החוזרת (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 |
אובייקט | ההודעה שצריך לשלוח. אם ההודעה היא לא אובייקט, ה-API לא יבצע כל פעולה. |
ההרשאות המשויכות
נדרשת ההרשאה use_message
. צריך להגדיר את ההרשאה כדי להתיר
לכל הפחות:
- סוג הודעה עם
Usage
מתוךlisten_and_send
אוsend
.
Object
מחזירה אובייקט שמספק Object
methods.
ה-method keys()
מספקת את הפונקציה Object.keys() של הספרייה הרגילה
או התנהגות המשתמשים. היא מחזירה מערך של המאפיין המחושב של אובייקט נתון
באותו סדר כמו לולאה של for...in...
. אם ערך הקלט הוא
ולא אובייקט, הוא ייאכף לאובייקט.
השיטה values()
מספקת את הספרייה הרגילה Object.values()
או התנהגות המשתמשים. היא מחזירה מערך של ערכי המאפיין המספרים של אובייקט נתון
באותו סדר כמו לולאת for...in...
. אם ערך הקלט אינו
הוא ייאכף לאובייקט.
ה-method entries()
מספקת את ה-Object.entries() של הספרייה הרגילה
או התנהגות המשתמשים. היא מחזירה מערך של המאפיין המחושב של אובייקט נתון
[key, value]
זוגות באותו סדר כמו לולאה של for...in...
. אם
ערך הקלט אינו אובייקט, הוא ייאכף לאובייקט.
ה-method freeze()
מספקת את הספרייה הרגילה Object.freeze()
או התנהגות המשתמשים. אי אפשר יותר לשנות אובייקט שהוקפא. הקפאת אובייקט מונעת
להוסיף אליו נכסים חדשים, הסרה של נכסים קיימים,
והערכים של נכסים קיימים ישתנו. הפונקציה freeze()
תחזיר את הערך
את אותו אובייקט שהועבר. המערכת תתייחס לארגומנט ראשוני או לארגומנט null
אם הוא היה אובייקט קפוא, והוא יוחזר.
השיטה delete()
מספקת את אופרטור המחיקה של הספרייה הרגילה
או התנהגות המשתמשים. היא מסירה את המפתח הנתון מהאובייקט, אלא אם הוא מוקפא.
בדומה לאופרטור המחיקה בספרייה הרגילה, הוא מחזיר true
אם הקלט הראשון
value (objectInput
) הוא אובייקט שלא הוקפא גם אם הקלט השני
(keyToDelete
) מציין מפתח שלא קיים. המוצר יחזיר false
ב-
בכל שאר המקרים. עם זאת, הוא שונה מאופרטור המחיקה של ספרייה רגילה.
בדרכים הבאות:
- הערך
keyToDelete
לא יכול להיות מחרוזת מופרדת באמצעות נקודות שמציין מפתח מקונן. - אי אפשר להשתמש ב-
delete()
כדי להסיר רכיבים ממערך. - לא ניתן להשתמש ב-
delete()
כדי להסיר נכסים מההיקף הגלובלי.
תחביר
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
פרמטרים
Object.keys
פרמטר | סוג | תיאור |
---|---|---|
objectInput | כלשהו | האובייקט שהמפתחות שלו לספירה. אם הקלט הוא לא אובייקט, יאולץ לאובייקט. |
Object.values
פרמטר | סוג | תיאור |
---|---|---|
objectInput | כלשהו | האובייקט שאת הערכים שלו לספירה. אם הקלט אינו אובייקט, הוא ייאכף לאובייקט. |
Object.entries
פרמטר | סוג | תיאור |
---|---|---|
objectInput | כלשהו | האובייקט שיש לספור צמדי מפתח/ערך שלו. אם הקלט לא הוא ייאכף לאובייקט. |
Object.freeze
פרמטר | סוג | תיאור |
---|---|---|
objectInput | כלשהו | האובייקט להקפיא. אם הקלט אינו אובייקט, המערכת תתייחס אליו כאל אובייקט קפוא. |
Object.delete
פרמטר | סוג | תיאור |
---|---|---|
objectInput | כלשהו | האובייקט שאת המפתח שלו צריך למחוק. |
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
מחזירה אובייקט שמספק שיטות לאינטראקציה עם הבטחות.
הבטחות מקבילות מבחינה פונקציונלית להבטחות JavaScript. בכל מופע יש שלוש שיטות שמחזירות הבטחה שמאפשרות פעולה נוספת כשיש הובטחה מוגדר:
.then()
- מטפל גם בבקשות שנפתרו וגם בבקשות שנדחו. נדרשות שתיים קריאות חוזרות (callback) כפרמטרים: אחד למקרה של הצלחה ושני לכשל מותאמת אישית..catch()
– טיפול רק במקרים שנדחו. מקבל קריאה חוזרת (callback) אחת בתור הפרמטר..finally()
– מאפשרת לקוד לרוץ, אם ההבטחה טופלו או נדחו. מקבל קריאה חוזרת אחת (callback) כפרמטר שמופעל באמצעות אין ארגומנט.
משתנה שמחזיר הבטחה שווה לערך שנפתר של ההבטחה, או
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.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
יוצרת הבטחה שמקבילה מבחינה פונקציונלית להבטחה של JavaScript.
תחביר
Promise.create(resolver);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
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. ממשקי ה-API האלה לבדיקה לא צריכים require()
הצהרה. [מידע נוסף על בדיקות של תבניות בהתאמה אישית].
assertApi
מחזירה אובייקט תואם שיכול לשמש לטעינת טענות באופן שוטף לגבי עם ממשק API נתון.
תחביר
assertApi(apiName)
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
apiName |
string | שם ה-API לבדיקה. אותה מחרוזת שהועברה אל
require()
|
התאמות
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. הוא מחזיר
שאפשר להשתמש בו כדי לטעון בצורה שוטפת טענות לגבי ערך של נושא.
כשל בטענת הנכוֹנוּת (assertion) יפסיק באופן מיידי את הבדיקה ויסמן אותה כנכשלה. אבל, לפעמים
כשל בבדיקה אחת לא ישפיע על מקרי בדיקה אחרים.
תחביר
assertThat(actual, opt_message)
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
actual |
כלשהו | הערך שצריך להשתמש בו בבדיקות השוטפות. |
opt_message |
string | הודעה אופציונלית להדפסה אם טענת הנכוֹנוּת (assertion) נכשלת. |
התאמות
תואם | תיאור |
---|---|
isUndefined() |
מצהיר/ה שהנושא הוא undefined . |
isDefined() |
מצהיר/ה שהנושא אינו undefined . |
isNull() |
מצהיר/ה שהנושא הוא null . |
isNotNull() |
מצהיר/ה שהנושא אינו null . |
isFalse() |
מצהיר/ה שהנושא הוא false . |
isTrue() |
מצהיר/ה שהנושא הוא true . |
isFalsy() |
טוען שהנושא הוא חשוד. ערכי Falsy הם
undefined , null , false
NaN , 0 וגם '' (מחרוזת ריקה). |
isTruthy() |
טוען שהנושא ברור. ערכי Falsy הם
undefined , null , false
NaN , 0 וגם '' (מחרוזת ריקה). |
isNaN() |
מצהירה שהנושא הוא הערך NaN. |
isNotNaN() |
מצהירה שהנושא הוא כל ערך מלבד NaN. |
isInfinity() |
מצהיר שהנושא הוא אינסוף חיובי או שלילי. |
isNotInfinity() |
מצהיר/ה שהנושא הוא כל ערך מלבד חיובי או שלילי אינסוף. |
isEqualTo(expected) |
מצהירה שהנושא שווה לערך הנתון. זהו ערך ולא השוואה בין הפניות. התוכן של אובייקטים ומערכים בהשוואה באופן רקורסיבי. |
isNotEqualTo(expected) |
מצהירה שהנושא לא שווה לערך הנתון. זהו השוואת ערכים, ולא השוואה של הפניות. התוכן של אובייקטים השוואה בין מערכים באופן רקורסיבי. |
isAnyOf(...expected) |
מצהירה שהנושא שווה לאחד מהערך הנתון. זהו השוואת ערכים, ולא השוואה של הפניות. התוכן של אובייקטים השוואה בין מערכים באופן רקורסיבי. |
isNoneOf(...expected) |
מצהירה שהנושא לא שווה לאף אחד מהערכים הנתונים. הזה היא השוואת ערכים, ולא השוואה של הפניות. תוכן של אובייקטים ומערכים מושוכים באופן רקורסיבי. |
isStrictlyEqualTo(expected) |
מצהיר/ה שהנושא שווה לחלוטין (=== )
בערך הנתון. |
isNotStrictlyEqualTo(expected) |
מצהיר/ה שהנושא לא שווה לחלוטין (!== ) ל-
בערך הנתון. |
isGreaterThan(expected) |
מצהיר/ה שהנושא גדול מ (> ) הנתון
בהשוואה לפי סדר מסוים. |
isGreaterThanOrEqualTo(expected) |
מצהיר/ה שהנושא גדול מ- או שווה ל-
(>= ) הערך הנתון בהשוואה לפי סדר. |
isLessThan(expected) |
מצהיר/ה שהנושא קטן מהערך (< ) שצוין
בהשוואה לפי סדר מסוים. |
isLessThanOrEqualTo(expected) |
מצהירה שהנושא קטן מ- או שווה לו (<= )
בערך הנתון בהשוואה לפי סדר. |
contains(...expected) |
מצהירה שהנושא הוא מערך או מחרוזת שמכילים את כל של הערכים הנתונים בכל סדר שהוא. זוהי השוואת ערכים, לא הפניה להשוואה. מתבצעת השוואה בין התוכן של אובייקטים ומערכים רקורסיביות. |
doesNotContain(...expected) |
מצהירה שהנושא הוא מערך או מחרוזת שלא מכילים אף אחד בין הערכים הנתונים. זוהי השוואת ערכים, ולא השוואת ערכים. מתבצעת השוואה רקורסיבית בין התוכן של אובייקטים ומערכים. |
containsExactly(...expected) |
מצהירה שהנושא הוא מערך שמכיל את כל הערכים בכל סדר שהוא. ללא ערכים אחרים. זוהי השוואת ערכים, ולא השוואה בין הפניות. מתבצעת השוואה בין התוכן של אובייקטים ומערכים רקורסיביות. |
doesNotContainExactly(...expected) |
מצהירה שהנושא הוא מערך שמכיל קבוצה אחרת של ערכים מהערכים הנתונים בכל סדר שהוא. זוהי השוואת ערכים, ולא השוואה של הפניות. התוכן של אובייקטים ומערכים באופן רקורסיבי. |
hasLength(expected) |
מצהירה שהנושא הוא מערך או מחרוזת באורך הנתון. טענת הנכוֹנוּת (assertion) תמיד תיכשל אם הערך הוא לא מערך או מחרוזת. |
isEmpty() |
טוענת שהנושא הוא מערך או מחרוזת ריקים (length =) 0). טענת הנכוֹנוּת (assertion) תמיד תיכשל אם הערך הוא לא מערך או String. |
isNotEmpty() |
מצהירה שהנושא הוא מערך או מחרוזת לא ריקה (אורך > 0). טענת הנכוֹנוּת (assertion) תמיד תיכשל אם הערך הוא לא מערך או מחרוזת. |
isArray() |
מצהירה שסוג הנושא הוא מערך. |
isBoolean() |
מצהירה שסוג הנושא הוא בוליאני. |
isFunction() |
מצהיר/ה שסוג הנושא הוא פונקציה. |
isNumber() |
מצהיר/ה שסוג הנושא הוא מספר. |
isObject() |
מצהיר/ה שסוג הנושא הוא אובייקט. |
isString() |
מצהיר/ה שסוג הנושא הוא מחרוזת. |
דוגמאות
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
מאפשר לבטל את ההתנהגות של ממשקי Sandboxed API. ההדמיה
ה-API בטוח לשימוש בקוד התבנית, אבל הוא פועל רק במצב בדיקה.
הדוגמאות מתאפסות לפני כל בדיקה.
תחביר
mock(apiName, returnValue);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
apiName |
string | שם ה-API שצריך לדמות; אותה מחרוזת שהועברה אל
require() |
returnValue |
כלשהו | הערך שצריך להחזיר עבור ה-API או פונקציה שנקראת במקום
API. אם returnValue היא פונקציה, היא נקראת
המקום של Sandboxed API; אם returnValue הוא כל דבר אחר
בפונקציה, הערך הזה מוחזר במקום
API. |
דוגמאות
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
באמצעות ה-API של mockObject
אפשר לבטל את ההתנהגות של ממשקי Sandboxed API ש
מחזיר אובייקט. ה-API בטוח לשימוש בקוד התבנית, אבל הוא פעיל
רק במצב בדיקה. הדוגמאות מתאפסות לפני כל בדיקה.
תחביר
mockObject(apiName, objectMock);
פרמטרים
פרמטר | סוג | תיאור |
---|---|---|
apiName |
string | שם ה-API שצריך לדמות; אותה מחרוזת שהועברה אל
require() |
objectMock |
אובייקט | הערך שצריך להחזיר עבור ה-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 |
אובייקט | אובייקט נתונים לשימוש בבדיקה. |
ערך החזרה
מחזירה את הערך של משתנה לתבניות של משתנים; מחזירה undefined
עבור
כל שאר סוגי התבניות.
דוגמה
runCode({field1: 123, field2: 'value'});