W tym dokumencie opisujemy interfejsy API do tagowania po stronie serwera.
addEventCallback
Rejestruje funkcję wywołania zwrotnego, która zostanie wywołana po zakończeniu zdarzenia. wywołanie zwrotne zostanie uruchomione po wykonaniu wszystkich tagów dla tego zdarzenia. wywołanie zwrotne przekazuje 2 wartości: identyfikator kontenera, który wywołuje funkcję oraz obiekt z informacjami o nim.
Gdy ten interfejs API jest używany w tagu, jest powiązany z bieżącym zdarzeniem. Gdy to
API jest używany na kliencie. Musi on być powiązany z konkretnym zdarzeniem za pomocą parametru
Funkcja bindToEvent
interfejsu runContainer
API. Zobacz
example.
Składnia
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
Parametry
Parametr | Typ | Opis |
---|---|---|
callback |
funkcja | Funkcja do wywołania po zakończeniu zdarzenia. |
Obiekt eventData
zawiera te dane:
Nazwa klucza | Typ | Opis |
---|---|---|
tags |
Tablica |
Tablica obiektów danych tagów. Wszystkie tagi, które zostały uruchomione podczas zdarzenia
będzie mieć wpis w tej tablicy. Obiekt danych tagu zawiera funkcje
identyfikator tagu (id ), stan jego wykonania
(status ) i czasie wykonywania tej czynności
(executionTime ). Dane z tagu będą też zawierać dodatkowe
skonfigurowanych w tagu.
|
Na koncie klienta:
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();
}
});
});
W tagu:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
Powiązane uprawnienia
callLater
Planuje asynchroniczne wywołanie funkcji. Funkcja zostanie
po zwróceniu bieżącego kodu. Jest to odpowiednik
setTimeout(<function>, 0)
Przykład
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
Składnia
callLater(function)
Parametry
Parametr | Typ | Opis |
---|---|---|
function |
funkcja | Funkcja do wywołania. |
Powiązane uprawnienia
Brak.
claimRequest
Użyj tego interfejsu API w kliencie, aby zgłosić prawa do żądania. Po zgłoszeniu żądania kontener nie uruchamia dodatkowych klientów.
Ten interfejs API zgłasza wyjątek, jeśli jest wywoływany w tagu lub zmiennej. Ten interfejs API generuje
wyjątek, jeśli zostanie wywołany po zwróceniu klienta (np. jeśli wywołany w funkcji asynchronicznej
wywołanie zwrotne, np. w funkcji callLater
lub funkcji onComplete
runContainer
).
Klient powinien zgłosić żądanie za pomocą tego interfejsu API przed wywołaniem metody
Interfejs API runContainer
.
Przykład
const claimRequest = require('claimRequest');
claimRequest();
Składnia
claimRequest();
Powiązane uprawnienia
Brak.
computeEffectiveTldPlusOne
Zwraca obowiązującą domenę najwyższego poziomu + 1 (eTLD + 1) danej domeny lub adresu URL. Liczbę eTLD+1 oblicza się, porównując domenę z listą sufiksów publicznych. reguł. Jest to zwykle domena najwyższego poziomu, w której można ustawić .
Jeśli argument ma wartość null lub jest niezdefiniowany, zwracana jest wartość argumentu. bez zmian. W przeciwnym razie argument zostanie przekształcony w ciąg znaków. Jeśli argument to nie prawidłową domenę lub URL, zwracany jest pusty ciąg znaków. Jeśli serwer nie jest w stanie w celu pobrania listy publicznych sufiksów, wartość argumentu jest zwracana bez zmian.
Przykład
const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');
Składnia
computeEffectiveTldPlusOne(domainOrUrl);
Parametry
Parametr | Typ | Opis |
---|---|---|
domainOrUrl |
ciąg znaków | Domena lub adres URL, na podstawie którego ma zostać obliczona domena eTLD+1. |
Powiązane uprawnienia
Brak.
createRegex
Tworzy nowe wystąpienie wyrażenia regularnego i zwraca je opakowane w obiekt. Nie można
uzyskać bezpośredni dostęp do wyrażenia regularnego. Możesz go jednak przekazać do interfejsu API testRegex
,
String.replace()
, String.match()
i String.search()
.
Zwraca wartość null
, jeśli wyrażenie regularne jest nieprawidłowe lub parametr Re2 jest niedostępny na serwerze.
Ten interfejs API używa interfejsu API Re2. implementacji. Obraz Dockera serwera musi być w wersji 2.0.0 lub nowszej.
Przykład
const createRegex = require('createRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');
Składnia
createRegex(pattern, flags);
Parametry
Parametr | Typ | Opis |
---|---|---|
pattern |
ciąg znaków | Tekst wyrażenia regularnego. |
flags |
ciąg znaków | Opcjonalny ciąg znaków zawierający flagi tworzonego wyrażenia regularnego. Obsługiwane są wartości „g” (globalnie) oraz „i” (wielkość liter nie jest rozróżniana). Pozostałe znaki to cicho ignoruje. |
Powiązane uprawnienia
Brak.
Minimalna wersja obrazu
decodeUri
Dekoduje wszystkie zakodowane znaki w podanym identyfikatorze URI. Zwraca ciąg znaków, który
reprezentuje zdekodowany identyfikator URI. Zwraca wartość undefined
, jeśli podano nieprawidłową
dane wejściowe.
Przykład
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
Składnia
decodeUri(encoded_uri);
Parametry
Parametr | Typ | Opis |
---|---|---|
encoded_uri |
ciąg znaków |
Identyfikator URI zakodowany przez
encodeUri() lub w inny sposób.
|
Powiązane uprawnienia
Brak.
decodeUriComponent
Dekoduje wszystkie zakodowane znaki w podanym komponencie URI. Zwraca
ciąg znaków reprezentujący zdekodowany komponent identyfikatora URI. Zwraca undefined
, gdy
z nieprawidłowymi danymi wejściowymi.
Przykład
const decodeUriComponent = require('decodeUriComponent');
const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
// ...
}
Składnia
decodeUriComponent(encoded_uri_component);
Parametry
Parametr | Typ | Opis |
---|---|---|
encoded_uri_component |
ciąg znaków |
Komponent URI zakodowany przez
encodeUriComponent()
lub w inny sposób.
|
Powiązane uprawnienia
Brak.
encodeUri
Zwraca zakodowany identyfikator URI (Uniform Resource Identifier) przez zmianę znaczenia znaków. Zwraca ciąg znaków, który reprezentuje podany ciąg znaków zakodowany. jako identyfikator URI.
Przykład
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
Składnia
encodeUri(uri);
Parametry
Parametr | Typ | Opis |
---|---|---|
uri |
ciąg znaków | Pełny identyfikator URI. |
Powiązane uprawnienia
Brak.
encodeUriComponent
Zwraca zakodowany identyfikator URI (Uniform Resource Identifier) przez zmianę znaczenia znaków. Zwraca ciąg znaków, który reprezentuje podany ciąg znaków zakodowany jako identyfikator URI.
Przykład
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
Składnia
encodeUriComponent(str);
Parametry
Parametr | Typ | Opis |
---|---|---|
str |
ciąg znaków | Składnik identyfikatora URI. |
Powiązane uprawnienia
Brak.
extractEventsFromMpv1
Konwertuje przychodzące żądanie Measurement Protocol w wersji 1 na listę zdarzeń w Format ujednoliconego schematu. Zwraca listę wyodrębnionych zdarzeń. Zgłasza błąd, jeśli: żądanie ma nieprawidłowy format.
Przykład
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.
}
}
Składnia
extractEventsFromMpv1();
Powiązane uprawnienia
Wymaga uprawnień read_request
. To uprawnienie musi być skonfigurowane tak,
zezwól na dostęp do co najmniej:
body
query parameters
extractEventsFromMpv2
Konwertuje przychodzące żądanie Measurement Protocol V2 na listę zdarzeń w Format ujednoliconego schematu. Zwraca listę wyodrębnionych zdarzeń. Zgłasza błąd, jeśli: żądanie ma nieprawidłowy format.
Przykład
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.
}
}
Składnia
extractEventsFromMpv2();
Powiązane uprawnienia
Wymaga uprawnień read_request
. To uprawnienie musi być skonfigurowane tak,
zezwól na dostęp do co najmniej:
body
query parameters
fromBase64
Dekoduje ciąg zakodowany w formacie base64. Zwraca undefined
, jeśli dane wejściowe są nieprawidłowe.
Składnia
fromBase64(base64EncodedString);
Parametry
Parametr | Typ | Opis |
---|---|---|
base64EncodedString |
ciąg znaków | Ciąg znaków zakodowany w standardzie Base64. |
Przykład
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
Powiązane uprawnienia
Brak.
generateRandom
Zwraca losową liczbę (całkowitą) z podanego zakresu.
Przykład
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
Składnia
generateRandom(min, max);
Parametry
Parametr | Typ | Opis |
---|---|---|
min |
liczba | Minimalna wartość potencjalna zwróconej liczby całkowitej (włącznie). |
max |
liczba | Maksymalna potencjalna wartość zwróconej liczby całkowitej (włącznie). |
Powiązane uprawnienia
Brak.
getAllEventData
Zwraca kopię danych zdarzenia.
Składnia
getAllEventData();
Powiązane uprawnienia
getClientName
Zwraca ciąg znaków zawierający nazwę bieżącego klienta.
Składnia
getClientName();
Powiązane uprawnienia
getContainerVersion
Zwraca obiekt zawierający dane o bieżącym kontenerze. Zwrócone wartości będzie zawierać te pola:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
Przykład
const getContainerVersion = require('getContainerVersion');
const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];
Składnia
getContainerVersion();
Powiązane uprawnienia
getCookieValues
Zwraca tablicę zawierającą wartości wszystkich plików cookie o podanej nazwie.
Przykład
const getCookieValues = require('getCookieValues');
const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
// ...
}
Składnia
getCookieValues(name[, noDecode]);
Parametry
Parametr | Typ | Opis |
---|---|---|
name |
ciąg znaków | Nazwa pliku cookie. |
noDecode |
boolean (wartość logiczna). |
Jeśli ustawiona jest wartość true , wartości plików cookie nie będą dekodowane przed
. Domyślna wartość to false .
|
Powiązane uprawnienia
getEventData
Zwraca kopię wartości w danych zdarzenia w przypadku podanej ścieżki. Zwroty
undefined
, jeśli nie ma danych zdarzenia lub na danej ścieżce nie ma wartości.
Przykład
const getEventData = require('getEventData');
const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');
Parametry
Parametr | Typ | Opis |
---|---|---|
keyPath |
dowolny |
Ścieżka klucza, w której poszczególne komponenty są rozdzielone kropkami.
komponentami ścieżki mogą być klucze w obiekcie lub indeksy w tablicy. Jeśli
keyPath nie jest ciągiem znaków, został przekształcony w ciąg znaków.
|
Składnia
getEventData(keyPath);
Powiązane uprawnienia
getGoogleAuth
Zwraca obiekt autoryzacji, który jest używany z
sendHttpGet
lub sendHttpRequest
,
dołącz nagłówek autoryzacji
dla interfejsów Google Cloud APIs. Ten interfejs API używa
Domyślne dane logowania aplikacji do automatycznego znajdowania danych logowania w
i środowisku serwera.
Przykład
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();
}
});
Składnia
getGoogleAuth(scopes);
Parametry
Parametr | Typ | Opis |
---|---|---|
scopes
|
Tablica | Tablica zakresów interfejsów API Google OAuth 2.0 do poprosić o dostęp dla. |
Powiązane uprawnienia
Wymaga uprawnień use_google_credentials
. Wymagane uprawnienia:
skonfigurowano z co najmniej 1 dozwolonym zakresem.
getGoogleScript
Pobiera zasób ze wstępnie określonego zestawu skryptów Google i zwraca obietnicę ze skryptem i powiązanymi metadanymi buforowania.
Obietnica zostanie przetworzona do obiektu zawierającego 2 klucze: script
i
metadata
Jeśli żądanie nie zostanie zrealizowane, obietnica zostanie odrzucona z użyciem klucza reason
.
Obiekt metadata
będzie zawierać te metadane buforowania oparte na:
nagłówki odpowiedzi zasobów; każde pole będzie obecne tylko wtedy, gdy odpowiada
jest obecny w odpowiedzi na żądanie zasobu.
{
'cache-control': string,
'expires': string,
'last-modified': string,
}
Przykład
const getGoogleScript = require('getGoogleScript');
getGoogleScript('ANALYTICS').then((result) => {
// Operate on result.script and result.metadata here.
});
Składnia
getGoogleScript(script[, options]);
Parametry
Parametr | Typ | Opis |
---|---|---|
script |
ciąg znaków |
Nazwa skryptu. Obsługiwane skrypty to
'ANALYTICS' , 'GTAG' i
'GTM' 'ANALYTICS'
pobiera skrypt Google Analytics z
https://www.google-analytics.com/analytics.js Opcja 'GTAG' pobiera globalny tag witryny (gtag.js)
skrypt: https://www.googletagmanager.com/gtag/js .Opcja 'GTM' pobiera Menedżera tagów Google
skrypt: https://www.googletagmanager.com/gtm.js .
|
options |
obiekt | Opcjonalne opcje żądania. Obsługiwane opcje znajdziesz poniżej. |
Opcje
Opcja | Typ | Opis |
---|---|---|
id |
ciąg znaków |
Dotyczy 'GTAG' z identyfikatorem pomiaru gtag i
'GTM' identyfikatorem kontenera internetowego (np. GTM-XXXX).
|
debug |
dowolny | Jeśli ma wartość prawda, wysyła żądanie i zwraca wersję do debugowania pomiaru. skrypt. |
timeout |
liczba |
limit czasu żądania w milisekundach; niedodatnie są ignorowane. Jeśli
upływ limitu czasu żądania, wywołanie zwrotne zostanie wywołane z poleceniem
undefined jako wartość skryptu i {} dla
obiektu metadanych.
|
Nierozpoznane klucze opcji są ignorowane.
Powiązane uprawnienia
Wymaga uprawnień send_http
. Uprawnienie musi być skonfigurowane tak, aby zezwalać na nie
dostęp do co najmniej:
- Zezwól na używanie domen Google
getRemoteAddress
Zwraca reprezentację ciągu znaków adresu IP, z którego pochodzi żądanie
pochodzące np. 12.345.67.890
dla IPv4 lub 2001:0db8:85a3:0:0:8a2e:0370:7334
dla IPv6, odczytując nagłówki żądań, takie jak Forwarded i X-Forwarded-For.
Uwaga: ten interfejs API dokłada wszelkich starań, aby wykryć źródłowy adres IP, ale
nie może zagwarantować, że wynik jest dokładny.
Składnia
getRemoteAddress();
Powiązane uprawnienia
Wymaga uprawnień read_request
. To uprawnienie musi być skonfigurowane tak,
zezwól na dostęp do co najmniej:
- Nagłówki
Forwarded
iX-Forwarded-For
- Zdalny adres IP
getRequestBody
Zwraca treść żądania w postaci ciągu znaków (jeśli występuje) lub undefined
w innym przypadku.
Składnia
getRequestBody();
Powiązane uprawnienia
getRequestHeader
Zwraca wartość nagłówka nazwanego żądania w postaci ciągu znaków (jeśli występuje) lub
W innym przypadku undefined
. Jeśli nagłówek się powtarza, zwracane wartości są łączone
oraz ', '
.
Przykład
const getRequestHeader = require('getRequestHeader');
const host = getRequestHeader('host');
Składnia
getRequestHeader(headerName);
Parametry
Parametr | Typ | Opis |
---|---|---|
headerName |
ciąg znaków | Nazwa nagłówka. Wielkość liter w tej wartości nie jest rozróżniana. |
Powiązane uprawnienia
getRequestMethod
Zwraca metodę żądania, np. 'GET'
lub 'POST'
, jako ciąg znaków.
Przykład
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
Składnia
getRequestMethod();
Powiązane uprawnienia
Brak.
getRequestPath
Zwraca ścieżkę żądania bez ciągu zapytania. Jeśli na przykład adres URL to
'/foo?id=123'
, zwraca wartość '/foo'
. Automatycznie usuwa dane z serwera
prefiks adresu URL kontenera ze ścieżki. Jeśli na przykład adres URL kontenera serwera to
https://example.com/analytics
, a ścieżka żądania to '/analytics/foo'
, ten
zwraca '/foo'
.
Przykład
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
Składnia
getRequestPath();
Powiązane uprawnienia
getRequestQueryParameter
Zwraca zdekodowaną wartość nazwanego parametru ciągu zapytania w postaci ciągu znaków,
lub undefined
, jeśli parametr nie jest podany. Jeśli parametr powtórzy się w
w ciągu zapytania pierwszą wartością, która pojawi się w ciągu zapytania,
.
Przykład
const getRequestQueryParameter = require('getRequestQueryParameter');
const query = getRequestQueryParameter('query');
if (query) {
// Process query here.
}
Składnia
getRequestQueryParameter(name);
Parametry
Parametr | Typ | Opis |
---|---|---|
name |
ciąg znaków | Nazwa parametru zapytania. |
Powiązane uprawnienia
getRequestQueryParameters
Zwraca parametry zapytania przychodzącego żądania HTTP jako obiekt mapowany nazwy parametrów zapytania do odpowiednich wartości lub wartości. Nazwy parametrów a wartości są dekodowane.
Przykład
const getRequestQueryParameters = require('getRequestQueryParameters');
const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
// Handle the search query here.
const maxResults = queryParameters['max_results'];
}
Składnia
getRequestQueryParameters();
Powiązane uprawnienia
getRequestQueryString
Zwraca zapytanie jako ciąg znaków, bez znaku zapytania na początku lub pusty ciąg znaków, jeśli URL żądania nie zawiera ciągu zapytania.
Przykład
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
Składnia
getRequestQueryString();
Powiązane uprawnienia
getTimestamp
Wycofano. Preferuję parametr getTimestampMillis.
Zwraca liczbę, która reprezentuje (w milisekundach) bieżący czas od momentu systemu Unix
epoki; dane zwrócone przez Date.now()
.
Składnia
getTimestamp();
Powiązane uprawnienia
Brak.
getTimestampMillis
Zwraca liczbę, która reprezentuje (w milisekundach) bieżący czas od momentu systemu Unix
epoki; dane zwrócone przez Date.now()
.
Składnia
getTimestampMillis();
Powiązane uprawnienia
Brak.
getType
Zwraca ciąg tekstowy opisujący typ danej wartości.
Typ danych wejściowych | Zwrócona wartość |
---|---|
ciąg znaków | 'string' |
liczba | 'number' |
boolean (wartość logiczna). | 'boolean' |
null | 'null' |
nieokreślone | 'undefined' |
Tablica | 'array' |
Obiekt. | 'object' |
Funkcja | 'function' |
Przykład
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);
}
Składnia
getType(value);
Parametry
Parametr | Typ | Opis |
---|---|---|
value |
dowolny | Wartość wejściowa. |
Powiązane uprawnienia
Brak.
hmacSha256
Oblicza zakodowany podpis przy użyciu uwierzytelniania wiadomości opartego na haszach
Kod (HMAC) z SHA-256. Domyślne kodowanie to base64url
.
Aby użyć tego interfejsu API, ustaw zmienną środowiskową SGTM_CREDENTIALS
na serwerze
do ścieżki pliku klucza JSON zakodowanego w UTF-8 w formacie:
{
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
Wartości to klucze HMAC zakodowane w base64.
Przykład
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;
Składnia
hmacSha256(data, keyId, options)
Parametry
Parametr | Typ | Opis |
---|---|---|
data |
ciąg znaków | Dane do obliczania wartości HMAC. |
keyId
|
ciąg znaków | Identyfikator klucza z pliku kluczy JSON odwołującego się do do użycia. |
options
|
obiekt | Opcjonalna konfiguracja interfejsu API. (Zobacz Opcje poniżej). |
Opcje
Opcja | Typ | Opis |
---|---|---|
outputEncoding
|
ciąg znaków | Określa format kodowania
zwracaną wartość. Obsługiwane formaty to hex ,
base64 lub base64url . Domyślna wartość to
base64url , jeśli nie podano żadnej wartości. |
Powiązane uprawnienia
Minimalna wersja obrazu
isRequestMpv1
zwraca wartość true
, jeśli żądanie przychodzące jest żądaniem z platformy Measurement Protocol w wersji 1; lub
W przeciwnym razie: false
.
Przykład
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
// Handle Measurement Protocol V1 request.
const events = extractEventsFromMpv1();
}
Składnia
isRequestMpv1();
Powiązane uprawnienia
Brak.
isRequestMpv2
zwraca wartość true
, jeśli żądanie przychodzące jest żądaniem z platformy Measurement Protocol w wersji 2; lub
W przeciwnym razie: false
.
Przykład
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
Składnia
isRequestMpv2();
Powiązane uprawnienia
Brak.
logToConsole
Loguje argumenty w konsoli.
Te logi są widoczne w narzędziu Eksplorator logów w konsoli Google Cloud.
Aby wyświetlić wpisy logu, w eksploratorze logów uruchom zapytanie logName =~ "stdout"
.
utworzonej przez ten interfejs API.
Przykład
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
Składnia
logToConsole(argument1[, argument2, ...]);
Parametry
Interfejs API przyjmuje co najmniej jeden argument, z których każdy jest konwertowany na ciąg, jeśli i zalogowałem się w konsoli.
Powiązane uprawnienia
makeInteger
Konwertuje podaną wartość na liczbę (całkowitą).
Składnia
makeInteger(value);
Parametry
Parametr | Typ | Opis |
---|---|---|
value |
dowolny typ | Wartość do przekonwertowania. |
Powiązane uprawnienia
Brak.
makeNumber
Konwertuje podaną wartość na liczbę.
Składnia
makeNumber(value);
Parametry
Parametr | Typ | Opis |
---|---|---|
value |
dowolny typ | Wartość do przekonwertowania. |
Powiązane uprawnienia
Brak.
makeString
Zwraca podaną wartość jako ciąg znaków.
Składnia
makeString(value);
Parametry
Parametr | Typ | Opis |
---|---|---|
value |
dowolny typ | Wartość do przekonwertowania. |
Powiązane uprawnienia
Brak.
makeTableMap
Konwertuje prosty obiekt tabeli z 2 kolumnami na Map
. Zastosowanie:
zmienić pole szablonu SIMPLE_TABLE
z 2 kolumnami na łatwiejsze do zarządzania
.
Ta funkcja może na przykład przekonwertować obiekt tabeli:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
na mapę:
{
'k1': 'v1',
'k2': 'v2'
}
Zwraca Object: przekonwertowane pary klucz-wartość (Map
) zostały dodane do
go lub null
w inny sposób.
Składnia
makeTableMap(tableObj, keyColumnName, valueColumnName);
Parametry
Parametr | Typ | Opis |
---|---|---|
tableObj |
Wyświetl listę |
Obiekt tabeli do przekonwertowania. To lista map, z których każda
Map oznacza wiersz w tabeli. Każda nazwa właściwości w
obiektem wiersza jest nazwa kolumny, a wartością właściwości jest kolumna.
w wierszu.
|
keyColumnName |
ciąg znaków |
Nazwa kolumny, której wartości będą kluczami w skonwertowanej wartości
Map
|
valueColumnName |
ciąg znaków |
Nazwa kolumny, której wartości staną się wartościami w kolumnie po przekonwertowaniu
Map
|
Powiązane uprawnienia
Brak.
parseUrl
Zwraca obiekt, który zawiera wszystkie części składowe danego adresu URL, podobnie jak
obiekt URL
.
Ten interfejs API zwróci kod undefined
w przypadku każdego nieprawidłowego adresu URL. Prawidłowo sformatowany
W adresach URL lub w polach, których nie ma w ciągu adresu URL, wartość będzie pusta,
a w przypadku searchParams
– pusty obiekt.
Zwrócony obiekt będzie zawierał te pola:
{
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,
}
Przykład
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
Składnia
parseUrl(url);
Parametry
Parametr | Typ | Opis |
---|---|---|
url |
ciąg znaków | Pełny adres URL do analizy. |
Powiązane uprawnienia
Brak.
returnResponse
Opróżnia odpowiedź, która została wcześniej ustawiona przez inne szablony przy użyciu interfejsów API. modyfikujące odpowiedź, w tym setCookie, setPixelResponse, setResponseBody, setResponseHeader, setResponseStatus. Domyślnie jest to kod stanu HTTP 200, puste treści i bez nagłówków.
Zalecamy używanie tego interfejsu API z szablonu klienta.
Składnia
returnResponse();
Przykład
Zobacz przykład: runContainer
.
Powiązane uprawnienia
runContainer
Uruchamia logikę kontenera (zmienne, reguły, tagi) w zakresie zdarzenia. Jeśli ten interfejs API zostanie wywołany podczas wykonywania kontenera, kontener zostanie uruchomiony ponownie.
Wywołania zwrotne onComplete
i onStart
otrzymują funkcję o nazwie
bindToEvent
Użyj narzędzia bindToEvent
, aby uruchomić interfejs API w kontekście zdarzenia.
Więcej informacji znajdziesz w przykładzie funkcji addEventCallback.
Zalecamy używanie tego interfejsu API z szablonu klienta.
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());
Składnia
runContainer(event, onComplete, onStart);
Parametry
Parametr | Typ | Opis |
---|---|---|
event |
obiekt | Parametry zdarzenia. |
onComplete |
funkcja | Wywołanie zwrotne wywoływane po zakończeniu uruchamiania wszystkich tagów. |
onStart |
funkcja | Wywołanie zwrotne wywoływane natychmiast przed uruchomieniem tagów. |
Powiązane uprawnienia
sendEventToGoogleAnalytics
Wysyła jedno zdarzenie za pomocą wspólnych danych o zdarzeniach do Google Analytics i zwraca
promise, które odnosi się do obiektu z kluczem location
lub
odrzuca obiekt z kluczem reason
. Miejsce docelowe, Universal
Analytics lub Google Analytics 4, korzystając z identyfikatora pomiaru w przypadku zdarzenia
i skalowalnych danych.
Pole location
jest ustawione na nagłówek location
(jeśli istnieje).
Przykład
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();
});
Składnia
sendEventToGoogleAnalytics(event);
Parametry
Parametr | Typ | Opis |
---|---|---|
event |
obiekt | Zdarzenie w formacie ujednoliconego schematu. |
Powiązane uprawnienia
Wymaga uprawnień send_http
. Uprawnienie musi być skonfigurowane tak, aby zezwalać na nie
dostęp do co najmniej:
- Zezwól na używanie domen Google
sendHttpGet
Wysyła żądanie HTTP GET do określonego adresu URL i zwraca obietnica rozwiązana w wyniku realizacji żądania lub przekroczono limit czasu.
Otrzymany wynik to obiekt zawierający 3 klucze: statusCode
, headers
,
i body
. Jeśli żądanie nie zostało zrealizowane (np. zły URL, brak trasy do hosta,
niepowodzenie negocjacji SSL itp.), obietnica zostanie odrzucona i zostaną odrzucone w terminie: {reason:
'failed'}
. Jeśli opcja timeout
była ustawiona, a upłynął limit czasu żądania, w parametrze
obietnica odrzuci atrybut: {reason: 'timed_out'}
Przykład
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);
Składnia
sendHttpGet(url[, options]);
Parametry
Parametr | Typ | Opis |
---|---|---|
url |
ciąg znaków | Żądany URL. |
options
|
obiekt | Opcjonalne opcje żądania. (Zobacz Opcje poniżej). |
Opcje
Opcja | Typ | Opis |
---|---|---|
headers |
ciąg znaków | Dodatkowe nagłówki żądania. |
timeout
|
liczba | Limit czasu w milisekundach przed
żądanie zostało przerwane. Domyślna wartość to 15000 . |
authorization
|
obiekt | Opcjonalny obiekt autoryzacji z
połączenie z numerem getGoogleAuth w przypadku:
nagłówki autoryzacji podczas wysyłania żądań
do googleapis.com . |
Powiązane uprawnienia
sendHttpRequest
Wysyłam żądanie HTTP na podany adres URL i zwraca obietnicę. , który kończy się wraz z odpowiedzią na żądanie po zakończeniu lub upłynięciu czasu oczekiwania.
Otrzymany wynik to obiekt zawierający 3 klucze: statusCode
, headers
,
i body
. Jeśli żądanie nie zostało zrealizowane (np. zły URL, brak trasy do hosta,
niepowodzenie negocjacji SSL itp.), obietnica zostanie odrzucona i zostaną odrzucone w terminie: {reason:
'failed'}
. Jeśli opcja timeout
była ustawiona, a upłynął limit czasu żądania, w parametrze
obietnica odrzuci atrybut: {reason: 'timed_out'}
Przykład
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']);
});
Składnia
sendHttpRequest(url[, options[, body]]);
Parametry
Parametr | Typ | Opis |
---|---|---|
url |
ciąg znaków | Żądany URL. |
options
|
obiekt | Opcjonalne opcje żądania. (Zobacz Opcje poniżej). |
body |
ciąg znaków | Opcjonalna treść żądania. |
Opcje
Opcja | Typ | Opis |
---|---|---|
headers |
ciąg znaków | Dodatkowe nagłówki żądania. |
method |
obiekt | Metoda żądania. Domyślna wartość to GET . |
timeout
|
liczba | Limit czasu w milisekundach przed
żądanie zostało przerwane. Domyślna wartość to 15000 . |
authorization
|
obiekt | Opcjonalny obiekt autoryzacji z
połączenie z numerem getGoogleAuth w przypadku:
nagłówki autoryzacji podczas wysyłania żądań
do googleapis.com . |
Powiązane uprawnienia
sendPixelFromBrowser
Wysyła polecenie do przeglądarki, aby wczytać podany adres URL jako tag <img>
. Ten
jest obsługiwany w tagu Google w GA4 oraz
Tagi witryny Google Analytics: zdarzenie GA. Musisz skonfigurować kontener serwera
Adres URL. Więcej informacji znajdziesz w instrukcjach.
Ten interfejs API zwraca wartość false
, jeśli przychodzące żądanie nie obsługuje polecenia
lub jeśli odpowiedź została już usunięta. W innym przypadku ten interfejs API
zwraca true
.
Przykład:
const sendPixelFromBrowser = require('sendPixelFromBrowser');
sendPixelFromBrowser('https://example.com/?id=123');
Składnia
sendPixelFromBrowser(url)
Parametry
Parametr | Typ | Opis |
---|---|---|
url |
ciąg znaków | Adres URL wysyłany do przeglądarki. |
Powiązane uprawnienia
setCookie
Ustawia lub usuwa plik cookie z określonymi opcjami.
Aby usunąć plik cookie, trzeba ustawić plik cookie z tą samą ścieżką i domeną, z którym powiązany jest plik cookie
za pomocą którego został utworzony plik cookie i przypisać mu wartość wygaśnięcia w przeszłości,
np. "Thu, 01 Jan 1970 00:00:00 GMT"
Pamiętaj, że odpowiedź na żądanie returnResponse musi być wywołana. powinna zostać odesłana do klienta.
Przykład
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
Składnia
setCookie(name, value[, options[, noEncode]]);
Parametry
Parametr | Typ | Opis |
---|---|---|
name |
ciąg znaków | Nazwa pliku cookie. Wielkość liter w nazwie nie jest rozróżniana. |
value |
ciąg znaków | Wartość pliku cookie. |
options |
obiekt | Opcjonalne atrybuty plików cookie:domain, wygasa, fallbackDomain,httpOnly, max- wiek, ścieżka, bezpieczna, i sameSite. (Zobacz Opcje poniżej). |
noEncode |
boolean (wartość logiczna). |
Jeśli ustawiona jest wartość prawda, wartość pliku cookie nie będzie kodowana. Domyślna wartość to
false
|
domain (domena): host, do którego zostanie wysłany plik cookie. Jeśli jest ustawiona na specjalne „auto”, host zostanie automatycznie obliczony na podstawie następującą strategię:
- eTLD+1 nagłówka
Forwarded
(jeśli występuje). - eTLD+1 nagłówka
X-Forwarded-Host
(jeśli występuje). - eTLD+1 nagłówka
Host
.
- eTLD+1 nagłówka
utraci ważność: maksymalny okres ważności pliku cookie. Musi być w formacie UTC ciąg daty, np. „Sob., 26 paź 1985 08:21:00 GMT”. Jeśli zarówno
expires
, jak i Wartośćmax-age
jest ustawiona, a zasadamax-age
ma pierwszeństwo.httpOnly: uniemożliwia JavaScript dostęp do pliku cookie, jeśli
true
.max-age: liczba sekund do wygaśnięcia pliku cookie. Zero lub wartość ujemna natychmiast utraci ważność pliku cookie. Jeśli zarówno
expires
, jak imax-age
jest ustawione, pierwszeństwo mamax-age
.path: ścieżka, która musi istnieć w żądanym adresie URL. W przeciwnym razie przeglądarka nie wysłać nagłówek pliku cookie.
secure: jeśli ma wartość
true
, plik cookie jest wysyłany do serwera tylko wtedy, gdy jest wysyłane z punktu końcowegohttps:
.sameSite: informuje, że pliku cookie nie można wysyłać z innych domen. żądań. Musi to być
'strict'
,'lax'
lub'none'
.
Powiązane uprawnienia
setPixelResponse
Ustawia treść odpowiedzi na GIF 1 x 1, ustawia nagłówek Content-Type na „image/gif”, ustawia nagłówki buforowania tak, aby klienty użytkownika nie buforowały odpowiedzi, oraz ustawia stan odpowiedzi na 200.
Pamiętaj, że odpowiedź na żądanie returnResponse musi być wywołana. powinna zostać odesłana do klienta.
Składnia
setPixelResponse();
Powiązane uprawnienia
Wymaga uprawnień access_response
. To uprawnienie musi być skonfigurowane tak,
zezwól na dostęp do co najmniej:
headers
– musi zezwalać na następujące kluczecontent-type
cache-control
expires
pragma
body
status
setResponseBody
Ustawia treść odpowiedzi na argument.
Pamiętaj, że odpowiedź na żądanie returnResponse musi być wywołana. powinna zostać odesłana do klienta.
Składnia
setResponseBody(body[, encoding]);
Parametry
Parametr | Typ | Opis |
---|---|---|
body |
ciąg znaków | Wartość do ustawienia jako treść odpowiedzi. |
encoding |
ciąg znaków |
Kodowanie znaków treści odpowiedzi (domyślnie jest to
'utf8' ). Obsługiwane wartości to m.in. 'ascii' ,
'utf8' , 'utf16le' , 'ucs2' ,
'base64' , 'latin1' , 'binary' ,
i 'hex' .
|
Powiązane uprawnienia
Wymaga uprawnień access_response
. To uprawnienie musi być skonfigurowane tak,
zezwól na dostęp do co najmniej:
body
setResponseHeader
Ustawia nagłówek w odpowiedzi, która zostanie zwrócona. Jeśli nagłówek o tej nazwie (wielkość liter nie jest rozróżniana) została wcześniej ustawiona przez ten interfejs API. Drugie wywołanie nadpisać lub wyczyścić wartość ustawioną przez wcześniejszy element wywołujący.
Pamiętaj, że odpowiedź na żądanie returnResponse musi być wywołana. powinna zostać odesłana do klienta.
Składnia
setResponseHeader(name, value);
Parametry
Parametr | Typ | Opis |
---|---|---|
name |
ciąg znaków | Nazwa nagłówka. W nazwach nagłówków HTTP nie jest rozróżniana wielkość liter, więc będzie ona zapisana małymi literami. |
value |
ciąg niezdefiniowany | Wartość nagłówka. Jeśli ma wartość null lub nie jest zdefiniowany, powoduje wyczyszczenie nazwanego nagłówka od odpowiedzi, która zostanie zwrócona. |
Powiązane uprawnienia
Wymaga uprawnień access_response
. To uprawnienie musi być skonfigurowane tak,
zezwól na dostęp do co najmniej:
headers
setResponseStatus
Ustawia kod stanu HTTP odpowiedzi, która zostanie zwrócona.
Pamiętaj, że odpowiedź na żądanie returnResponse musi być wywołana. powinna zostać odesłana do klienta.
Składnia
setResponseStatus(statusCode);
Parametry
Parametr | Typ | Opis |
---|---|---|
statusCode |
liczba | Kod stanu HTTP, który ma zostać zwrócony. |
Powiązane uprawnienia
Wymaga uprawnień access_response
. To uprawnienie musi być skonfigurowane tak,
zezwól na dostęp do co najmniej:
status
sha256
Oblicza skrót SHA-256 danych wejściowych i wywołuje wywołanie zwrotne z funkcją
skrótu zakodowanego w base64, chyba że obiekt options
określa inny
kodowanie wyjściowego.
Ten podpis i zachowanie interfejsu API jest zgodne z interfejsem API sha256
w przypadku kontenerów internetowych.
jednak szablony niestandardowe w kontenerach serwera powinny korzystać z funkcji
Interfejs API sha256Sync
umożliwiający prostszy kod.
Przykład
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'});
Składnia
sha256(input, onSuccess, options = undefined);
Parametry
Parametr | Typ | Opis |
---|---|---|
input |
ciąg znaków | Ciąg do zaszyfrowania. |
onSuccess |
funkcja |
Funkcja jest wywoływana z otrzymanym skrótem zakodowanym w formacie base64, chyba że funkcja
Obiekt options określa inne kodowanie wyjściowe.
|
options |
obiekt |
Opcjonalny obiekt opcji określających kodowanie wyjściowe. Jeśli
obiekt powinien zawierać klucz outputEncoding
z wartością base64 lub hex .
|
Powiązane uprawnienia
Brak.
sha256Sync
Oblicza i zwraca skrót SHA-256 danych wejściowych zakodowanych w formacie base64
chyba że obiekt options
określa inne kodowanie wyjściowe.
Przykład
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));
Składnia
sha256Sync(input, options = undefined);
Parametry
Parametr | Typ | Opis |
---|---|---|
input |
ciąg znaków | Ciąg do zaszyfrowania. |
options |
obiekt |
Opcjonalny obiekt opcji określających kodowanie wyjściowe. Jeśli
obiekt powinien zawierać klucz outputEncoding
z wartością base64 lub hex .
|
Powiązane uprawnienia
Brak.
templateDataStorage
Zwraca obiekt z metodami dostępu do magazynu danych szablonów. Szablon magazyn danych umożliwia udostępnianie danych pomiędzy uruchomieniami jednego szablonu. Dane przechowywane w magazynie danych szablonu pozostają na serwerze, na którym działa kontenera. W większości przypadków kontener jest uruchamiany przez kilka serwerów, Przechowywanie danych w magazynie danych szablonu nie gwarantuje, że każde kolejne żądanie będzie miało dostęp do danych.
„Dane” w nazwie „templateDataStorage” mówi o fakcie, że tylko oczywiste,
za pomocą tego interfejsu API mogą być przechowywane typy danych niezwiązane z funkcją. żadnych funkcji lub
odwołania do funkcji przekazywanych do interfejsu API będą przechowywane jako null
.
Składnia
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();
Przykład
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);
});
Powiązane uprawnienia
testRegex
Testuje ciąg znaków pod kątem wyrażenia regularnego utworzonego za pomocą interfejsu API createRegex
. Zwraca true
jeśli wyrażenie regularne pasuje. W przeciwnym razie zwraca false
.
Wyrażenie regularne utworzone z flagą globalną jest stanowe. Zobacz Dokumentacja RegExp.
Przykład
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');
Składnia
testRegex(regex, string);
Parametry
Parametr | Typ | Opis |
---|---|---|
regex |
Obiekt. | Wyrażenie regularne używane do testowania, zwracane z interfejsu API createRegex. |
string |
ciąg znaków | Ciąg testowy do przetestowania. |
Powiązane uprawnienia
Brak.
toBase64
Koduje ciąg jako base64 lub base64url. Domyślnie jest to kodowanie base64.
Składnia
toBase64(input, options);
Parametry
Parametr | Typ | Opis |
---|---|---|
input |
ciąg znaków | Ciąg do zakodowania. |
options
|
obiekt | Opcjonalna konfiguracja interfejsu API. (Zobacz Opcje poniżej). |
Opcje
Opcja | Typ | Opis | Wersja minimalna |
---|---|---|---|
urlEncoding
|
boolean (wartość logiczna). | Jeśli zostanie zwrócona wartość prawda,
zakodować za pomocą
Format: base64url . |
1.0.0 |
Przykład
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
Powiązane uprawnienia
Brak.
BigQuery
Zwraca obiekt udostępniający funkcje BigQuery.
Funkcja BigQuery.insert
umożliwia zapisywanie danych w tabeli BigQuery. it
zwraca obietnicę, która obowiązuje po pomyślnym wstawieniu lub
odrzucenia w przypadku błędu.
Jeśli wstawienie się powiedzie, obietnica rozwiązuje się bez użycia argumentów.
Jeśli wstawienie się nie uda, obietnica odrzuca obietnicę, która zawiera listę obiektów zawierających informacje o przyczynie błędu i ewentualnie obiekt wiersza, jeśli wystąpi błąd. To możliwe w przypadku jako część żądania, która musi zostać zrealizowana, a inne nie. W tym przypadku obietnica jest odrzucana wraz z listą błędów w każdym wierszu z atrybutem obiekt wiersza ułatwiający rozróżnienie wierszy, które zostały wstawione (zobacz Przykłady błędów poniżej). Zobacz Dokumentacja BigQuery dotycząca błąd , aby dowiedzieć się więcej.
Składnia
BigQuery.insert(connectionInfo, rows[, options]);
Parametr | Typ | Opis |
---|---|---|
connectionInfo |
obiekt |
Określa informacje wymagane do nawiązania połączenia z tabelą BigQuery. Jest
1 parametr opcjonalny i 2 wymagane:
|
rows |
Tablica | Wiersze, które mają zostać wstawione do tabeli. |
options |
obiekt | Opcjonalne opcje żądania. Obsługiwane opcje: ignoreUnknownValues i skipInvalidRows. Nieznane klawisze opcji są ignorowane. (Zobacz Opcje poniżej). |
Parametr | Typ | Opis |
---|---|---|
ignoreUnknownValues |
boolean (wartość logiczna). | Jeśli ustawiona jest wartość true , akceptuj wiersze zawierające wartości.
które nie pasują do schematu. Nieznane wartości są ignorowane. Domyślne
do false . |
skipInvalidRows |
boolean (wartość logiczna). | Jeśli ustawiono wartość true , wstaw wszystkie prawidłowe wiersze żądania,
nawet jeśli są nieprawidłowe wiersze. Domyślna wartość to false . |
Błąd „Nie znaleziono modułu” oznacza, że Twój kontener serwera prawdopodobnie uruchamia starszej wersji obrazu, która nie zawierała jeszcze modułu BigQuery. Wdróż ponownie kontener serwera z tymi samymi ustawieniami za pomocą naszego skrypt wdrożenia. Moduł zostanie automatycznie dodany po zakończeniu operacji.
Błąd inny niż wstawienie zwykle ma 1 obiekt błędu z kluczem reason
:
[{reason: 'invalid'}]
Błąd wstawiania może zawierać wiele obiektów błędu z tablicą errors
i obiekt row
. Poniżej znajdziesz przykładową odpowiedź dotyczącą błędu z usługi
wstawisz 2 wiersze, w których tylko jeden z nich zawiera błąd:
[
{
"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
}
}
]
Przykład
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);
Powiązane uprawnienia
Firestore
Zwraca obiekt, który udostępnia funkcje Firestore.
Ten interfejs API obsługuje tylko Firestore w trybie natywnym, a nie Firestore w Tryb Datastore. Dodatkowo interfejs API obsługuje tylko używanie domyślnej bazy danych.
Firestore.read
Funkcja Firestore.read
odczytuje dane z dokumentu Firestore oraz
zwraca obietnicę, która odnosi się do obiektu zawierającego 2 klucze:
id
i data
. Jeśli dokument nie istnieje, obietnica zostanie odrzucona z parametrem
obiekt zawierający klucz reason
równy not_found
.
Składnia
Firestore.read(path[, options]);
Parametr | Typ | Opis |
---|---|---|
path |
ciąg znaków | Ścieżka do dokumentu lub kolekcji. Nie może zaczynać się ani kończyć „/”. |
options |
obiekt | Opcjonalne opcje żądania. Obsługiwane opcje: projectId, disableCache oraz transaction (transakcja). Brak informacji są ignorowane. (Zobacz Opcje poniżej). |
Parametr | Typ | Opis |
---|---|---|
projectId |
ciąg znaków | Opcjonalnie. Identyfikator projektu Google Cloud Platform. W przypadku jego pominięcia
Pole projectId jest pobierane ze zmiennej środowiskowej
GOOGLE_CLOUD_PROJECT , o ile
access_firestore
ustawienie uprawnień dla identyfikatora projektu jest ustawione na * lub
GOOGLE_CLOUD_PROJECT Jeśli kontener serwera działa
Ustawienie GOOGLE_CLOUD_PROJECT będzie już ustawione na Google Cloud
identyfikatora projektu Google Cloud. |
disableCache |
boolean (wartość logiczna). | Opcjonalnie. Określa, czy pamięć podręczna ma być wyłączona. Buforowanie jest domyślnie włączone, dzięki czemu wyniki wyszukiwania są zapisywane w pamięci podręcznej czas trwania żądania. |
transaction |
ciąg znaków | Opcjonalnie. Wartość pobrana z Firestore.runTransaction(). Oznacza operację do wykonania w transakcji. |
Przykład
const Firestore = require('Firestore');
return Firestore.read('collection/document', {
projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);
Firestore.write
Funkcja Firestore.write
zapisuje dane w dokumencie Firestore lub
kolekcji. Jeśli ścieżka prowadzi do kolekcji, dokument zostanie utworzony ze znakiem
losowo generowany identyfikator. Jeśli ścieżka prowadzi do dokumentu, który nie istnieje,
zostaną utworzone. Ten interfejs API zwraca obietnicę zwracającą się do identyfikatora
Dodane lub zmodyfikowane dokumenty. Jeśli używana jest opcja transakcji, interfejs API
zwraca obietnicę, ale nie zawiera identyfikatora, ponieważ zapisy są grupowane.
Składnia
Firestore.write(path, input[, options]);
Parametry
Parametr | Typ | Opis |
---|---|---|
path |
ciąg znaków | Ścieżka do dokumentu lub kolekcji. Nie może zaczynać się ani kończyć „/”. |
input |
obiekt | Wartość do zapisania w dokumencie. Jeśli opcja scalania jest ustawiona, interfejs API scali klucze z danych wejściowych do dokumentu. |
options |
obiekt | Opcjonalne opcje żądania. Obsługiwane opcje: projectId, merge i transaction (transakcja). Nieznane klawisze opcji są ignorowane. (Zobacz Opcje poniżej). |
Parametr | Typ | Opis |
---|---|---|
projectId |
ciąg znaków | Opcjonalnie. Identyfikator projektu Google Cloud Platform. W przypadku jego pominięcia
Pole projectId jest pobierane ze zmiennej środowiskowej
GOOGLE_CLOUD_PROJECT , o ile
access_firestore
ustawienie uprawnień dla identyfikatora projektu jest ustawione na * lub
GOOGLE_CLOUD_PROJECT Jeśli kontener serwera działa
Ustawienie GOOGLE_CLOUD_PROJECT będzie już ustawione na Google Cloud
identyfikatora projektu Google Cloud. |
merge |
boolean (wartość logiczna). | Opcjonalnie. Jeśli jest ustawiona na
true , a następnie scal klawisze z danych wejściowych do dokumentu,
W przeciwnym razie metoda zastąpi cały dokument. Domyślna wartość to
false |
transaction |
ciąg znaków | Opcjonalnie. Wartość pobrana z Firestore.runTransaction(). Oznacza operację do wykonania w transakcji. |
Przykład
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
Funkcja Firestore.query
wysyła zapytanie do danego zbioru i zwraca
obietnica, która prowadzi do tablicy dokumentów Firestore pasujących do zapytania
warunków. Obiekt dokumentu Firestore jest taki sam jak wymieniony powyżej w
Firestore.read
Jeśli nie ma żadnych dokumentów spełniających warunki zapytania,
zwrócona obietnica zwróci pustą tablicę.
Składnia
Firestore.query(collection, queryConditions[, options]);
Parametr | Typ | Opis |
---|---|---|
collection |
ciąg znaków | Ścieżka do kolekcji. Nie może zaczynać się ani kończyć „/”. |
queryConditions |
Tablica | Tablica warunków zapytania. Każde zapytanie ma postać
tablica z 3 wartościami: klucz,
operator i expectedValue, np.:
[[„identyfikator”, „<”, „5”], [„stan”, „==”, „Kanada”]]. Aby utworzyć wynik zapytania, warunki będą połączone operatorem ORAZ. Proszę zapoznaj się z artykułem operatory zapytań Firestore dotyczące listy zgodnych zapytań . |
options |
obiekt | Opcjonalne opcje żądania. Obsługiwane opcje: projectId, disableCache, limit i transaction. Brak informacji są ignorowane. (Zobacz Opcje poniżej). |
Parametr | Typ | Opis |
---|---|---|
projectId |
ciąg znaków | Opcjonalnie. Identyfikator projektu Google Cloud Platform. W przypadku jego pominięcia
Pole projectId jest pobierane ze zmiennej środowiskowej
GOOGLE_CLOUD_PROJECT , o ile
access_firestore
ustawienie uprawnień dla identyfikatora projektu jest ustawione na * lub
GOOGLE_CLOUD_PROJECT Jeśli kontener serwera działa
Ustawienie GOOGLE_CLOUD_PROJECT będzie już ustawione na Google Cloud
identyfikatora projektu Google Cloud. |
disableCache |
boolean (wartość logiczna). | Opcjonalnie. Określa, czy pamięć podręczna ma być wyłączona. Buforowanie jest domyślnie włączone, dzięki czemu wyniki wyszukiwania są zapisywane w pamięci podręcznej czas trwania żądania. |
limit |
liczba | Opcjonalnie. Zmienia maksymalną liczbę wyników zwracanych przez domyślna wartość to 5. |
transaction |
ciąg znaków | Opcjonalnie. Wartość pobrana z Firestore.runTransaction(). Oznacza operację do wykonania w transakcji. |
Przykład
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
Funkcja Firestore.runTransaction
umożliwia atomowemu podziałowi danych
do odczytu i zapisu z Firestore. Jeśli jednoczesny zapis lub inna transakcja
wystąpi konflikt, transakcja zostanie ponowiona maksymalnie 2 razy. Jeśli się nie uda
po 3 próbach API odrzuci żądanie z powodu błędu. Ten interfejs API zwraca
obietnicę, która kończy się na tablicy identyfikatorów dokumentów dla każdej operacji zapisu
jeśli transakcja się powiedzie, a w przypadku niepowodzenia zostanie odrzucona z powodu błędu.
Składnia
Firestore.runTransaction(callback[, options]);
Parametry
Parametr | Typ | Opis |
---|---|---|
callback |
funkcja | Wywołanie zwrotne z identyfikatorem transakcji w postaci ciągu znaków. mogą być przekazywane do wywołań interfejsu API do odczytu, zapisu i zapytań. Ta funkcja wywołania zwrotnego musi zwrócić obietnicę. Wywołanie zwrotne może zostać wykonane maksymalnie 3 razy, zanim zakończy się niepowodzeniem. |
options |
obiekt | Opcjonalne opcje żądania. Jedyna obsługiwana opcja to projectId. Nieznane klawisze opcji są ignorowane. (Zobacz Opcje poniżej). |
Parametr | Typ | Opis |
---|---|---|
projectId |
ciąg znaków | Opcjonalnie. Identyfikator projektu Google Cloud Platform. W przypadku jego pominięcia
Pole projectId jest pobierane ze zmiennej środowiskowej
GOOGLE_CLOUD_PROJECT , o ile
access_firestore
ustawienie uprawnień dla identyfikatora projektu jest ustawione na * lub
GOOGLE_CLOUD_PROJECT Jeśli kontener serwera działa
Ustawienie GOOGLE_CLOUD_PROJECT będzie już ustawione na Google Cloud
identyfikatora projektu Google Cloud. |
Przykład
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);
Błędy dostępne w każdej funkcji Firestore będą odrzucane z użyciem obiektu
zawierający klucz reason
:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
Przyczyny błędu mogą obejmować m.in. błąd interfejsu API typu REST Firestore Kody.
Powiązane uprawnienia
JSON
Zwraca obiekt, który udostępnia funkcje JSON.
Funkcja parse()
analizuje ciąg znaków JSON, aby utworzyć wartość lub obiekt
opisanego ciągiem. Jeśli nie można przeanalizować wartości (np. ma nieprawidłowy format JSON),
funkcja zwróci undefined
. Jeśli wartość wejściowa nie jest ciągiem, funkcja
dane wejściowe zostaną przekształcone w ciąg znaków.
Funkcja stringify()
przekształca dane wejściowe na ciąg znaków JSON. Jeśli wartość
nie można przeanalizować (np. obiekt ma cykl), metoda zwróci
undefined
Przykład
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'});
Składnia
JSON.parse(stringInput);
JSON.stringify(value);
Powiązane uprawnienia
Brak.
Math
Obiekt udostępniający funkcje Math
.
Składnia
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);
Parametry
Parametry funkcji matematycznej są konwertowane na liczby.
Powiązane uprawnienia
Brak.
Messages
Poniższe interfejsy API współpracują ze sobą, aby umożliwiać przekazywanie wiadomości między różnymi kontenera.
addMessageListener
Dodaje funkcję, która nasłuchuje wiadomości określonego typu. Gdy wiadomość
tego typu jest wysyłana przez interfejs API sendMessage
(zwykle przez tag),
wywołanie zwrotne będzie uruchamiane synchronicznie. Wywołanie zwrotne jest wykonywane z 2 parametrami:
messageType:string
message:Object
Jeśli wywołanie zwrotne zostanie dodane w kliencie, będzie ono odbierać wiadomości
wszystkie zdarzenia utworzone przez klienta. Czy połączenie zwrotne powinno otrzymywać wiadomości
z określonego zdarzenia, a następnie powiąż ten interfejs API ze zdarzeniem za pomocą parametru bindToEvent
w funkcji onStart
interfejsu runContainer
API. Zobacz przykład.
Składnia
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
Parametry
Parametr | Typ | Opis |
---|---|---|
messageType |
ciąg znaków | Typ wiadomości, która ma zostać odsłuchana. Jeśli wartość nie jest ciągiem, zostanie w postaci struny. |
callback |
funkcja | Wywołanie zwrotne do uruchomienia w przypadku wiadomości odpowiedniego typu wysłano. Jeśli wywołanie zwrotne nie jest funkcją, interfejs API nie zrobi nic. |
Przykład
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.
});
}
});
});
Powiązane uprawnienia
Wymaga uprawnień use_message
. Uprawnienie musi być skonfigurowane tak, aby zezwalać na nie
co najmniej:
- Typ wiadomości z
Usage
o wartościlisten
lublisten_and_send
.
hasMessageListener
Zwraca wartość „prawda”, jeśli do danego typu wiadomości został dodany detektor wiadomości. W przeciwnym razie zwraca wartość fałsz.
Składnia
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
Powiązane uprawnienia
Brak.
sendMessage
Wysyła wiadomość określonego typu do zarejestrowanego detektora. Tej opcji można użyć wysyłanie wiadomości z tagu z powrotem do klienta, który uruchomił kontener.
Składnia
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
Parametry
Parametr | Typ | Opis |
---|---|---|
messageType |
ciąg znaków | Typ wiadomości do wysłania. Jeśli wartość nie jest ciągiem, zostanie przekształcona w ciąg znaków. |
message |
obiekt | Wiadomość do wysłania. Jeśli komunikat nie jest obiektem, interfejs API nie zrobi nic. |
Powiązane uprawnienia
Wymaga uprawnień use_message
. Uprawnienie musi być skonfigurowane tak, aby zezwalać na nie
co najmniej:
- Typ wiadomości z
Usage
o wartościlisten_and_send
lubsend
.
Object
Zwraca obiekt, który udostępnia metody Object
.
Metoda keys()
udostępnia funkcję Object.keys() biblioteki standardowej
zachowanie użytkownika. Zwraca tablicę własnej wyliczanej właściwości danego obiektu
nazwy w tej samej kolejności, w jakiej byłaby pętla for...in...
. Jeśli wartością wejściową jest
zostanie on przekształcony w obiekt.
Metoda values()
udostępnia funkcję Object.values() w Bibliotece standardowej
zachowanie użytkownika. Zwraca tablicę wartości właściwości wyliczanych danego obiektu
w tej samej kolejności, w jakiej byłaby pętla for...in...
. Jeśli wartością wejściową jest
zostanie on przekształcony w obiekt.
Metoda entries()
udostępnia funkcję Object.entries() w bibliotece standardowej
zachowanie użytkownika. Zwraca tablicę własnej wyliczanej właściwości danego obiektu
[key, value]
pary w tej samej kolejności, w jakiej byłaby pętla for...in...
. Jeśli
Wartość wejściowa nie jest obiektem, zostanie przekształcona w obiekt.
Metoda freeze()
udostępnia funkcję Object.freeze() w bibliotece standardowej
zachowanie użytkownika. Zablokowanego obiektu nie można już zmienić; blokowanie obiektu zapobiega
dodawania do niej nowych usług, usuwania dotychczasowych usług,
oraz wartości istniejących właściwości. freeze()
zwraca błąd
dany obiekt. Argument podstawowy lub pusty będzie traktowany jako
i zostanie zwrócony.
Metoda delete()
udostępnia operator usuwania w Bibliotece standardowej.
zachowanie użytkownika. Usuwa podany klucz z obiektu, chyba że obiekt zostanie zablokowany.
Podobnie jak operator usuwania biblioteki standardowej, zwraca true
, jeśli pierwsze dane wejściowe
wartość (objectInput
) jest obiektem, który nie jest zablokowany, nawet jeśli drugie dane wejściowe
(keyToDelete
) wskazuje klucz, który nie istnieje. Zwraca false
w:
we wszystkich innych przypadkach. Różni się jednak od operatora usuwania w bibliotece standardowej.
w następujący sposób:
keyToDelete
nie może być ciągiem rozdzielanym kropkami, który określa zagnieżdżony klucz.- Nie można użyć funkcji
delete()
do usunięcia elementów z tablicy. - Za pomocą funkcji
delete()
nie można usuwać żadnych właściwości z zakresu globalnego.
Składnia
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
Parametry
Object.keys
Parametr | Typ | Opis |
---|---|---|
objectInput | dowolny | Obiekt, którego klucze do wyliczenia. Jeśli dane wejściowe nie są obiektem, zostanie przekształcony w obiekt. |
Object.values
Parametr | Typ | Opis |
---|---|---|
objectInput | dowolny | Obiekt, którego wartości do wyliczenia. Jeśli dane wejściowe nie są obiektem, zostanie on przekształcony w obiekt. |
Object.entries
Parametr | Typ | Opis |
---|---|---|
objectInput | dowolny | Obiekt, którego pary klucz/wartość do wyliczenia. Jeśli dane wejściowe nie są zostanie on przekształcony w obiekt. |
Object.freeze
Parametr | Typ | Opis |
---|---|---|
objectInput | dowolny | Obiekt do zablokowania. Jeśli dane wejściowe nie są obiektem, zostanie potraktowany jako zablokowany obiekt. |
Object.delete
Parametr | Typ | Opis |
---|---|---|
objectInput | dowolny | Obiekt, którego klucz do usunięcia. |
keyToDelete | ciąg znaków | Klucz najwyższego poziomu do usunięcia. |
Przykład
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
Zwraca obiekt, który udostępnia metody interakcji z obietnicami.
Obietnice to odpowiednik obietnic JavaScriptu. Każda instancja ma 3 metody zwracające obietnicę, która umożliwia dalsze działanie, gdy obietnica rozliczenia:
.then()
– zajmuje się zarówno rozwiązanymi, jak i odrzuconymi zgłoszeniami. Potrzeba 2 razy wywołania zwrotne jako parametry: jedno dla przypadku powodzenia, a drugie dla niepowodzenia tych kwestii..catch()
– obsługuje tylko odrzucone zgłoszenia. Przyjmuje jedno wywołanie zwrotne jako ..finally()
– umożliwia uruchomienie kodu, jeśli obietnica została zrealizowana rozstrzygnięte lub odrzucone. Przyjmuje jedno wywołanie zwrotne jako parametr wywoływany przez brak argumentu.
zmienna, która zwraca obietnicę, równa się ostatecznej wartości obietnicy, lub
false
, jeśli obietnica zostanie odrzucona.
Przykład
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
Zwraca obietnicę, że:
- rozwiązuje się po przeanalizowaniu wszystkich danych wejściowych,
- odrzuca, gdy dowolne z danych wejściowych zostaną odrzucone
Składnia
Promise.all(inputs);
Parametry
Parametr | Typ | Opis |
---|---|---|
inputs |
Tablica | Tablica wartości lub obietnic. Jeśli dane wejściowe nie są obietnicą, dane wejściowe będą jest przenoszona tak, jakby była to stała wartość obietnicy. Wyrzuca , jeśli dane wejściowe nie są tablicami. |
Przykład
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: ''}]
});
Powiązane uprawnienia
Brak.
Promise.create
Tworzy obietnicę, która jest funkcjonalnie równoważna z obietnicą JavaScript.
Składnia
Promise.create(resolver);
Parametry
Parametr | Typ | Opis |
---|---|---|
resolver |
funkcja | Funkcja, która jest wyzwalana z użyciem dwóch funkcji – rozstrzygania i odrzucania. Zwrócona obietnica zostanie zrealizowana lub odrzucona, gdy odpowiednia . Zgłasza błąd, jeśli resolver nie jest funkcją. |
Przykład
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
Powiązane uprawnienia
Brak.
Testuj interfejsy API
Te interfejsy API współpracują z testami JavaScript w trybie piaskownicy, aby tworzyć testy dotyczące niestandardowych
szablonów w Menedżerze tagów Google. Te testowe interfejsy API nie wymagają require()
. [Więcej informacji o testach szablonów niestandardowych]
assertApi
Zwraca obiekt dopasowania, którego można używać do płynnego formułowania asercji do argumentu danego interfejsu API.
Składnia
assertApi(apiName)
Parametry
Parametr | Typ | Opis |
---|---|---|
apiName |
ciąg znaków | nazwa interfejsu API do sprawdzenia; ten sam ciąg znaków, który został przekazany do
require()
|
Dopasowania
Subject.wasCalled()
Subject.wasNotCalled()
Subject.wasCalledWith(...expected)
Subject.wasNotCalledWith(...expected)
Przykłady
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
Interfejs API assertThat
jest oparty na bibliotece Google [Truth]. Zwraca ono
który może być używany do płynnego formułowania asercji na temat wartości podmiotu. An
niepowodzenie asercji spowoduje natychmiastowe zatrzymanie testu i oznaczenie go jako nieudanego. Pamiętaj jednak:
niepowodzenie w jednym teście nie wpływa na pozostałe przypadki testowe.
Składnia
assertThat(actual, opt_message)
Parametry
Parametr | Typ | Opis |
---|---|---|
actual |
dowolny | Wartość do użycia podczas sprawdzania płynności. |
opt_message |
ciąg znaków | Opcjonalna wiadomość do wyświetlenia w przypadku niepowodzenia potwierdzenia. |
Dopasowania
Dopasowanie | Opis |
---|---|
isUndefined() |
Wskazuje, że obiekt to undefined . |
isDefined() |
Wskazuje, że temat nie należy do kategorii undefined . |
isNull() |
Wskazuje, że obiekt to null . |
isNotNull() |
Wskazuje, że temat nie należy do kategorii null . |
isFalse() |
Wskazuje, że obiekt to false . |
isTrue() |
Wskazuje, że obiekt to true . |
isFalsy() |
Twierdzenie, że temat jest fałszywy. Wartości Falsy to:
undefined , null , false
NaN , 0 i „” (pusty ciąg znaków). |
isTruthy() |
Twierdzenie, że temat jest zgodny z prawdą. Wartości Falsy to:
undefined , null , false
NaN , 0 i „” (pusty ciąg znaków). |
isNaN() |
Stwierdza, że podmiot jest wartością NaN. |
isNotNaN() |
Twierdzi, że podmiot ma dowolną wartość oprócz NaN. |
isInfinity() |
Twierdzi, że obiekt ma wartość dodatnią lub ujemną (nieskończoność). |
isNotInfinity() |
Twierdzi, że temat ma dowolną wartość poza dodatnią lub ujemną Nieskończoność. |
isEqualTo(expected) |
Stwierdza, że podmiot jest równa podanej wartości. To jest wartość porównanie, a nie referencje. Zawartość obiektów i tablic są porównywane rekurencyjnie. |
isNotEqualTo(expected) |
Stwierdza, że podmiot nie jest równa podanej wartości. To jest porównanie wartości, a nie referencyjne. zawartość obiektów i są porównywane rekurencyjnie. |
isAnyOf(...expected) |
Stwierdza, że temat jest równa jednej z podanych wartości. To jest porównanie wartości, a nie referencyjne. zawartość obiektów i są porównywane rekurencyjnie. |
isNoneOf(...expected) |
Stwierdza, że podmiot nie jest równa żadnej z podanych wartości. Ten to porównanie wartości, a nie odwołanie. Zawartość obiektów a tablice są porównywane rekurencyjnie. |
isStrictlyEqualTo(expected) |
Twierdzi, że obiekt jest ściśle równy (=== ) jak
danej wartości. |
isNotStrictlyEqualTo(expected) |
Twierdzi, że podmiot nie jest ściśle identyczny z (!== )
podanej wartości. |
isGreaterThan(expected) |
Wskazuje, że podmiot jest większy niż (> ) podana
w uporządkowanym porównaniu. |
isGreaterThanOrEqualTo(expected) |
Twierdzi, że podmiot jest większy lub równy
(>= ) wartość w porównaniu uporządkowanym. |
isLessThan(expected) |
Wskazuje, że temat jest mniejszy niż (< ) podana
w uporządkowanym porównaniu. |
isLessThanOrEqualTo(expected) |
Wskazuje, że temat ma wartość mniejszą lub równą (<= )
podanej wartości w porównaniu uporządkowanym. |
contains(...expected) |
Wskazuje, że temat jest tablicą lub ciągiem znaków zawierającym wszystkie podane wartości w dowolnej kolejności. To jest porównanie wartości, a nie odwołanie porównanie. Porównywana jest zawartość obiektów i tablic cyklicznie. |
doesNotContain(...expected) |
Wskazuje, że temat jest tablicą lub ciągiem znaków, które nie zawierają żadnego z podane wartości. To jest porównanie wartości, a nie pliku referencyjnego. Zawartość obiektów i tablic jest porównywana rekurencyjnie. |
containsExactly(...expected) |
Wskazuje, że podmiot jest tablicą zawierającą wszystkie podane wartości w dowolnej kolejności i żadnych innych wartości. To jest porównanie wartości, a nie do porównania. Porównywana jest zawartość obiektów i tablic cyklicznie. |
doesNotContainExactly(...expected) |
Wskazuje, że obiekt jest tablicą, która zawiera inny zbiór dla podanych wartości w dowolnej kolejności. To porównanie wartości, nie jest porównaniem referencyjnym. Zawartość obiektów i tablic jest rekurencyjnie. |
hasLength(expected) |
Potwierdza, że temat jest tablicą lub ciągiem znaków o podanej długości. Potwierdzenie zawsze kończy się niepowodzeniem, jeśli wartość nie jest tablicą ani ciągiem znaków. |
isEmpty() |
Potwierdza, że temat jest tablicą lub pustym ciągiem znaków (długość = 0). Potwierdzenie zawsze kończy się niepowodzeniem, jeśli wartość nie jest tablicą lub ciągu znaków. |
isNotEmpty() |
Potwierdza, że temat jest tablicą lub ciągiem, który nie jest pusty (długość > 0). Potwierdzenie zawsze kończy się niepowodzeniem, jeśli wartość nie jest tablicą lub ciągu tekstowego. |
isArray() |
Stwierdza, że typem podmiotu jest tablica. |
isBoolean() |
Stwierdza, że typ podmiotu jest wartością logiczną. |
isFunction() |
Stwierdza, że typ podmiotu jest funkcją. |
isNumber() |
Stwierdza, że typ podmiotu jest liczbą. |
isObject() |
Stwierdza, że typ podmiotu jest obiektem. |
isString() |
Zapewnia, że typem tematu jest ciąg znaków. |
Przykłady
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
Natychmiastowo zakończy bieżący test i wydrukuje podany komunikat (jeśli został podany).
Składnia
fail(opt_message);
Parametry
Parametr | Typ | Opis |
---|---|---|
opt_message |
ciąg znaków | Opcjonalny tekst komunikatu o błędzie. |
Przykład
fail('This test has failed.');
mock
Interfejs mock
API pozwala zastąpić działanie interfejsów API w trybie piaskownicy. Przykład
Interfejs API jest bezpieczny w kodzie szablonu, ale działa tylko w trybie testowym.
Przykłady są resetowane przed uruchomieniem każdego testu.
Składnia
mock(apiName, returnValue);
Parametry
Parametr | Typ | Opis |
---|---|---|
apiName |
ciąg znaków | Nazwa interfejsu API do imitacji; ten sam ciąg znaków, który został przekazany do
require() |
returnValue |
dowolny | Wartość do zwrócenia dla interfejsu API lub funkcji wywoływanej zamiast argumentu
API. Jeśli returnValue jest funkcją, jest ona wywoływana w argumencie
miejsce interfejsu API piaskownicy; jeśli returnValue to coś innego
niż funkcja, ta wartość jest zwracana zamiast metody
API. |
Przykłady
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
Interfejs mockObject
API pozwala zastąpić działanie interfejsów API w trybie piaskownicy, które
zwraca obiekt. Interfejs API jest bezpieczny w kodzie szablonu, ale działa
tylko w trybie testowym. Przykłady są resetowane przed uruchomieniem każdego testu.
Składnia
mockObject(apiName, objectMock);
Parametry
Parametr | Typ | Opis |
---|---|---|
apiName |
ciąg znaków | Nazwa interfejsu API do imitacji; ten sam ciąg znaków, który został przekazany do
require() |
objectMock |
obiekt | Wartość do zwrócenia dla interfejsu API lub funkcji wywoływanej zamiast argumentu API. Musi być obiektem. |
Przykłady
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
Uruchamia kod szablonu, czyli zawartość karty Kod, w sekcji w bieżącym środowisku testowym z danym obiektem danych wejściowych.
Składnia
runCode(data)
Parametry
Parametr | Typ | Opis |
---|---|---|
data |
obiekt | Obiekt danych do użycia w teście. |
Zwracana wartość
Zwraca wartość zmiennej dla szablonów zmiennych. zwraca undefined
dla
wszystkich pozostałych typów szablonów.
Przykład
runCode({field1: 123, field2: 'value'});