Interfejsy API tagowania po stronie serwera

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

read_event_metadata


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

2.0.0


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

read_event_data


getClientName

Zwraca ciąg znaków zawierający nazwę bieżącego klienta.

Składnia

getClientName();

Powiązane uprawnienia

read_container_data


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

read_container_data


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

get_cookies


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

read_event_data


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 i X-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

read_request


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

read_request


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

read_request


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

read_request


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

read_request


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

read_request


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

use_custom_private_keys

Minimalna wersja obrazu

1.0.0


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

logging


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

return_response


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

run_container


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

send_http


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

send_http


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

send_pixel_from_browser


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.
  • 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 zasada max-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 i max-age jest ustawione, pierwszeństwo ma max-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ńcowego https:.

  • sameSite: informuje, że pliku cookie nie można wysyłać z innych domen. żądań. Musi to być 'strict', 'lax' lub 'none'.

Powiązane uprawnienia

set_cookie


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 klucze
    • content-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

access_template_storage


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:
  • projectIdopcjonalny Google Cloud Platform identyfikator projektu. W przypadku pominięcia tej informacji projectId jest pobierany z: zmienna środowiskowa GOOGLE_CLOUD_PROJECT, dopóki jako access_bigquery ustawienie uprawnień dla identyfikatora projektu jest ustawione na * lub GOOGLE_CLOUD_PROJECT Jeśli kontener serwera to działające w Google Cloud, GOOGLE_CLOUD_PROJECT już jest ustawiony na identyfikator projektu Google Cloud.
  • datasetId – identyfikator zbioru danych BigQuery.
  • tableId – identyfikator tabeli BigQuery.
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.

Przykłady błędów

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

access_bigquery


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);

Przykład błędu

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

access_firestore


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:

  1. messageType:string
  2. 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ści listen lub listen_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ści listen_and_send lub send.

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'});