Podstawowe interfejsy API
Te interfejsy API współpracują z JavaScriptem w trybie piaskownicy, aby tworzyć niestandardowe szablony w Menedżerze tagów Google. Każdy interfejs API jest dodawany za pomocą stwierdzenia require()
, np.:
const myAPI = require('myAPI');
addConsentListener
Rejestruje funkcję detektora, która ma być wykonywana, gdy zmieni się stan określonego typu zgody.
Podany odbiorca będzie wywoływany za każdym razem, gdy stan określonego typu zgody zmieni się z odmowy na zgodę lub ze zgody na odmowę. Rodzaj zgody bez stanu jest uznawany za udzielony, więc jeśli rodzaj zgody o stanie „nieustawiony” zostanie zaktualizowany do stanu „przyznano”, funkcja nasłuchująca nie zostanie wywołana. Funkcje odbiornika będą odpowiedzialne za zapewnienie, że ich kod zostanie uruchomiony odpowiednią liczbę razy.
Przykład:
const isConsentGranted = require('isConsentGranted');
const addConsentListener = require('addConsentListener');
if (!isConsentGranted('ad_storage')) {
let wasCalled = false;
addConsentListener('ad_storage', (consentType, granted) => {
if (wasCalled) return;
wasCalled = true;
const cookies = getMyCookies();
sendFullPixel(cookies);
});
}
Składnia
addConsentListener(consentType, listener)
Parametry
Parametr | Typ | Opis |
---|---|---|
consentType |
ciąg | Typ zgody, w przypadku którego chcesz nasłuchiwać zmian stanu. |
listener |
function | Funkcja, która ma zostać uruchomiona, gdy zmieni się stan określonego rodzaju zgody. |
Gdy wywoływany jest odbiornik, przekazywany jest do niego typ zgody, który ulega zmianie, oraz nowa wartość tego typu zgody:
Parametr | Typ | Opis |
---|---|---|
consentType |
ciąg | Rodzaj zgody, który jest zmieniany. |
granted |
wartość logiczna | Wartość logiczna, która ma wartość „true”, jeśli określony rodzaj zgody jest zmieniany na „Przyznano”. |
Powiązane uprawnienia
Uprawnienie access_consent
z dostępem do odczytu w przypadku typu zgody.
addEventCallback
Interfejs addEventCallback
API umożliwia zarejestrowanie funkcji wywołania zwrotnego, która zostanie wywołana na końcu zdarzenia. Wywołanie zwrotne zostanie wywołane, gdy wszystkie tagi zdarzenia zostaną wykonane lub gdy zostanie osiągnięty limit czasu zdarzenia na stronie.
Funkcja zwrotna otrzymuje 2 wartości: identyfikator kontenera, który wywołuje funkcję, oraz obiekt zawierający informacje o zdarzeniu.
Składnia
addEventCallback(callback)
Parametry
Parametr | Typ | Opis |
---|---|---|
callback |
function | Funkcja, która ma zostać wywołana po zakończeniu wydarzenia. |
Obiekt eventData
zawiera te dane:
Nazwa klucza | Typ | Opis |
---|---|---|
tags |
Tablica | Tablica obiektów danych tagu. Każdy tag, który został uruchomiony podczas zdarzenia, będzie miał wpis w tej tablicy. Obiekt danych tagu zawiera identyfikator tagu (id ), jego stan wykonania (status ) i czas wykonania (executionTime ). Dane tagu będą też zawierać dodatkowe metadane tagu, które zostały w nim skonfigurowane. |
Przykład
addEventCallback(function(ctid, eventData) {
logToConsole('Tag count for container ' + ctid + ': ' + eventData['tags'].length);
});
Powiązane uprawnienia
aliasInWindow
Interfejs aliasInWindow
API umożliwia tworzenie aliasów (np. window.foo =
window.bar
), które pomagają obsługiwać niektóre tagi wymagające aliasowania. Przypisuje wartość w obiekcie window
znalezionym w fromPath
do klucza w obiekcie window
w toPath
. Zwraca wartość true
, jeśli operacja się uda, a w przeciwnym razie false
.
Składnia
aliasInWindow(toPath, fromPath)
Parametry
Parametr | Typ | Opis |
---|---|---|
toPath |
ciąg | Ścieżka rozdzielona kropkami do obiektu window , do którego należy skopiować wartość. Wszystkie komponenty na ścieżce do ostatniego komponentu muszą już istnieć w obiekcie window . |
fromPath |
ciąg | Ścieżka do wartości do skopiowania w window rozdzielona kropkami. Jeśli wartość nie istnieje, operacja zakończy się niepowodzeniem. |
Przykład
aliasInWindow('foo.bar', 'baz.qux')
Powiązane uprawnienia
access_globals
jest wymagany zarówno w przypadku toPath
, jak i fromPath
; toPath
wymaga dostępu do zapisu, a fromPath
wymaga dostępu do odczytu.
callInWindow
Umożliwia wywoływanie funkcji ze ścieżki poza obiektem window
w sposób kontrolowany przez zasady. Wywołuje funkcję w podanej ścieżce w window
z podanymi argumentami i zwraca wartość. Jeśli typu zwracanego nie można bezpośrednio przypisać do typu obsługiwanego w piaskownicy JavaScript, zwracana jest wartość undefined
. W JavaScript w piaskownicy obsługiwanych jest 8 typów: null
, undefined
, boolean
, number
, string
, Array
, Object
i function
. Jeśli podana ścieżka nie istnieje lub nie odwołuje się do funkcji, zwracana jest wartość undefined
.
Składnia
callInWindow(pathToFunction, argument [, argument2,... argumentN])
Parametry
Parametr | Typ | Opis |
---|---|---|
pathToFunction |
ciąg | Ścieżka do funkcji w window , która ma zostać wywołana, rozdzielona kropkami. |
args |
* | Argumenty, które mają zostać przekazane do funkcji. |
Powiązane uprawnienia
access_globals
z włączonym uprawnieniem execute
.
callLater
Planuje asynchroniczne wywołanie funkcji. Funkcja zostanie wywołana po zwróceniu bieżącego kodu. Jest to odpowiednik setTimeout(<function>, 0)
.
Składnia
callLater(function)
Parametry
Parametr | Typ | Opis |
---|---|---|
function |
function | Funkcja do wywołania. |
copyFromDataLayer
Zwraca wartość przypisaną obecnie do danego klucza w warstwie danych: wartość znalezioną przy danym kluczu, jeśli jest to typ prosty, funkcja lub literał obiektu, lub undefined
w przeciwnym razie.
Składnia
copyFromDataLayer(key[, dataLayerVersion])
Parametry
Parametr | Typ | Opis |
---|---|---|
key |
ciąg | Klucz w formacie „a.b.c”. |
dataLayerVersion |
number | Opcjonalna wersja warstwy danych. Wartość domyślna to 2. Zdecydowanie odradzamy używanie wartości 1. |
Powiązane uprawnienia
copyFromWindow
Kopiuje zmienną z obiektu window
. Jeśli wartości w window
nie można bezpośrednio przypisać do typu obsługiwanego w JavaScript w piaskownicy, zwracana jest wartość undefined
. 8 typów obsługiwanych w JavaScript w piaskownicy to null
, undefined
, boolean
, number
, string
, Array
, Object
i function
.
Zwraca pobraną (i przekształconą) wartość.
Składnia
copyFromWindow(key)
Parametry
Parametr | Typ | Opis |
---|---|---|
key |
ciąg | Klucz w window , którego wartość chcesz skopiować. |
Powiązane uprawnienia
createArgumentsQueue
Tworzy kolejkę wypełnioną obiektami argumentów na potrzeby rozwiązań tagów, które tego wymagają.
Tworzy funkcję w zakresie globalnym (czyli window
) za pomocą argumentu fnKey
(o takiej samej semantyce jak createQueue
). Po utworzeniu funkcji ten interfejs API tworzy tablicę w window
(jeśli jeszcze nie istnieje) za pomocą argumentu arrayKey
.
Gdy wywoływana jest funkcja utworzona w fnKey
, umieszcza ona swoje argumenty
w tablicy utworzonej w arrayKey
. Wartością zwracaną przez interfejs API jest funkcja utworzona w sekcji fnKey
.
Ta funkcja wymaga ustawienia odczytu i zapisu dla fnKey
i arrayKey
w ramach uprawnienia access_globals
.
Przykład:
const gtag = createArgumentsQueue('gtag', 'dataLayer');
gtag('set', {'currency': 'USD'});
Składnia
createArgumentsQueue(fnKey, arrayKey)
Parametry
Parametr | Typ | Opis |
---|---|---|
fnKey |
ciąg | Ścieżka w window , w której jest ustawiona funkcja, jeśli jeszcze nie istnieje. Ten argument obsługuje standardową notację kropkową. Jeśli ścieżka klucza nie istnieje, zostanie zgłoszony wyjątek. Oznacza to, że jeśli wartość fnKey to 'one.two' , funkcja zwróci wyjątek. |
arrayKey |
ciąg | Ścieżka w window , w której ustawiona jest tablica, jeśli jeszcze nie istnieje. Ten argument obsługuje standardową notację kropkową. Jeśli ścieżka klucza nie istnieje, zostanie zgłoszony wyjątek. Oznacza to, że jeśli arrayKey to 'one.two' i nie ma obiektu globalnego o nazwie 'one' , zostanie zgłoszony wyjątek. |
Powiązane uprawnienia
createQueue
Tworzy tablicę w window
(jeśli jeszcze nie istnieje) i zwraca funkcję, która będzie umieszczać wartości w tej tablicy.
Ta funkcja wymaga uprawnień do odczytu i zapisu ustawienia arrayKey
na access_globals
.
Przykład:
const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});
Składnia
createQueue(arrayKey)
Parametry
Parametr | Typ | Opis |
---|---|---|
arrayKey |
ciąg | Klucz w window , w którym jest ustawiona tablica, jeśli jeszcze nie istnieje. Ten argument obsługuje standardową notację kropkową. Jeśli ścieżka klucza nie istnieje, zostanie zgłoszony wyjątek. Jeśli na przykład wartość arrayKey to 'one.two' , a nie ma obiektu globalnego o nazwie 'one' , zostanie zgłoszony wyjątek. |
Powiązane uprawnienia
decodeUri
Dekoduje wszystkie zakodowane znaki w podanym URI. Zwraca ciąg tekstowy reprezentujący zdekodowany identyfikator URI. Zwraca undefined
, gdy dane wejściowe są nieprawidłowe.
Przykład:
const decode = require('decodeUri');
const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
// ...
}
Składnia
decodeUri(encoded_uri)
Parametry
Parametr | Typ | Opis |
---|---|---|
encoded_uri |
ciąg | Adres URI zakodowany za pomocą funkcji encodeUri() lub w inny sposób. |
Powiązane uprawnienia
Brak.
decodeUriComponent
Dekoduje wszystkie zakodowane znaki w podanym komponencie URI. Zwraca ciąg reprezentujący zdekodowany komponent URI. Zwraca undefined
, gdy podane dane wejściowe są nieprawidłowe.
Przykład:
const decode = require('decodeUriComponent');
const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
// ...
}
Składnia
decodeUriComponent(encoded_uri_component)
Parametry
Parametr | Typ | Opis |
---|---|---|
encoded_uri_component |
ciąg | Komponent URI, który został zakodowany za pomocą funkcji
encodeUriComponent()
lub w inny sposób. |
Powiązane uprawnienia
Brak.
encodeUri
Zwraca zakodowany identyfikator URI, w którym znaki specjalne zostały zastąpione znakami ucieczki. Zwraca ciąg znaków reprezentujący podany ciąg znaków zakodowany jako identyfikator URI. Zwraca undefined
, gdy otrzyma nieprawidłowe dane wejściowe (samodzielny znak zastępczy).
Przykład:
sendPixel('https://www.example.com/' + encodeUri(pathInput));
Składnia
encodeUri(uri)
Parametry
Parametr | Typ | Opis |
---|---|---|
uri |
ciąg | Pełny identyfikator URI. |
Powiązane uprawnienia
Brak.
encodeUriComponent
Zwraca zakodowany identyfikator URI, w którym znaki specjalne zostały zastąpione znakami ucieczki. Zwraca ciąg znaków reprezentujący podany ciąg znaków zakodowany jako identyfikator URI. Zwraca undefined
, gdy otrzyma nieprawidłowe dane wejściowe (samodzielny znak zastępczy).
Przykład:
sendPixel('https://www.example.com/?' + encodeUriComponent(queryInput));
Składnia
encodeUriComponent(str)
Parametry
Parametr | Typ | Opis |
---|---|---|
str |
ciąg | Składnik adresu URI. |
Powiązane uprawnienia
Brak.
fromBase64
Interfejs fromBase64
API umożliwia dekodowanie ciągów znaków z ich reprezentacji w formacie base64. Zwraca undefined
, gdy otrzyma nieprawidłowe dane wejściowe.
Składnia
fromBase64(base64EncodedString)
Parametry
Parametr | Typ | Opis |
---|---|---|
base64EncodedString |
ciąg | Ciąg tekstowy zakodowany w formacie 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.
Składnia
generateRandom(min, max)
Parametry
Parametr | Typ | Opis |
---|---|---|
min |
number | Minimalna potencjalna wartość zwracanej liczby całkowitej. |
max |
number | Maksymalna potencjalna wartość zwracanej liczby całkowitej. |
Powiązane uprawnienia
Brak.
getContainerVersion
Zwraca obiekt zawierający dane o bieżącym kontenerze. Zwrócony obiekt zawiera te pola:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
Przykład
const getContainerVersion = require('getContainerVersion');
const sendPixel = require('sendPixel');
if (query('read_container_data')) {
const cv = getContainerVersion();
const pixelUrl = 'https://pixel.com/' +
'?version=' + cv.version +
'&envName=' + cv.environmentName +
'&ctid=' + cv.containerId +
'&debugMode=' + cv.debugMode +
'&previewMode=' + cv.previewMode;
if (query('send_pixel', pixelUrl)) {
sendPixel(pixelUrl);
}
}
Składnia
getContainerVersion();
Powiązane uprawnienia
getCookieValues
Zwraca wartości wszystkich plików cookie o podanej nazwie.
Składnia
getCookieValues(name[, decode])
Parametry
Parametr | Typ | Opis |
---|---|---|
name |
ciąg | Nazwa pliku cookie. |
decode |
wartość logiczna | Określa, czy wartości plików cookie mają być dekodowane za pomocą funkcji
decodeURIComponent() w JavaScript. Domyślna wartość to true . |
Powiązane uprawnienia
getQueryParameters
Zwraca pierwszy lub wszystkie parametry queryKey
bieżącego adresu URL.
Zwraca pierwszą wartość z queryKey
lub tablicę wartości z queryKey
.
Składnia
getQueryParameters(queryKey[, retrieveAll])
Parametry
Parametr | Typ | Opis |
---|---|---|
queryKey |
ciąg | Klucz do odczytu z parametrów zapytania. |
retrieveAll |
wartość logiczna | Określa, czy pobrać wszystkie wartości. |
Jeśli na przykład obecny adres URL to https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo
, to:
getQueryParameters('var') == 'foo'
getQueryParameters('var', false) == 'foo'
getQueryParameters('var', null) == 'foo'
getQueryParameters('var', true) == ['foo', 'foo2', 'foo']
Powiązane uprawnienia
get_url
musi zezwalać na komponent query
i określać queryKey
w dozwolonych kluczach zapytania (lub zezwalać na dowolny klucz zapytania).
getReferrerQueryParameters
Interfejs getReferrerQueryParameters
działa tak samo jak getQueryParameters
, z tą różnicą, że dotyczy strony odsyłającej, a nie bieżącego adresu URL. Zwraca pierwszy lub wszystkie parametry dla danego odsyłającego queryKey
. Zwraca pierwszą wartość z queryKey
lub tablicę wartości z queryKey
.
Składnia
getReferrerQueryParameters(queryKey[, retrieveAll])
Parametry
Parametr | Typ | Opis |
---|---|---|
queryKey |
ciąg | Klucz do odczytu z parametrów zapytania. |
retrieveAll |
wartość logiczna | Określa, czy pobrać wszystkie wartości. |
Jeśli na przykład adres URL strony odsyłającej to https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo
, to:
getReferrerQueryParameters('var') == 'foo'
getReferrerQueryParameters('var', false) == 'foo'
getReferrerQueryParameters('var', null) == 'foo'
getReferrerQueryParameters('var', true) == ['foo', 'foo2', 'foo']
Powiązane uprawnienia
get_referrer
musi zezwalać na komponent query
i określać queryKey
w dozwolonych kluczach zapytania (lub zezwalać na dowolny klucz zapytania).
getReferrerUrl
Na podstawie typu komponentu interfejs API odczytuje obiekt dokumentu dla odsyłającego i zwraca ciąg znaków reprezentujący część odsyłającego. Jeśli nie podano żadnego komponentu, zwracany jest pełny adres URL strony odsyłającej.
Składnia
getReferrerUrl([component])
Parametry
Parametr | Typ | Opis |
---|---|---|
component |
ciąg | Komponent do zwrócenia z adresu URL. Może przyjmować jedną z tych wartości:protocol , host , port ,
path , query , extension . Jeśli wartość component to undefined , null lub nie pasuje do żadnego z tych komponentów, zwracany jest cały adres URL. |
Powiązane uprawnienia
get_referrer
musi zezwalać na komponent query
i określać queryKey
w dozwolonych kluczach zapytania (lub zezwalać na dowolny klucz zapytania).
getTimestamp
Wycofano. Zalecamy używanie funkcji getTimestampMillis.
Zwraca liczbę reprezentującą bieżący czas w milisekundach od początku epoki systemu Unix, zgodnie z wartością zwracaną przez Date.now()
.
Składnia
getTimestamp();
Powiązane uprawnienia
Brak.
getTimestampMillis
Zwraca liczbę reprezentującą bieżący czas w milisekundach od początku epoki systemu Unix, zgodnie z wartością zwracaną przez Date.now()
.
Składnia
getTimestampMillis();
Powiązane uprawnienia
Brak.
getType
Zwraca ciąg znaków opisujący typ danej wartości. W przeciwieństwie do typeof
getType
rozróżnia array
i object
.
Składnia
getType(data.someField)
Uwagi
W tabeli poniżej znajdziesz ciągi znaków zwracane dla poszczególnych wartości wejściowych.
Wartość wejściowa | Wynik |
---|---|
undefined |
„undefined” |
null |
'null' |
true |
'boolean' |
12 |
'number' |
'string' |
'string' |
{ a: 3 } |
'object' |
[ 1, 3 ] |
'array' |
(x) => x + 1 |
'function' |
Powiązane uprawnienia
Brak.
getUrl
Zwraca ciąg reprezentujący cały bieżący adres URL lub jego część na podstawie typu komponentu i parametrów konfiguracji.
Składnia
getUrl(component)
Parametry
Parametr | Typ | Opis |
---|---|---|
component |
ciąg | Komponent do zwrócenia z adresu URL. Musi być jedną z tych wartości:protocol , host , port ,
path , query , extension ,
fragment . Jeśli komponent to undefined , null lub nie pasuje do żadnego z tych komponentów, zwracana jest cała wartość href . |
Powiązane uprawnienia
gtagSet
Wysyła do warstwy danych polecenie gtag set, które ma zostać przetworzone jak najszybciej po zakończeniu przetwarzania bieżącego zdarzenia i wszystkich wywołanych przez nie tagów (lub po osiągnięciu limitu czasu przetwarzania tagów). Aktualizacja zostanie przetworzona w tym kontenerze przed wszystkimi elementami w kolejce warstwy danych.
Jeśli np. wywoła go tag uruchomiony w momencie inicjacji zgody, aktualizacja zostanie zastosowana przed przetworzeniem zdarzenia inicjowania. Przykłady: ads_data_redaction
ustawione na true
lub false
albo url_passthrough
ustawione na true
lub false
.
Przykłady:
const gtagSet = require('gtagSet');
gtagSet({
'ads_data_redaction': true,
'url_passthrough': true,
});
Składnia
gtagSet(object)
Parametry
Parametr | Typ | Opis |
---|---|---|
Object |
object | Obiekt, który aktualizuje stan globalny usług, w których jest zawarty. |
Powiązane uprawnienia
write_data_layer
sprawdza uprawnienia do zapisu w dataLayer
w przypadku wszystkich określonych kluczy. Jeśli dane wejściowe gtagSet
są zwykłym obiektem, interfejs API sprawdzi uprawnienia do zapisu wszystkich spłaszczonych kluczy w tym obiekcie, np. w przypadku gtagSet({foo: {bar: 'baz'}})
interfejs API sprawdzi uprawnienia do zapisu foo.bar
.
Jeśli dane wejściowe funkcji gtagSet
to klucz i wartość, która nie jest zwykłym obiektem, interfejs API sprawdzi uprawnienia do zapisu tego klucza, np. w przypadku funkcji gtagSet('abc', true)
interfejs API sprawdzi uprawnienia do zapisu klucza 'abc'
.
Pamiętaj, że jeśli w obiekcie wejściowym występuje cykl, sprawdzane będą tylko klucze przed osiągnięciem tego samego obiektu.
injectHiddenIframe
Dodaje do strony niewidoczny element iframe.
Wywołania zwrotne są podawane jako instancje funkcji i są opakowane w funkcje JavaScript, które je wywołują.
Składnia
injectHiddenIframe(url, onSuccess)
Parametry
Parametr | Typ | Opis |
---|---|---|
url |
ciąg | Adres URL, który ma być używany jako wartość atrybutu src elementu iframe. |
onSuccess |
function | Wywoływana po pomyślnym wczytaniu ramki. |
Powiązane uprawnienia
injectScript
Dodaje do strony tag skryptu, aby asynchronicznie wczytać podany adres URL. Wywołania zwrotne są podawane jako instancje funkcji i są opakowane w funkcje JavaScript, które je wywołują.
Składnia
injectScript(url, onSuccess, onFailure[, cacheToken])
Parametry
Parametr | Typ | Opis |
---|---|---|
url |
ciąg | Adres skryptu, który ma zostać wstrzyknięty. |
onSuccess |
function | Wywoływana, gdy skrypt zostanie załadowany. |
onFailure |
function | Wywoływana, gdy nie uda się wczytać skryptu. |
cacheToken |
ciąg | Opcjonalny ciąg znaków używany do wskazania, że dany adres URL powinien być przechowywany w pamięci podręcznej. Jeśli ta wartość jest określona, do wysłania żądania JavaScriptu zostanie utworzony tylko jeden element skryptu. Wszelkie dodatkowe próby załadowania spowodują, że podane metody onSuccess i onFailure będą umieszczane w kolejce do czasu załadowania skryptu. |
Powiązane uprawnienia
isConsentGranted
Zwraca wartość „true”, jeśli przyznano określony rodzaj zgody.
Zgoda na określony rodzaj zgody jest uznawana za udzieloną, jeśli rodzaj zgody ma wartość „Przyznano” lub nie jest w ogóle ustawiony. Jeśli typ zgody ma inną wartość, uznajemy, że zgoda nie została udzielona.
W interfejsie Menedżera tagów w ustawieniach tagu będzie dostępna opcja zawsze uruchamiaj. Jeśli tag z włączoną opcją „Zawsze uruchamiaj” używa tego interfejsu API, zgoda jest uznawana za udzieloną i zwracana jest wartość true
, niezależnie od rzeczywistego stanu zgody.
Przykład:
const isConsentGranted = require('isConsentGranted');
if (isConsentGranted('ad_storage')) {
sendFullPixel();
} else {
sendPixelWithoutCookies();
}
Składnia
isConsentGranted(consentType)
Parametry
Parametr | Typ | Opis |
---|---|---|
consentType |
ciąg | Rodzaj zgody, której stan ma być sprawdzany. |
Powiązane uprawnienia
Uprawnienie access_consent
z dostępem do odczytu w przypadku typu zgody.
JSON
Zwraca obiekt, który udostępnia funkcje JSON.
Funkcja parse()
analizuje ciąg znaków JSON, aby utworzyć wartość lub obiekt opisany przez ten ciąg. Jeśli nie można przeanalizować wartości (np. nieprawidłowy format JSON), funkcja zwróci wartość undefined
. Jeśli wartość wejściowa nie jest ciągiem znaków, zostanie przekształcona w ciąg znaków.
Funkcja stringify()
konwertuje dane wejściowe na ciąg znaków w formacie JSON. Jeśli wartości nie można przeanalizować (np. obiekt ma cykl), metoda zwraca wartość undefined
.
Składnia
JSON.parse(stringInput)
JSON.stringify(value);
Parametry
JSON.parse
Parametr | Typ | Opis |
---|---|---|
stringInput | dowolny | Wartość do przekonwertowania. Jeśli wartość nie jest ciągiem znaków, zostanie przekształcona w ciąg znaków. |
JSON.stringify
Parametr | Typ | Opis |
---|---|---|
wartość | dowolny | Wartość do przekonwertowania. |
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'});
localStorage
Zwraca obiekt z metodami dostępu do pamięci lokalnej.
Składnia
const localStorage = require('localStorage');
// Requires read access for the key. Returns null if the key does not exist.
localStorage.getItem(key);
// Requires write access for the key. Returns true if successful.
localStorage.setItem(key, value);
// Requires write access for the key.
localStorage.removeItem(key);
Powiązane uprawnienia
Przykład
const localStorage = require('localStorage');
if (localStorage) {
const value = localStorage.getItem('my_key');
if (value) {
const success = localStorage.setItem('my_key', 'new_value');
if (success) {
localStorage.removeItem('my_key');
}
}
}
logToConsole
Zapisuje argumenty w konsoli przeglądarki.
Składnia
logToConsole(obj1 [, obj2,... objN])
Parametry
Parametr | Typ | Opis |
---|---|---|
obj1 [, obj2,... objN] |
dowolny | Argumenty |
Powiązane uprawnienia
makeInteger
Konwertuje podaną wartość na liczbę (całkowitą).
Składnia
makeInteger(value)
Parametry
Parametr | Typ | Opis |
---|---|---|
value |
dowolny | Wartość do przekonwertowania. |
Powiązane uprawnienia
Brak.
makeNumber
Konwertuje podaną wartość na liczbę.
Składnia
makeNumber(value)
Parametry
Parametr | Typ | Opis |
---|---|---|
value |
dowolny | Wartość do przekonwertowania. |
Powiązane uprawnienia
Brak.
makeString
Zwraca podaną wartość jako ciąg tekstowy.
Składnia
makeString(value)
Parametry
Parametr | Typ | Opis |
---|---|---|
value |
dowolny | Wartość do przekonwertowania. |
Powiązane uprawnienia
Brak.
makeTableMap
Konwertuje prosty obiekt tabeli z 2 kolumnami na Map
. Służy do przekształcania pola szablonu SIMPLE_TABLE
z 2 kolumnami w łatwiejszy do zarządzania format.
Na przykład ta funkcja może przekształcić obiekt tabeli:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
na mapę:
{
'k1': 'v1',
'k2': 'v2'
}
Zwraca obiekt: przekonwertowany obiekt Map
, jeśli dodano do niego pary klucz-wartość, lub null
w przeciwnym razie.
Składnia
makeTableMap(tableObj, keyColumnName, valueColumnName)
Parametry
Parametr | Typ | Opis |
---|---|---|
tableObj |
Wyświetl listę | Obiekt tabeli do przekonwertowania. Jest to lista map, gdzie każdy element Map reprezentuje wiersz w tabeli. Każda nazwa właściwości w obiekcie wiersza jest nazwą kolumny, a wartość właściwości jest wartością kolumny w wierszu. |
keyColumnName |
ciąg | Nazwa kolumny, której wartości staną się kluczami w przekonwertowanym plikuMap . |
valueColumnName |
ciąg | Nazwa kolumny, której wartości staną się wartościami w przekonwertowanym polu Map . |
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 matematycznych są przekształcane w liczby.
Powiązane uprawnienia
Brak.
Object
Zwraca obiekt, który udostępnia metody Object
.
Metoda keys()
zapewnia działanie Object.keys()
biblioteki standardowej. Zwraca tablicę nazw własnych, wyliczalnych właściwości danego obiektu w tej samej kolejności, w jakiej zwróciłaby je pętla for...in...
. Jeśli wartość wejściowa nie jest obiektem, zostanie przekształcona w obiekt.
Metoda values()
zapewnia działanie Object.values() z biblioteki standardowej. Zwraca tablicę wartości własnych właściwości obiektu, które można wyliczyć, w tej samej kolejności, w jakiej zwróciłaby je pętla for...in...
. Jeśli wartość wejściowa nie jest obiektem, zostanie przekształcona w obiekt.
Metoda entries()
zapewnia działanie funkcji Object.entries() z biblioteki standardowej. Zwraca tablicę par [key, value]
własnych, wyliczalnych właściwości danego obiektu w tej samej kolejności, w jakiej zwróciłaby je pętla for...in...
. Jeśli wartość wejściowa nie jest obiektem, zostanie przekształcona w obiekt.
Metoda freeze()
zapewnia działanie Object.freeze() z biblioteki standardowej. Zamrożonego obiektu nie można już zmieniać. Zamrożenie obiektu uniemożliwia dodawanie do niego nowych właściwości, usuwanie istniejących właściwości i zmianę wartości istniejących właściwości. freeze()
zwraca ten sam obiekt, który został przekazany. Argument typu prostego lub argument o wartości null będzie traktowany tak, jakby był zamrożonym obiektem, i zostanie zwrócony.
Metoda delete()
zapewnia działanie operatora usuwania z biblioteki standardowej. Usuwa podany klucz z obiektu, chyba że obiekt jest zamrożony.
Podobnie jak operator usuwania w bibliotece standardowej zwraca wartość true
, jeśli pierwsza wartość wejściowa (objectInput
) jest obiektem, który nie jest zamrożony, nawet jeśli druga wartość wejściowa (keyToDelete
) określa klucz, który nie istnieje. W pozostałych przypadkach zwraca wartość false
. Różni się jednak od operatora usuwania z biblioteki standardowej w tych aspektach:
keyToDelete
nie może być ciągiem znaków rozdzielonym kropkami, który określa klucz zagnieżdżony.- Nie można użyć
delete()
do usunięcia elementów z tablicy. - Za pomocą parametru
delete()
nie można usuwać żadnych usług 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 mają zostać wyliczone. Jeśli dane wejściowe nie są obiektem, zostaną przekształcone w obiekt. |
Object.values
Parametr | Typ | Opis |
---|---|---|
objectInput | dowolny | Obiekt, którego wartości mają być wyliczane. Jeśli dane wejściowe nie są obiektem, zostaną przekształcone w obiekt. |
Object.entries
Parametr | Typ | Opis |
---|---|---|
objectInput | dowolny | Obiekt, którego pary klucz-wartość mają być wyliczane. Jeśli dane wejściowe nie są obiektem, zostaną przekształcone w obiekt. |
Object.freeze
Parametr | Typ | Opis |
---|---|---|
objectInput | dowolny | Obiekt do zamrożenia. Jeśli dane wejściowe nie są obiektem, będą traktowane jako zamrożony obiekt. |
Object.delete
Parametr | Typ | Opis |
---|---|---|
objectInput | dowolny | Obiekt, którego klucz ma zostać usunięty. |
keyToDelete | ciąg | 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.
parseUrl
Zwraca obiekt zawierający wszystkie części składowe danego adresu URL, podobnie jak obiekt URL
.
Ten interfejs API zwróci undefined
w przypadku każdego nieprawidłowego adresu URL. W przypadku prawidłowo sformatowanych adresów URL pola, które nie występują w ciągu adresu URL, będą miały wartość pustego ciągu znaków lub, w przypadku searchParams
, pustego obiektu.
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 | Pełny adres URL, który zostanie przeanalizowany. |
Powiązane uprawnienia
Brak.
queryPermission
Sprawdź dozwolone i ograniczone uprawnienia. Zwraca wartość logiczną: true
, jeśli uprawnienie zostało przyznane, false
w przeciwnym razie.
Składnia
queryPermission(permission, functionArgs*)
Parametry
Parametr | Typ | Opis |
---|---|---|
permission |
ciąg | Nazwa uprawnienia. |
functionArgs |
dowolny | Argumenty funkcji różnią się w zależności od uprawnień, o które pytasz. Zobacz sekcję Argumenty funkcji poniżej. |
Argumenty funkcji
sendPixel
, injectScript
, injectHiddenIframe
: drugi parametr powinien być ciągiem znaków URL.
writeGlobals
, readGlobals
: drugim parametrem powinien być klucz, który jest zapisywany lub odczytywany.
readUrl
: aby sprawdzić, czy można odczytać cały adres URL, nie są potrzebne żadne dodatkowe argumenty. Aby sprawdzić, czy dany komponent można odczytać, przekaż jego nazwę jako drugi argument:
if (queryPermission('readUrl','port')) {
// read the port
}
Aby sprawdzić, czy dany klucz zapytania jest czytelny, przekaż go jako trzeci parametr:
if (queryPermission('readUrl','query','key')) {
getUrlComponent(...);
}
Powiązane uprawnienia
Brak.
readAnalyticsStorage
Pobiera dane przechowywane na potrzeby analizy i zwraca obiekt z client_id
i sessions
.
client_id
: ciąg znaków reprezentujący identyfikator klienta używany na potrzeby analizy.sessions
: tablica obiektów zawierających informacje o bieżących sesjach. Każdy obiekt zawiera:measurement_id
: ciąg znaków reprezentujący identyfikator pomiaru miejsca docelowego Analytics.session_id
: ciąg znaków reprezentujący sygnaturę czasową, która identyfikuje bieżącą sesję.session_number
: liczba sesji zainicjowanych przez użytkownika do chwili rozpoczęcia bieżącej sesji.
Składnia
const readAnalyticsStorage = require('readAnalyticsStorage');
const cookieOptions = {
cookie_prefix: "xyz",
cookie_domain: "google.com",
cookie_path: "/",
};
readAnalyticsStorage(cookieOptions);
Parametry
Parametr | Typ | Opis |
---|---|---|
cookieOptions |
object |
Opcjonalne opcje odczytywania plików cookie z określonymi wartościami
cookie_prefix , cookie_domain lub
cookie_path .
|
Powiązane uprawnienia
Przykład
const readAnalyticsStorage = require('readAnalyticsStorage');
const analyticsStorageData = readAnalyticsStorage();
sendOfflineEvent(analyticsStorageData.client_id, "tutorial_begin");
readCharacterSet
Zwraca wartość document.characterSet
.
Składnia
readCharacterSet()
Parametry
Brak.
Powiązane uprawnienia
readTitle
Zwraca wartość document.title
.
Składnia
readTitle()
Parametry
Brak.
Powiązane uprawnienia
require
Importuje funkcję wbudowaną według nazwy. Zwraca funkcję lub obiekt, które można wywołać z programu. Zwraca wartość undefined, jeśli przeglądarka nie obsługuje wbudowanej funkcji.
Składnia
require(name)
Parametry
Parametr | Typ | Opis |
---|---|---|
name |
ciąg | Nazwa funkcji do zaimportowania. |
Przykład
const getUrl = require('getUrl');
const url = getUrl();
Powiązane uprawnienia
Brak.
sendPixel
Wysyła żądanie GET do określonego punktu końcowego URL.
Składnia
sendPixel(url, onSuccess, onFailure)
Parametry
Parametr | Typ | Opis |
---|---|---|
url |
ciąg | Miejsce, do którego ma zostać wysłany piksel. |
onSuccess |
function | Wywoływana, gdy piksel zostanie wczytany. Uwaga: nawet jeśli żądanie zostanie wysłane, przeglądarki mogą wymagać prawidłowej odpowiedzi w postaci obrazu, aby uruchomić funkcję onSuccess. |
onFailure |
function | Wywoływany, gdy piksel nie zostanie wczytany. Uwaga: nawet jeśli żądanie zostanie wysłane, funkcja onFailure może zostać uruchomiona, jeśli serwer nie zwróci prawidłowej odpowiedzi z obrazem. |
Powiązane uprawnienia
setCookie
Ustawia lub usuwa plik cookie o określonej nazwie, wartości i opcjach.
Składnia
setCookie(name, value[, options, encode])
Parametry
Parametr | Typ | Opis |
---|---|---|
name |
ciąg | Nazwa pliku cookie. |
value |
ciąg | Wartość pliku cookie. |
options |
object | Określa atrybuty Domain, Path, Expires, Max-Age, Secure i SameSite. (Zobacz Opcje poniżej). |
encode |
wartość logiczna | Określa, czy wartość pliku cookie ma być zakodowana za pomocą funkcji encodeURIComponent() w języku JavaScript.
Domyślna wartość to true . |
- Domena: ustawiana przez właściwość
options['domain']
, jeśli jest obecna. Ustaw tę wartość na'auto'
, aby spróbować zapisać plik cookie w najszerszej możliwej domenie na podstawie lokalizacji dokumentu. Jeśli to się nie uda, będzie próbować kolejno węższych subdomen. Jeśli wszystkie te próby się nie powiodą, spróbuje zapisać plik cookie bez domeny. Jeśli nie ustawisz żadnej wartości, plik cookie zostanie zapisany bez określania domeny. Uwaga: gdy plik cookie bez określonej domeny jest zapisywany wdocument.cookie
, domyślną domeną pliku cookie jest host bieżącej lokalizacji dokumentu. - Ścieżka: ustawiona przez
options['path']
, jeśli jest dostępna. Gdy plik cookie bez określonej ścieżki zostanie zapisany wdocument.cookie
, klient użytkownika domyślnie ustawi ścieżkę pliku cookie na ścieżkę bieżącej lokalizacji dokumentu. - Max-Age: ustawiony przez
options['max-age']
, jeśli jest obecny. - Wygasa: ustawione przez
options['expires']
, jeśli jest dostępne. Jeśli ten atrybut jest obecny, musi zawierać ciąg daty w formacie UTC.Date.toUTCString()
można użyć do sformatowania parametru aDate
. - Bezpieczne: ustawione przez
options['secure']
, jeśli jest obecny. - SameSite: ustawiony przez
options['samesite']
, jeśli jest obecny.
Powiązane uprawnienia
setDefaultConsentState
Przesyła do warstwy danych domyślną aktualizację zgody użytkownika, która zostanie przetworzona jak najszybciej po zakończeniu bieżącego zdarzenia i wszystkich tagów, które ono wywołało (lub po osiągnięciu limitu czasu przetwarzania tagu). Aktualizacja zostanie przetworzona w tym kontenerze przed wszystkimi elementami w kolejce w warstwie danych. Więcej informacji o uzyskiwaniu zgody
Przykład:
const setDefaultConsentState = require('setDefaultConsentState');
setDefaultConsentState({
'ad_storage': 'denied',
'analytics_storage': 'granted',
'third_party_storage': 'denied',
'region': ['US-CA'],
'wait_for_update': 500
});
Składnia
setDefaultConsentState(consentSettings)
Parametry
Parametr | Typ | Opis |
---|---|---|
consentSettings |
object | Obiekt, który określa domyślny stan dla określonych typów zgody. |
Obiekt consentSettings
to mapowanie dowolnych ciągów znaków typu zgody na jedną z wartości 'granted'
lub 'denied'
. Obsługuje te wartości:
Nazwa klucza | Typ | Opis |
---|---|---|
consentType |
ciąg | Wartość każdego typu zgody może być ustawiona na „granted” lub „denied”. Każda wartość inna niż „granted” będzie traktowana jako „denied”. Ustawienie wartości na „undefined” nie wpłynie na jej poprzednią wartość. |
region |
Tablica | Opcjonalna tablica kodów regionów określająca, w którym regionie mają obowiązywać ustawienia uzyskiwania zgody. Kody regionów są wyrażane za pomocą krajów lub podziałów administracyjnych w formacie ISO 3166-2. |
wait_for_update |
number | Określa wartość w milisekundach, która kontroluje czas oczekiwania przed wysłaniem danych. Używany w przypadku narzędzi do uzyskiwania zgody, które wczytują się asynchronicznie. |
Powiązane uprawnienia
Uprawnienie access_consent
z dostępem do zapisu dla wszystkich typów zgody w obiekcie consentSettings.
setInWindow
Ustawia podaną wartość w window
pod podanym kluczem. Domyślnie ta metoda nie ustawia wartości w window
, jeśli jest już tam jakaś wartość. Ustaw wartość overrideExisting
na true
, aby ustawić wartość w polu window
niezależnie od tego, czy istnieje już wartość. Zwraca wartość logiczną: true
, jeśli wartość została ustawiona prawidłowo, a false
w przeciwnym razie.
Składnia
setInWindow(key, value, overrideExisting)
Parametry
Parametr | Typ | Opis |
---|---|---|
key |
ciąg | Klucz w window , w którym ma się znajdować wartość. |
value |
* | Wartość do ustawienia w window . |
overrideExisting |
wartość logiczna | Flaga wskazująca, że wartość powinna być ustawiona w window , niezależnie od tego, czy jest tam wartość, czy nie. |
Powiązane uprawnienia
sha256
Oblicza skrót SHA-256 danych wejściowych i wywołuje wywołanie zwrotne ze skrótem zakodowanym w formacie base64, chyba że obiekt options
określa inne kodowanie wyjściowe.
Przykład:
sha256('inputString', (digest) => {
sendPixel('https://example.com/collect?id=' + digest);
data.gtmOnSuccess();
}, data.gtmOnFailure);
sha256('inputString', (digest) => {
sendPixel('https://example.com/collect?id=' + digest);
data.gtmOnSuccess();
}, data.gtmOnFailure, {outputEncoding: 'hex'});
Składnia
sha256(input, onSuccess, onFailure = undefined, options = undefined)
Parametry
Parametr | Typ | Opis |
---|---|---|
input |
ciąg | Ciąg znaków, dla którego ma zostać obliczony skrót. |
onSuccess |
function | Wywoływana z wynikowym skrótem zakodowanym w formacie base64, chyba że obiekt options określa inne kodowanie wyjściowe. |
onFailure |
function | Wywoływana, jeśli podczas obliczania skrótu wystąpi błąd lub jeśli przeglądarka nie obsługuje natywnie algorytmu SHA256. Wywołanie zwrotne jest wywoływane z obiektem zawierającym nazwę błędu i komunikat. |
options |
object | Opcjonalny obiekt opcji określający kodowanie wyjściowe. Jeśli została określona, powinna zawierać klucz outputEncoding z wartością base64 lub hex . |
Powiązane uprawnienia
Brak.
templateStorage
Zwraca obiekt z metodami dostępu do pamięci szablonu. Pamięć szablonu umożliwia udostępnianie danych w ramach różnych wykonań jednego szablonu. Dane przechowywane w pamięci szablonu są dostępne przez cały okres istnienia strony.
Składnia
const templateStorage = require('templateStorage');
templateStorage.getItem(key);
templateStorage.setItem(key, value);
templateStorage.removeItem(key);
// Deletes all stored values for the template.
templateStorage.clear();
Powiązane uprawnienia
Przykład
const templateStorage = require('templateStorage');
const sendPixel = require('sendPixel');
// Ensure sendPixel is called only once per page.
if (templateStorage.getItem('alreadyRan')) {
data.gtmOnSuccess();
return;
}
templateStorage.setItem('alreadyRan', true);
sendPixel(
data.oncePerPagePixelUrl,
data.gtmOnSuccess,
() => {
templateStorage.setItem('alreadyRan', false);
data.gtmOnFailure();
});
toBase64
Interfejs toBase64
API umożliwia zakodowanie ciągu znaków w formacie Base64.
Składnia
toBase64(input)
Parametry
Parametr | Typ | Opis |
---|---|---|
input |
ciąg | Ciąg znaków do zakodowania. |
Przykład
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
Powiązane uprawnienia
Brak
updateConsentState
Wysyła do warstwy danych aktualizację stanu zgody użytkownika, która ma być przetworzona jak najszybciej po zakończeniu przetwarzania bieżącego zdarzenia i wszystkich wywołanych przez nie tagów (lub po osiągnięciu limitu czasu przetwarzania tagu). Aktualizacja zostanie przetworzona w tym kontenerze przed wszystkimi elementami w kolejce w warstwie danych. Więcej informacji o uzyskiwaniu zgody
Przykład:
const updateConsentState = require('updateConsentState');
updateConsentState({
'ad_storage': 'granted',
'analytics_storage': 'denied',
'third_party_storage': 'granted',
});
Składnia
updateConsentState(consentSettings)
Parametry
Parametr | Typ | Opis |
---|---|---|
consentSettings |
object | Obiekt, który aktualizuje stan określonych typów zgody. |
Obiekt consentSettings
to mapowanie dowolnych ciągów znaków typu zgody na jedną z wartości 'granted'
lub 'denied'
. Obsługuje te wartości:
Nazwa klucza | Typ | Opis |
---|---|---|
consentType |
ciąg | Wartość każdego typu zgody może być ustawiona na „Przyznano” lub „Odrzucono”. Każda wartość inna niż „granted” będzie traktowana jako „denied”. Ustawienie wartości „undefined” nie będzie miało wpływu na poprzednią wartość. |
Powiązane uprawnienia
Uprawnienie access_consent
z dostępem do zapisu dla wszystkich typów zgody w obiekcie consentSettings.
Testowanie interfejsów API
Te interfejsy API współpracują z testami JavaScriptu w piaskownicy, aby tworzyć testy szablonów niestandardowych w Menedżerze tagów Google. Te interfejsy API do testowania nie wymagają require()
oświadczenia. Więcej informacji o testach szablonów niestandardowych
assertApi
Zwraca obiekt dopasowania, którego można używać do płynnego tworzenia asercji dotyczących danego interfejsu API.
Składnia
assertApi(apiName)
Parametry
Parametr | Typ | Opis |
---|---|---|
apiName |
ciąg | Nazwa interfejsu API do sprawdzenia; ten sam ciąg znaków, który został przekazany do funkcji require() .
|
Dopasowywanie
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 assertThat
API jest wzorowany na bibliotece [Truth] Google. Zwraca obiekt, którego można użyć do płynnego tworzenia asercji dotyczących wartości obiektu. Błąd asercji natychmiast zatrzyma test i oznaczy go jako nieudany. Niepowodzenie w jednym teście nie wpłynie jednak na inne przypadki testowe.
Składnia
assertThat(actual, opt_message)
Parametry
Parametr | Typ | Opis |
---|---|---|
actual |
dowolny | Wartość do użycia w testach płynności. |
opt_message |
ciąg | Opcjonalna wiadomość do wydrukowania, jeśli asercja się nie powiedzie. |
Dopasowywanie
Dopasowywanie | Opis |
---|---|
isUndefined() |
Potwierdza, że podmiot jest undefined . |
isDefined() |
Stwierdza, że podmiot nie jest undefined . |
isNull() |
Potwierdza, że podmiot jest null . |
isNotNull() |
Stwierdza, że podmiot nie jest null . |
isFalse() |
Potwierdza, że podmiot jest false . |
isTrue() |
Potwierdza, że podmiot jest true . |
isFalsy() |
Sprawdza, czy element jest fałszywy. Wartością fałszywą jest undefined , null , false , NaN , 0 i „” (pusty ciąg znaków). |
isTruthy() |
Sprawdza, czy wartość jest prawdziwa. Wartością fałszywą jest undefined , null , false , NaN , 0 i „” (pusty ciąg znaków). |
isNaN() |
Sprawdza, czy obiekt jest wartością NaN. |
isNotNaN() |
Sprawdza, czy obiekt ma dowolną wartość inną niż NaN. |
isInfinity() |
Sprawdza, czy wartość jest dodatnią lub ujemną nieskończonością. |
isNotInfinity() |
Sprawdza, czy wartość nie jest dodatnią ani ujemną nieskończonością. |
isEqualTo(expected) |
Sprawdza, czy obiekt jest równy podanej wartości. Jest to porównanie wartości, a nie porównanie referencyjne. Zawartość obiektów i tablic jest porównywana rekurencyjnie. |
isNotEqualTo(expected) |
Sprawdza, czy podmiot nie jest równy podanej wartości. Jest to porównanie wartości, a nie porównanie referencyjne. Zawartość obiektów i tablic jest porównywana rekurencyjnie. |
isAnyOf(...expected) |
Sprawdza, czy obiekt jest równy jednej z podanych wartości. Jest to porównanie wartości, a nie porównanie referencyjne. Zawartość obiektów i tablic jest porównywana rekurencyjnie. |
isNoneOf(...expected) |
Stwierdza, że podmiot nie jest równy żadnej z podanych wartości. To porównanie wartości, a nie porównanie referencyjne. Zawartość obiektów i tablic jest porównywana rekurencyjnie. |
isStrictlyEqualTo(expected) |
Sprawdza, czy obiekt jest ściśle równy (=== ) podanej wartości. |
isNotStrictlyEqualTo(expected) |
Stwierdza, że podmiot nie jest ściśle równy (!== ) podanej wartości. |
isGreaterThan(expected) |
Sprawdza, czy wartość jest większa niż (> ) podana wartość w porównaniu uporządkowanym. |
isGreaterThanOrEqualTo(expected) |
Sprawdza, czy wartość jest większa lub równa (>= ) podanej wartości w porównaniu uporządkowanym. |
isLessThan(expected) |
Sprawdza, czy wartość jest mniejsza (< ) od podanej wartości w porównaniu uporządkowanym. |
isLessThanOrEqualTo(expected) |
Sprawdza, czy wartość jest mniejsza lub równa podanej wartości (<= ) w porównaniu uporządkowanym. |
contains(...expected) |
Sprawdza, czy obiekt jest tablicą lub ciągiem znaków, który zawiera wszystkie podane wartości w dowolnej kolejności. Jest to porównanie wartości, a nie porównanie referencyjne. Zawartość obiektów i tablic jest porównywana rekurencyjnie. |
doesNotContain(...expected) |
Sprawdza, czy obiekt jest tablicą lub ciągiem, który nie zawiera żadnej z podanych wartości. Jest to porównanie wartości, a nie porównanie referencyjne. Zawartość obiektów i tablic jest porównywana rekurencyjnie. |
containsExactly(...expected) |
Sprawdza, czy obiekt jest tablicą, która zawiera wszystkie podane wartości w dowolnej kolejności i nie zawiera żadnych innych wartości. Jest to porównanie wartości, a nie porównanie referencyjne. Zawartość obiektów i tablic jest porównywana rekurencyjnie. |
doesNotContainExactly(...expected) |
Sprawdza, czy obiekt jest tablicą, która zawiera inny zestaw wartości niż podane wartości w dowolnej kolejności. To porównanie wartości, a nie porównanie referencyjne. Zawartość obiektów i tablic jest porównywana rekurencyjnie. |
hasLength(expected) |
Sprawdza, czy obiekt jest tablicą lub ciągiem znaków o podanej długości. Jeśli wartość nie jest tablicą ani ciągiem znaków, asercja zawsze kończy się niepowodzeniem. |
isEmpty() |
Sprawdza, czy obiekt jest pustą tablicą lub pustym ciągiem znaków (długość = 0). Asercja zawsze kończy się niepowodzeniem, jeśli wartość nie jest tablicą ani ciągiem znaków. |
isNotEmpty() |
Sprawdza, czy obiekt jest tablicą lub ciągiem znaków, który nie jest pusty (długość > 0). Asercja zawsze kończy się niepowodzeniem, jeśli wartość nie jest tablicą lub ciągiem znaków. |
isArray() |
Sprawdza, czy typ podmiotu jest tablicą. |
isBoolean() |
Sprawdza, czy typ podmiotu to wartość logiczna. |
isFunction() |
Stwierdza, że typ podmiotu jest funkcją. |
isNumber() |
Sprawdza, czy typ podmiotu jest liczbą. |
isObject() |
Stwierdza, że typ podmiotu jest obiektem. |
isString() |
Sprawdza, czy typ podmiotu jest ciągiem tekstowym. |
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
Natychmiast przerywa bieżący test i wyświetla podany komunikat (jeśli został podany).
Składnia
fail(opt_message);
Parametry
Parametr | Typ | Opis |
---|---|---|
opt_message |
ciąg | Opcjonalny tekst komunikatu o błędzie. |
Przykład
fail('This test has failed.');
mock
Interfejs mock
API umożliwia zastępowanie działania interfejsów Sandboxed API. Interfejs mockAPI można bezpiecznie stosować w kodzie szablonu, ale działa on tylko w trybie testowym.
Makiety są resetowane przed uruchomieniem każdego testu.
Składnia
mock(apiName, returnValue);
Parametry
Parametr | Typ | Opis |
---|---|---|
apiName |
ciąg | Nazwa interfejsu API do wygenerowania wersji próbnej. Jest to ten sam ciąg znaków, który został przekazany do funkcji require() . |
returnValue |
dowolny | Wartość do zwrócenia w przypadku interfejsu API lub funkcji wywoływanej zamiast interfejsu API. Jeśli returnValue jest funkcją, jest ona wywoływana zamiast interfejsu Sandboxed API. Jeśli returnValue jest czymś innym niż funkcją, zwracana jest ta wartość zamiast interfejsu Sandboxed API. |
Przykłady
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
Interfejs mockObject
API umożliwia zastąpienie działania interfejsów Sandboxed API, które zwracają obiekt. Interfejs API można bezpiecznie stosować w kodzie szablonu, ale działa on tylko w trybie testowym. Makiety są resetowane przed uruchomieniem każdego testu.
Składnia
mockObject(apiName, objectMock);
Parametry
Parametr | Typ | Opis |
---|---|---|
apiName |
ciąg | Nazwa interfejsu API do wygenerowania wersji próbnej. Jest to ten sam ciąg znaków, który został przekazany do funkcji require() . |
objectMock |
object | Wartość do zwrócenia w przypadku interfejsu API lub funkcji wywoływanej zamiast interfejsu API. Musi to być obiekt. |
Przykłady
const storage = {};
mockObject('localStorage', {
setItem: (key, value) => {storage[key] = value;},
getItem: (key) => storage[key],
});
runCode
Uruchamia kod szablonu, czyli zawartość karty Kod, w bieżącym środowisku testowym z danym obiektem danych wejściowych.
Składnia
runCode(data)
Parametry
Parametr | Typ | Opis |
---|---|---|
data |
object | Obiekt danych, który ma być użyty w teście. |
Zwracana wartość
Zwraca wartość zmiennej w przypadku szablonów zmiennych, a w przypadku wszystkich innych typów szablonów zwraca undefined
.
Przykład
runCode({field1: 123, field2: 'value'});