Dokumen ini berisi penjelasan tentang API untuk pemberian tag sisi server.
addEventCallback
Mendaftarkan fungsi callback yang akan dipanggil di akhir peristiwa. Callback akan dipanggil saat semua tag untuk peristiwa telah dieksekusi. Callback mendapatkan dua nilai: id penampung yang memanggil fungsi dan objek yang berisi informasi tentang peristiwa.
Saat digunakan di tag, API ini dikaitkan dengan peristiwa saat ini. Saat digunakan di klien, API ini harus terikat ke peristiwa tertentu menggunakan fungsi bindToEvent
di runContainer
API. Lihat
contoh untuk detail selengkapnya.
Sintaksis
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
callback |
fungsi | Fungsi yang akan dipanggil di akhir peristiwa. |
Objek eventData
berisi data berikut:
Nama Kunci | Jenis | Deskripsi |
---|---|---|
tags |
Array |
Array objek data tag. Setiap tag yang diaktifkan selama peristiwa akan memiliki entri dalam array ini. Objek data tag berisi
ID tag (id ), status eksekusinya
(status ), dan waktu eksekusinya
(executionTime ). Data tag juga akan menyertakan metadata tag tambahan yang dikonfigurasi di tag.
|
Di klien:
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();
}
});
});
Di tag:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
Izin terkait
callLater
Menjadwalkan panggilan ke fungsi agar terjadi secara asinkron. Fungsi ini akan dipanggil setelah kode saat ini ditampilkan. Fungsi ini setara dengan
setTimeout(<function>, 0)
.
Contoh
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
Sintaksis
callLater(function)
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
function |
fungsi | Fungsi yang akan dipanggil. |
Izin terkait
Tidak ada.
claimRequest
Gunakan API ini di klien untuk mengklaim permintaan. Setelah permintaan diklaim, penampung tidak menjalankan klien tambahan.
API ini melempar pengecualian jika dipanggil dalam tag atau variabel. API ini menampilkan pengecualian jika dipanggil setelah klien ditampilkan (misalnya, jika dipanggil dalam callback asinkron seperti di callLater
atau fungsi runContainer
onComplete
).
Klien harus mengklaim permintaan menggunakan API ini sebelum memanggil
runContainer
API.
Contoh
const claimRequest = require('claimRequest');
claimRequest();
Sintaksis
claimRequest();
Izin terkait
Tidak ada.
computeEffectiveTldPlusOne
Menampilkan domain level teratas efektif + 1 (eTLD+1) dari domain atau URL yang diberikan. eTLD+1 dikomputasi dengan mengevaluasi domain berdasarkan aturan Daftar Suffix Publik. eTLD+1 biasanya merupakan domain level tertinggi tempat Anda dapat menetapkan cookie.
Jika argumen null atau undefined (belum ditentukan), nilai argumen akan ditampilkan tanpa perubahan. Jika tidak, argumen dikonversi menjadi string. Jika argumen bukan domain atau URL yang valid, string kosong akan ditampilkan. Jika server tidak dapat mengambil daftar suffix publik, nilai argumen akan ditampilkan tanpa perubahan.
Contoh
const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');
Sintaksis
computeEffectiveTldPlusOne(domainOrUrl);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
domainOrUrl |
string | Domain atau URL untuk menghitung eTLD+1. |
Izin terkait
Tidak ada.
createRegex
Membuat instance ekspresi reguler baru dan menampilkannya di dalam sebuah objek. Anda tidak dapat
mengakses ekspresi reguler secara langsung. Namun, Anda dapat meneruskannya ke testRegex
API, String.replace()
, String.match()
, dan String.search()
.
Menampilkan null
jika ekspresi reguler tidak valid atau Re2 tidak tersedia di server.
API ini menggunakan implementasi Re2. Versi Image Docker server harus 2.0.0 atau yang lebih baru.
Contoh
const createRegex = require('createRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');
Sintaksis
createRegex(pattern, flags);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
pattern |
string | Teks ekspresi reguler |
flags |
string | String opsional berisi tanda untuk ekspresi reguler yang sedang dibuat. `g` (global) dan `i` (abaikan huruf besar/kecil) didukung. Semua karakter lainnya otomatis diabaikan. |
Izin terkait
Tidak ada.
Versi image minimum
decodeUri
Mendekode karakter apa pun yang dienkode dalam URI yang disediakan. Menampilkan string yang merepresentasikan URI yang didekode. Menampilkan undefined
jika disediakan dengan input yang tidak valid.
Contoh
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
Sintaksis
decodeUri(encoded_uri);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
encoded_uri |
string |
URI yang telah dienkode oleh
encodeUri() atau dengan cara lain.
|
Izin terkait
Tidak ada.
decodeUriComponent
Mendekode karakter apa pun yang dienkode dalam komponen URI yang disediakan. Menampilkan string yang mewakili komponen URI yang didekode. Menampilkan undefined
jika
input yang diberikan tidak valid.
Contoh
const decodeUriComponent = require('decodeUriComponent');
const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
// ...
}
Sintaksis
decodeUriComponent(encoded_uri_component);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
encoded_uri_component |
string |
Komponen URI yang telah dienkode oleh encodeUriComponent() atau dengan cara lain.
|
Izin terkait
Tidak ada.
encodeUri
Menampilkan Uniform Resource Identifier (URI) yang dienkode dengan meng-escape karakter khusus. Menampilkan string yang mewakili string yang disediakan yang dienkode sebagai URI.
Contoh
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
Sintaksis
encodeUri(uri);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
uri |
string | URI lengkap. |
Izin terkait
Tidak ada.
encodeUriComponent
Menampilkan Uniform Resource Identifier (URI) yang dienkode dengan meng-escape karakter khusus. Menampilkan string yang mewakili string yang disediakan yang dienkode sebagai URI.
Contoh
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
Sintaksis
encodeUriComponent(str);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
str |
string | Komponen URI. |
Izin terkait
Tidak ada.
extractEventsFromMpv1
Menerjemahkan permintaan Measurement Protocol V1 yang masuk ke daftar peristiwa dalam format Skema Terpadu. Menampilkan daftar peristiwa yang diekstrak. Menampilkan error jika permintaan tidak menggunakan format yang tepat.
Contoh
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.
}
}
Sintaksis
extractEventsFromMpv1();
Izin terkait
Memerlukan izin read_request
. Izin harus dikonfigurasi untuk mengizinkan akses setidaknya ke:
body
query parameters
extractEventsFromMpv2
Menerjemahkan permintaan Measurement Protocol V2 yang masuk ke daftar peristiwa dalam format Skema Terpadu. Menampilkan daftar peristiwa yang diekstrak. Menampilkan error jika permintaan tidak menggunakan format yang tepat.
Contoh
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.
}
}
Sintaksis
extractEventsFromMpv2();
Izin terkait
Memerlukan izin read_request
. Izin harus dikonfigurasi untuk mengizinkan akses setidaknya ke:
body
query parameters
fromBase64
Mendekode string yang dienkode base64. Menampilkan undefined
jika input tidak valid.
Sintaksis
fromBase64(base64EncodedString);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
base64EncodedString |
string | String berenkode base64. |
Contoh
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
Izin terkait
Tidak ada.
generateRandom
Menampilkan angka (bilangan bulat) acak dalam rentang yang diberikan.
Contoh
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
Sintaksis
generateRandom(min, max);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
min |
angka | Nilai potensial minimum dari bilangan bulat yang ditampilkan (inklusif). |
max |
angka | Nilai potensial maksimum dari bilangan bulat yang ditampilkan (inklusif). |
Izin terkait
Tidak ada.
getAllEventData
Menampilkan salinan data peristiwa.
Sintaksis
getAllEventData();
Izin terkait
getClientName
Menampilkan string yang berisi nama klien saat ini.
Sintaksis
getClientName();
Izin terkait
getContainerVersion
Menampilkan objek yang berisi data tentang penampung saat ini. Objek yang ditampilkan akan memiliki kolom berikut:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
Contoh
const getContainerVersion = require('getContainerVersion');
const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];
Sintaksis
getContainerVersion();
Izin terkait
getCookieValues
Menampilkan array yang berisi nilai semua cookie dengan nama yang diberikan.
Contoh
const getCookieValues = require('getCookieValues');
const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
// ...
}
Sintaksis
getCookieValues(name[, noDecode]);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
name |
string | Nama cookie. |
noDecode |
boolean |
Jika true , nilai cookie tidak akan didekode sebelum ditampilkan. Nilai defaultnya adalah false .
|
Izin terkait
getEventData
Menampilkan salinan nilai di jalur yang diberikan dalam data peristiwa. Menampilkan
undefined
jika tidak ada data peristiwa atau jika tidak ada nilai di jalur yang diberikan.
Contoh
const getEventData = require('getEventData');
const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
keyPath |
apa pun |
Jalur kunci, di mana komponen jalur dipisahkan dengan titik. Komponen jalur dapat berupa kunci pada suatu objek atau indeks di array. Jika
keyPath bukan string, komponen ini dikonversi menjadi string.
|
Sintaksis
getEventData(keyPath);
Izin terkait
getGoogleAuth
Menampilkan objek otorisasi yang, saat digunakan dengan
sendHttpGet
atau sendHttpRequest
, akan
menyertakan header otorisasi untuk Google Cloud API. API ini menggunakan
Kredensial Default Aplikasi untuk menemukan kredensial secara otomatis dari
lingkungan server.
Contoh
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();
}
});
Sintaksis
getGoogleAuth(scopes);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
scopes
|
Array | Array cakupan OAuth 2.0 Google API yang aksesnya akan diminta. |
Izin terkait
Memerlukan izin use_google_credentials
. Izin harus
dikonfigurasi dengan satu atau beberapa cakupan yang diizinkan.
getGoogleScript
Mengambil resource dari sekumpulan skrip Google yang telah ditentukan, dan menampilkan promise dengan skrip dan metadata terkait yang tersimpan dalam cache.
Promise akan di-resolve ke objek yang berisi dua kunci: script
dan metadata
. Jika permintaan gagal, promise akan ditolak dengan kunci reason
.
Objek metadata
akan berisi metadata berikut yang tersimpan dalam cache berdasarkan header respons resource; setiap kolom hanya akan ada jika header yang sesuai ada dalam respons resource.
{
'cache-control': string,
'expires': string,
'last-modified': string,
}
Contoh
const getGoogleScript = require('getGoogleScript');
getGoogleScript('ANALYTICS').then((result) => {
// Operate on result.script and result.metadata here.
});
Sintaksis
getGoogleScript(script[, options]);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
script |
string |
Nama skrip. Skrip yang didukung adalah 'ANALYTICS' , 'GTAG' , dan 'GTM' .Opsi 'ANALYTICS'
mengambil skrip Google Analytics dari
https://www.google-analytics.com/analytics.js .Opsi 'GTAG' akan mengambil skrip tag situs global (gtag.js)
dari https://www.googletagmanager.com/gtag/js .Opsi 'GTM' mengambil skrip Google Tag Manager
dari https://www.googletagmanager.com/gtm.js .
|
options |
objek | Opsi permintaan opsional. Lihat opsi yang didukung di bawah. |
Opsi
Opsi | Jenis | Deskripsi |
---|---|---|
id |
string |
Berlaku untuk 'GTAG' dengan ID pengukuran gtag dan 'GTM' dengan ID penampung web (misalnya, GTM-XXXX).
|
debug |
apa pun | Jika true (benar), meminta dan menampilkan versi debug skrip pengukuran. |
timeout |
angka |
Waktu tunggu permintaan dalam milidetik; nilai non-positif diabaikan. Jika
waktu permintaan habis, callback akan dipanggil dengan
undefined untuk nilai skrip dan {} untuk
objek metadata.
|
Kunci opsi yang tidak dikenal akan diabaikan.
Izin terkait
Memerlukan izin send_http
. Izin harus dikonfigurasi untuk mengizinkan akses setidaknya ke:
- Izinkan Google Domains
getRemoteAddress
Menampilkan representasi string alamat IP tempat permintaan berasal, misalnya, 12.345.67.890
untuk IPv4 atau 2001:0db8:85a3:0:0:8a2e:0370:7334
untuk IPv6, dengan membaca header permintaan seperti Forwarded dan X-Forwarded-For.
Catatan: API ini melakukan upaya terbaik untuk menemukan IP asal, tetapi tidak dapat menjamin hasilnya akan akurat.
Sintaksis
getRemoteAddress();
Izin terkait
Memerlukan izin read_request
. Izin harus dikonfigurasi untuk mengizinkan akses setidaknya ke:
- Header
Forwarded
danX-Forwarded-For
- Alamat IP Jarak Jauh
getRequestBody
Menampilkan isi permintaan sebagai string, jika ada, atau undefined
jika tidak ada.
Sintaksis
getRequestBody();
Izin terkait
getRequestHeader
Menampilkan nilai header permintaan bernama sebagai string, jika ada, atau
undefined
jika tidak ada. Jika header diulang, nilai yang ditampilkan akan digabungkan
dengan ', '
.
Contoh
const getRequestHeader = require('getRequestHeader');
const host = getRequestHeader('host');
Sintaksis
getRequestHeader(headerName);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
headerName |
string | Nama header. Nilai ini tidak peka huruf besar/kecil. |
Izin terkait
getRequestMethod
Menampilkan metode permintaan, misalnya, 'GET'
atau 'POST'
, sebagai string.
Contoh
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
Sintaksis
getRequestMethod();
Izin terkait
Tidak ada.
getRequestPath
Menampilkan jalur permintaan tanpa string kueri. Misalnya, jika URL-nya adalah
'/foo?id=123'
, '/foo'
akan ditampilkan. Secara otomatis menghapus awalan URL penampung Server dari jalur. Misalnya, jika URL penampung server adalah
https://example.com/analytics
dan jalur permintaan adalah '/analytics/foo'
, maka '/foo'
akan ditampilkan.
Contoh
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
Sintaksis
getRequestPath();
Izin terkait
getRequestQueryParameter
Menampilkan nilai parameter string kueri bernama yang didekode sebagai string, atau undefined
jika parameter tidak ada. Jika parameter tersebut diulang dalam string kueri, nilai pertama yang muncul dalam string kueri akan ditampilkan.
Contoh
const getRequestQueryParameter = require('getRequestQueryParameter');
const query = getRequestQueryParameter('query');
if (query) {
// Process query here.
}
Sintaksis
getRequestQueryParameter(name);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
name |
string | Nama parameter kueri. |
Izin terkait
getRequestQueryParameters
Menampilkan parameter kueri permintaan HTTP yang masuk sebagai objek yang memetakan nama parameter kueri ke nilai yang sesuai. Nama dan nilai parameter didekode.
Contoh
const getRequestQueryParameters = require('getRequestQueryParameters');
const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
// Handle the search query here.
const maxResults = queryParameters['max_results'];
}
Sintaksis
getRequestQueryParameters();
Izin terkait
getRequestQueryString
Menampilkan kueri permintaan sebagai string, tanpa tanda tanya di awal, atau string kosong jika URL permintaan tidak menyertakan string kueri.
Contoh
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
Sintaksis
getRequestQueryString();
Izin terkait
getTimestamp
Tidak digunakan lagi. Pilih getTimestampMillis.
Menampilkan angka yang merepresentasikan waktu saat ini dalam milidetik sejak epoch Unix, seperti yang ditampilkan oleh Date.now()
.
Sintaksis
getTimestamp();
Izin terkait
Tidak ada.
getTimestampMillis
Menampilkan angka yang merepresentasikan waktu saat ini dalam milidetik sejak epoch Unix, seperti yang ditampilkan oleh Date.now()
.
Sintaksis
getTimestampMillis();
Izin terkait
Tidak ada.
getType
Menampilkan string yang menjelaskan jenis nilai yang diberikan.
Jenis Input | Nilai yang Ditampilkan |
---|---|
string | 'string' |
angka | 'number' |
boolean | 'boolean' |
null | 'null' |
belum ditentukan | 'undefined' |
Array | 'array' |
Objek | 'object' |
Fungsi | 'function' |
Contoh
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);
}
Sintaksis
getType(value);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
value |
apa pun | Nilai input. |
Izin terkait
Tidak ada.
hmacSha256
Menghitung tanda tangan yang dienkode menggunakan Kode Autentikasi Pesan
Berbasis Hash (HMAC) dengan SHA-256. Setelan defaultnya adalah encoding base64url
.
Untuk menggunakan API ini, tetapkan variabel lingkungan SGTM_CREDENTIALS
di server ke jalur file kunci JSON yang dienkode UTF-8 dengan format berikut:
{
"keys": {
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
}
Nilainya adalah kunci HMAC berenkode base64. Teks JSON tidak boleh diawali dengan penanda urutan byte.
Contoh
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;
Sintaksis
hmacSha256(data, keyId, options)
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
data |
string | Data untuk menghitung nilai HMAC. |
keyId
|
string | ID kunci dari file kunci JSON yang merujuk ke kunci yang akan digunakan. |
options
|
objek | Konfigurasi API Opsional. (Lihat Opsi di bawah.) |
Opsi
Opsi | Jenis | Deskripsi |
---|---|---|
outputEncoding
|
string | Menentukan format encoding untuk
nilai yang ditampilkan. Format yang didukung adalah hex ,
base64 , atau base64url . Secara default ke
base64url jika tidak ditentukan. |
Izin terkait
Versi image minimum
isRequestMpv1
Menampilkan true
jika permintaan yang masuk adalah permintaan Measurement Protocol V1, atau
false
jika bukan.
Contoh
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
// Handle Measurement Protocol V1 request.
const events = extractEventsFromMpv1();
}
Sintaksis
isRequestMpv1();
Izin terkait
Tidak ada.
isRequestMpv2
Menampilkan true
jika permintaan yang masuk adalah permintaan Measurement Protocol V2, atau
false
jika bukan.
Contoh
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
Sintaksis
isRequestMpv2();
Izin terkait
Tidak ada.
logToConsole
Mencatat argumennya ke konsol.
Log ini dapat dilihat dalam Logs Explorer di Google Cloud Console.
Dari Logs Explorer, jalankan kueri logName =~ "stdout"
untuk melihat entri log
yang dibuat oleh API ini.
Contoh
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
Sintaksis
logToConsole(argument1[, argument2, ...]);
Parameter
API mengambil satu atau beberapa argumen, yang masing-masing dikonversi menjadi string, jika perlu, dan dicatat dalam log ke konsol.
Izin terkait
makeInteger
Mengonversi nilai yang diberikan ke sebuah angka (bilangan bulat).
Sintaksis
makeInteger(value);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
value |
jenis apa saja | Nilai yang akan dikonversi. |
Izin terkait
Tidak ada.
makeNumber
Mengonversi nilai yang diberikan ke sebuah angka.
Sintaksis
makeNumber(value);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
value |
jenis apa saja | Nilai yang akan dikonversi. |
Izin terkait
Tidak ada.
makeString
Menampilkan nilai yang diberikan sebagai string.
Sintaksis
makeString(value);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
value |
jenis apa saja | Nilai yang akan dikonversi. |
Izin terkait
Tidak ada.
makeTableMap
Mengonversi objek tabel sederhana dengan dua kolom menjadi Map
. API ini digunakan untuk mengubah kolom template SIMPLE_TABLE
dengan dua kolom menjadi format yang lebih mudah dikelola.
Misalnya, fungsi ini dapat mengonversi objek tabel:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
menjadi Peta:
{
'k1': 'v1',
'k2': 'v2'
}
Menampilkan Object: Map
yang dikonversi jika pasangan nilai kunci telah ditambahkan ke sini atau null
.
Sintaksis
makeTableMap(tableObj, keyColumnName, valueColumnName);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
tableObj |
Daftar |
Objek tabel yang akan dikonversi. Parameter ini adalah daftar peta dengan setiap Map merepresentasikan baris dalam tabel. Setiap nama properti dalam objek baris adalah nama kolom, dan nilai properti adalah nilai kolom dalam baris.
|
keyColumnName |
string |
Nama kolom yang nilainya akan menjadi kunci dalam Map yang dikonversi.
|
valueColumnName |
string |
Nama kolom yang nilainya akan menjadi nilai dalam Map yang dikonversi.
|
Izin terkait
Tidak ada.
parseUrl
Menampilkan objek yang berisi semua bagian komponen URL tertentu, mirip dengan objek URL
.
API ini akan menampilkan undefined
untuk URL dengan format yang salah. Untuk URL yang diformat dengan benar, kolom yang tidak ada dalam string URL akan memiliki nilai string kosong, atau objek kosong untuk searchParams
.
Objek yang ditampilkan akan memiliki kolom berikut:
{
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,
}
Contoh
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
Sintaksis
parseUrl(url);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
url |
string | URL lengkap yang akan diuraikan. |
Izin terkait
Tidak ada.
returnResponse
Menghapus respons yang sebelumnya ditetapkan oleh template lain menggunakan API yang mengubah respons, termasuk setCookie, setPixelResponse, setResponseBody, setResponseHeader, dan setResponseStatus. Nilai defaultnya adalah kode status HTTP 200, isi kosong, dan tanpa header.
Sebaiknya API ini digunakan dari template klien.
Sintaksis
returnResponse();
Contoh
Lihat contoh runContainer
.
Izin terkait
runContainer
Menjalankan logika penampung (variabel, pemicu, tag) dalam cakupan peristiwa. Jika API ini dipanggil selama eksekusi penampung, penampung akan dijalankan lagi.
Callback onComplete
dan onStart
menerima fungsi yang disebut
bindToEvent
. Gunakan bindToEvent
untuk menjalankan API dalam konteks peristiwa.
Lihat contoh addEventCallback untuk detail selengkapnya.
Sebaiknya API ini digunakan dari template klien.
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());
Sintaksis
runContainer(event, onComplete, onStart);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
event |
objek | Parameter peristiwa. |
onComplete |
fungsi | Callback yang dipanggil setelah semua tag selesai diaktifkan. |
onStart |
fungsi | Callback yang langsung dipanggil, sebelum tag mulai diaktifkan. |
Izin terkait
sendEventToGoogleAnalytics
Mengirimkan satu peristiwa menggunakan Data Peristiwa Umum ke Google Analytics dan menampilkan
promise yang di-resolve ke objek dengan kunci location
atau
ditolak ke objek dengan kunci reason
. Tujuan, yaitu Universal Analytics atau Google Analytics 4, ditentukan berdasarkan ID pengukuran dalam data peristiwa.
Kolom location
ditetapkan ke header location
, jika ada.
Contoh
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();
});
Sintaksis
sendEventToGoogleAnalytics(event);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
event |
objek | Peristiwa dalam format Skema Terpadu. |
Izin terkait
Memerlukan izin send_http
. Izin harus dikonfigurasi untuk mengizinkan akses setidaknya ke:
- Izinkan Google Domains
sendHttpGet
Membuat permintaan HTTP GET ke URL yang ditentukan, dan menampilkan promise yang di-resolve dengan hasil setelah permintaan selesai atau habis waktunya.
Hasil yang di-resolve adalah objek yang berisi tiga kunci: statusCode
, headers
, dan body
. Jika permintaan gagal (misalnya, URL tidak valid, tidak ada rute untuk dihosting, kegagalan negosiasi SSL, dsb.), promise akan ditolak dengan: {reason:
'failed'}
. Jika opsi timeout
ditetapkan dan waktu permintaan habis, promise akan ditolak dengan: {reason: 'timed_out'}
Contoh
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);
Sintaksis
sendHttpGet(url[, options]);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
url |
string | URL yang diminta. |
options
|
objek | Opsi permintaan opsional. (Lihat Opsi di bawah.) |
Opsi
Opsi | Jenis | Deskripsi |
---|---|---|
headers |
string | Header permintaan tambahan. |
timeout
|
angka | Waktu tunggu, dalam milidetik, sebelum permintaan dibatalkan. Default-nya adalah 15000 . |
authorization
|
objek | Objek otorisasi opsional dari
panggilan ke getGoogleAuth untuk menyertakan
header otorisasi saat membuat permintaan
ke googleapis.com . |
Izin terkait
sendHttpRequest
Membuat permintaan HTTP ke URL yang ditentukan, dan menampilkan promise yang di-resolve dengan respons setelah permintaan selesai atau habis waktunya.
Hasil yang di-resolve adalah objek yang berisi tiga kunci: statusCode
, headers
, dan body
. Jika permintaan gagal (misalnya, URL tidak valid, tidak ada rute untuk dihosting, kegagalan negosiasi SSL, dsb.), promise akan ditolak dengan: {reason:
'failed'}
. Jika opsi timeout
ditetapkan dan waktu permintaan habis, promise akan ditolak dengan: {reason: 'timed_out'}
Contoh
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']);
});
Sintaksis
sendHttpRequest(url[, options[, body]]);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
url |
string | URL yang diminta. |
options
|
objek | Opsi permintaan opsional. (Lihat Opsi di bawah.) |
body |
string | Isi permintaan opsional. |
Opsi
Opsi | Jenis | Deskripsi |
---|---|---|
headers |
string | Header permintaan tambahan. |
method |
objek | Metode permintaan. Default-nya adalah GET . |
timeout
|
angka | Waktu tunggu, dalam milidetik, sebelum permintaan dibatalkan. Default-nya adalah 15000 . |
authorization
|
objek | Objek otorisasi opsional dari
panggilan ke getGoogleAuth untuk menyertakan
header otorisasi saat membuat permintaan
ke googleapis.com . |
Izin terkait
sendPixelFromBrowser
Mengirim perintah ke browser untuk memuat URL yang disediakan sebagai tag <img>
. Protokol perintah ini didukung dalam tag web Tag Google untuk GA4 dan Google Analytics: Peristiwa GA. Anda harus mengonfigurasi URL penampung
server. Lihat petunjuk untuk mengetahui detail selengkapnya.
API ini menampilkan false
jika permintaan yang masuk tidak mendukung protokol perintah, atau jika respons sudah dihapus. Jika tidak, API ini akan menampilkan true
.
Contoh:
const sendPixelFromBrowser = require('sendPixelFromBrowser');
sendPixelFromBrowser('https://example.com/?id=123');
Sintaksis
sendPixelFromBrowser(url)
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
url |
string | URL yang akan dikirim ke browser. |
Izin terkait
setCookie
Menetapkan atau menghapus cookie dengan opsi yang ditentukan.
Untuk menghapus cookie, Anda harus menetapkan cookie dengan jalur dan domain yang sama dengan cookie yang dibuat, dan menetapkan nilai masa berlakunya yang telah berlalu, misalnya "Thu, 01 Jan 1970 00:00:00 GMT"
.
Perhatikan bahwa returnResponse harus dipanggil agar respons dikirim kembali ke klien.
Contoh
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
Sintaksis
setCookie(name, value[, options[, noEncode]]);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
name |
string | Nama cookie. Nama tidak peka huruf besar/kecil. |
value |
string | Nilai cookie. |
options |
objek | Atribut cookie opsional: domain, expires, fallbackDomain,httpOnly, max - age, path, secure, dan sameSite. (Lihat Opsi, di bawah.) |
noEncode |
boolean |
Jika true (benar), nilai cookie tidak akan dienkode. Nilai defaultnya adalah
false .
|
domain: Host yang menjadi tujuan pengiriman cookie. Jika ditetapkan ke nilai khusus 'auto', host akan secara otomatis dihitung menggunakan strategi berikut:
- eTLD+1 dari header
Forwarded
, jika ada. - eTLD+1 dari header
X-Forwarded-Host
, jika ada. - eTLD+1 dari header
Host
.
- eTLD+1 dari header
expires: Masa berlaku maksimum cookie. Nilainya harus berupa string tanggal berformat UTC, misalnya "Sat, 26 Oct 1985 08:21:00 GMT". Jika
expires
danmax-age
ditetapkan,max-age
diprioritaskan.httpOnly: Melarang JavaScript mengakses cookie jika
true
.max-age: Jumlah detik hingga cookie berakhir masa berlakunya. Angka nol atau negatif akan langsung membuat masa berlaku cookie habis. Jika
expires
danmax-age
ditetapkan,max-age
diprioritaskan.path: Jalur yang harus ada di URL yang diminta, atau browser tidak akan mengirim header Cookie.
secure: Jika ditetapkan ke
true
, cookie hanya dikirim ke server saat permintaan dibuat dari endpointhttps:
.sameSite: Menyatakan bahwa cookie tidak boleh dikirim bersama permintaan lintas origin. Harus berupa
'strict'
,'lax'
, atau'none'
.
Izin terkait
setPixelResponse
Menetapkan isi respons ke GIF 1x1, menetapkan header Jenis Konten ke 'gambar/gif', menetapkan header penyimpanan dalam cache sehingga agen pengguna tidak akan menyimpan respons ke dalam cache, dan menetapkan status respons ke 200.
Perhatikan bahwa returnResponse harus dipanggil agar respons dikirim kembali ke klien.
Sintaksis
setPixelResponse();
Izin terkait
Memerlukan izin access_response
. Izin harus dikonfigurasi untuk mengizinkan akses setidaknya ke:
headers
- Harus mengizinkan kunci berikutcontent-type
cache-control
expires
pragma
body
status
setResponseBody
Menetapkan isi respons ke argumen.
Perhatikan bahwa returnResponse harus dipanggil agar respons dikirim kembali ke klien.
Sintaksis
setResponseBody(body[, encoding]);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
body |
string | Nilai yang ditetapkan sebagai isi respons. |
encoding |
string |
Encoding karakter isi respons (Nilai defaultnya adalah 'utf8' ). Nilai yang didukung meliputi 'ascii' , 'utf8' , 'utf16le' , 'ucs2' , 'base64' , 'latin1' , 'binary' , dan 'hex' .
|
Izin terkait
Memerlukan izin access_response
. Izin harus dikonfigurasi untuk mengizinkan akses setidaknya ke:
body
setResponseHeader
Menetapkan header dalam respons yang akan ditampilkan. Jika header dengan nama ini (tidak peka huruf besar-kecil) sebelumnya telah ditetapkan oleh API ini, panggilan yang terakhir akan menimpa atau menghapus nilai yang ditetapkan oleh pemanggil sebelumnya.
Perhatikan bahwa returnResponse harus dipanggil agar respons dikirim kembali ke klien.
Sintaksis
setResponseHeader(name, value);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
name |
string | Nama header. Nama header HTTP tidak peka huruf besar/kecil, sehingga nama header akan menjadi huruf kecil. |
value |
string belum ditentukan | Nilai header. Jika null atau belum ditentukan, header ini akan dihapus dari respons yang akan ditampilkan. |
Izin terkait
Memerlukan izin access_response
. Izin harus dikonfigurasi untuk mengizinkan akses setidaknya ke:
headers
setResponseStatus
Menetapkan kode status HTTP respons yang akan ditampilkan.
Perhatikan bahwa returnResponse harus dipanggil agar respons dikirim kembali ke klien.
Sintaksis
setResponseStatus(statusCode);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
statusCode |
angka | Kode status HTTP yang akan ditampilkan. |
Izin terkait
Memerlukan izin access_response
. Izin harus dikonfigurasi untuk mengizinkan akses setidaknya ke:
status
sha256
Menghitung digest SHA-256 input dan memanggil callback dengan digest yang dienkode dalam base64, kecuali jika objek options
menentukan encoding output yang berbeda.
Signature dan perilaku API ini cocok dengan sha256
API untuk penampung web; tetapi, Template Kustom dalam penampung server harus menggunakan sha256Sync
API untuk kode yang lebih sederhana.
Contoh
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'});
Sintaksis
sha256(input, onSuccess, options = undefined);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
input |
string | String yang akan di-hash. |
onSuccess |
fungsi |
Dipanggil dengan digest yang dihasilkan, dienkode dalam base64, kecuali jika objek options mensyaratkan encoding output yang berbeda.
|
options |
objek |
Objek opsi Opsional untuk menentukan encoding output. Jika ditentukan, objek ini harus berisi kunci outputEncoding dengan nilai sebagai salah satu dari base64 atau hex .
|
Izin terkait
Tidak ada.
sha256Sync
Menghitung dan menampilkan digest SHA-256 input, yang dienkode dalam base64, kecuali jika objek options
menentukan encoding output yang berbeda.
Contoh
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));
Sintaksis
sha256Sync(input, options = undefined);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
input |
string | String yang akan di-hash. |
options |
objek |
Objek opsi Opsional untuk menentukan encoding output. Jika ditentukan, objek ini harus berisi kunci outputEncoding dengan nilai sebagai salah satu dari base64 atau hex .
|
Izin terkait
Tidak ada.
templateDataStorage
Menampilkan objek dengan metode untuk mengakses penyimpanan data template. Dengan penyimpanan data template, data dapat dibagikan di seluruh eksekusi dalam satu template. Data yang disimpan dalam penyimpanan data template akan tetap ada di server yang menjalankan penampung. Umumnya ada beberapa server yang menjalankan penampung, sehingga menyimpan data dalam penyimpanan data template tidak menjamin bahwa setiap permintaan berikutnya akan memiliki akses ke data tersebut.
"Data" dalam nama "templateDataStorage" mengacu pada fakta bahwa hanya jenis data biasa non-fungsional yang dapat disimpan menggunakan API ini. Setiap fungsi atau
referensi ke fungsi yang diteruskan ke API akan disimpan sebagai null
.
Sintaksis
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();
Contoh
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);
});
Izin terkait
testRegex
Menguji string berdasarkan ekspresi reguler yang dibuat via createRegex
API. Menampilkan true
jika ekspresi reguler cocok. Menampilkan false
jika tidak cocok.
Ekspresi reguler yang dibuat dengan flag global bersifat stateful. Lihat dokumentasi Ekspresi Reguler untuk mengetahui detailnya.
Contoh
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');
Sintaksis
testRegex(regex, string);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
regex |
Objek | Ekspresi reguler yang akan diuji, ditampilkan dari createRegex API. |
string |
string | String pengujian yang akan diuji. |
Izin terkait
Tidak ada.
toBase64
Mengenkode string sebagai base64 atau base64url. Default-nya adalah encoding base64.
Sintaksis
toBase64(input, options);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
input |
string | String yang akan dienkode. |
options
|
objek | Konfigurasi API opsional. (Lihat Opsi di bawah.) |
Opsi
Opsi | Jenis | Deskripsi | Versi minimum |
---|---|---|---|
urlEncoding
|
boolean | Jika true (benar), hasilnya akan
dienkode menggunakan
format base64url . |
1.0.0 |
Contoh
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
Izin terkait
Tidak ada.
BigQuery
Menampilkan objek yang menyediakan fungsi BigQuery.
Fungsi BigQuery.insert
memungkinkan penulisan data ke tabel BigQuery. Metode ini menampilkan promise yang di-resolve setelah penyisipan berhasil atau ditolak karena terjadi error.
Saat penyisipan berhasil, promise akan di-resolve tanpa argumen.
Jika penyisipan gagal, promise akan ditolak dengan daftar objek yang berisi alasan error dan mungkin objek baris jika terjadi error. Ada kemungkinan bahwa sebagian permintaan berhasil diselesaikan, sementara bagian lainnya tidak berhasil. Dalam kasus ini, promise ditolak dengan mencantumkan daftar error untuk setiap baris yang memiliki objek baris untuk membantu membedakan baris mana yang disisipkan (Lihat Contoh Error di bawah). Lihat dokumentasi BigQuery tentang pesan error untuk mengetahui informasi selengkapnya.
Sintaksis
BigQuery.insert(connectionInfo, rows[, options]);
Parameter | Jenis | Deskripsi |
---|---|---|
connectionInfo |
objek |
Menentukan informasi yang diperlukan untuk terhubung ke tabel BigQuery. Ada
satu parameter opsional dan dua parameter wajib:
|
rows |
Array | Baris yang akan disisipkan ke dalam tabel. |
options |
objek | Opsi permintaan opsional. Opsi yang didukung adalah: ignoreUnknownValues dan skipInvalidRows. Kunci opsi yang tidak dikenal akan diabaikan. (Lihat Opsi, di bawah.) |
Parameter | Jenis | Deskripsi |
---|---|---|
ignoreUnknownValues |
boolean | Jika ditetapkan ke true , terima baris yang berisi nilai
yang tidak cocok dengan skema. Nilai yang tidak diketahui akan diabaikan. Nilai defaultnya adalah false . |
skipInvalidRows |
boolean | Jika ditetapkan ke true , sisipkan semua baris permintaan yang valid,
meskipun ada baris yang tidak valid. Nilai defaultnya adalah false . |
Error modul tidak ditemukan berarti bahwa penampung server Anda kemungkinan menjalankan versi lama image kami yang belum menyertakan modul BigQuery. Deploy ulang penampung server Anda dengan setelan yang sama menggunakan skrip deployment kami. Modul akan otomatis disertakan setelah operasi selesai.
Error bukan penyisipan biasanya memiliki satu objek error dengan kunci reason
:
[{reason: 'invalid'}]
Error penyisipan dapat berisi beberapa objek error dengan array errors
dan objek row
. Berikut contoh respons error dari penyisipan dua baris yang hanya memiliki satu baris yang mengalami error:
[
{
"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
}
}
]
Contoh
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);
Izin terkait
Firestore
Menampilkan objek yang menyediakan fungsi Firestore.
API ini hanya mendukung Firestore dalam mode Native, bukan Firestore dalam mode Datastore. Selain itu, API tersebut hanya mendukung penggunaan database default.
Firestore.read
Fungsi Firestore.read
membaca data dari dokumen Firestore dan menampilkan promise yang di-resolve ke objek yang berisi dua kunci: id
dan data
. Jika dokumen tidak ada, promise akan ditolak dengan
objek yang berisi kunci reason
yang sama dengan not_found
.
Sintaksis
Firestore.read(path[, options]);
Parameter | Jenis | Deskripsi |
---|---|---|
path |
string | Jalur ke dokumen atau pengumpulan. Tidak boleh diawali atau diakhiri dengan '/'. |
options |
objek | Opsi permintaan opsional. Opsi yang didukung adalah: projectId, disableCache, dan transaction. Kunci opsi yang tidak dikenal akan diabaikan. (Lihat Opsi, di bawah.) |
Parameter | Jenis | Deskripsi |
---|---|---|
projectId |
string | Opsional. ID Project Google Cloud Platform. Jika dihilangkan, projectId akan diambil dari variabel lingkungan GOOGLE_CLOUD_PROJECT selama setelan izin access_firestore untuk project ID ditetapkan ke * atau GOOGLE_CLOUD_PROJECT . Jika penampung server dijalankan di
Google Cloud, GOOGLE_CLOUD_PROJECT sudah ditetapkan ke
ID project Google Cloud. |
disableCache |
boolean | Opsional. Menentukan apakah cache dinonaktifkan atau tidak. Penyimpanan ke cache diaktifkan secara default, sehingga hasilnya akan disimpan di cache selama permintaan. |
transaction |
string | Opsional. Nilai yang diambil dari Firestore.runTransaction(). Menandai operasi yang akan digunakan dalam transaksi. |
Contoh
const Firestore = require('Firestore');
return Firestore.read('collection/document', {
projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);
Firestore.write
Fungsi Firestore.write
menulis data ke dokumen atau koleksi Firestore. Jika jalur mengarah ke pengumpulan, dokumen akan dibuat dengan ID yang dibuat secara acak. Jika jalur mengarah ke dokumen dan jalur tidak ada, jalur tersebut akan dibuat. API ini menampilkan promise yang di-resolve ke ID dokumen yang ditambahkan atau diubah. Jika opsi transaksi digunakan, API akan tetap menampilkan promise, tetapi tidak akan berisi ID karena penulisan dikelompokkan.
Sintaksis
Firestore.write(path, input[, options]);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
path |
string | Jalur ke dokumen atau pengumpulan. Tidak boleh diawali atau diakhiri dengan '/'. |
input |
objek | Nilai yang akan ditulis ke dokumen. Jika opsi penggabungan ditetapkan, API akan menggabungkan kunci dari input ke dalam dokumen. |
options |
objek | Opsi permintaan opsional. Opsi yang didukung adalah: projectId, merge, dan transaction. Kunci opsi yang tidak dikenal akan diabaikan. (Lihat Opsi, di bawah.) |
Parameter | Jenis | Deskripsi |
---|---|---|
projectId |
string | Opsional. ID Project Google Cloud Platform. Jika dihilangkan, projectId akan diambil dari variabel lingkungan GOOGLE_CLOUD_PROJECT selama setelan izin access_firestore untuk project ID ditetapkan ke * atau GOOGLE_CLOUD_PROJECT . Jika penampung server dijalankan di
Google Cloud, GOOGLE_CLOUD_PROJECT sudah ditetapkan ke
ID project Google Cloud. |
merge |
boolean | Opsional. Jika ditetapkan ke true , gabungkan kunci dari input ke dokumen, jika tidak, metode akan menggantikan seluruh dokumen. Nilai defaultnya adalah false . |
transaction |
string | Opsional. Nilai yang diambil dari Firestore.runTransaction(). Menandai operasi yang akan digunakan dalam transaksi. |
Contoh
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
Fungsi Firestore.query
mengkueri pengumpulan yang diberikan dan menampilkan promise yang di-resolve ke array dokumen Firestore yang cocok dengan kondisi kueri. Objek dokumen Firestore sama seperti yang tercantum di atas dalam Firestore.read
. Jika tidak ada dokumen yang cocok dengan kondisi kueri, promise yang ditampilkan akan di-resolve menjadi array kosong.
Sintaksis
Firestore.query(collection, queryConditions[, options]);
Parameter | Jenis | Deskripsi |
---|---|---|
collection |
string | Jalur ke pengumpulan. Tidak boleh diawali atau diakhiri dengan '/'. |
queryConditions |
Array | Array kondisi kueri. Setiap kueri berbentuk array dengan tiga nilai: key, operator, dan expectedValue. Misalnya,
[[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]]. Kondisi digabungkan bersama untuk membuat hasil kueri. Lihat operator kueri Firestore untuk mengetahui daftar operator kueri yang kompatibel. |
options |
objek | Opsi permintaan opsional. Opsi yang didukung adalah: projectId, disableCache, limit, dan transaction. Kunci opsi yang tidak dikenal akan diabaikan. (Lihat Opsi, di bawah.) |
Parameter | Jenis | Deskripsi |
---|---|---|
projectId |
string | Opsional. ID Project Google Cloud Platform. Jika dihilangkan, projectId akan diambil dari variabel lingkungan GOOGLE_CLOUD_PROJECT selama setelan izin access_firestore untuk project ID ditetapkan ke * atau GOOGLE_CLOUD_PROJECT . Jika penampung server dijalankan di
Google Cloud, GOOGLE_CLOUD_PROJECT sudah ditetapkan ke
ID project Google Cloud. |
disableCache |
boolean | Opsional. Menentukan apakah cache dinonaktifkan atau tidak. Penyimpanan ke cache diaktifkan secara default, sehingga hasilnya akan disimpan di cache selama permintaan. |
limit |
angka | Opsional. Mengubah jumlah maksimum hasil yang ditampilkan oleh kueri, jumlah defaultnya adalah 5. |
transaction |
string | Opsional. Nilai yang diambil dari Firestore.runTransaction(). Menandai operasi yang akan digunakan dalam transaksi. |
Contoh
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
Fungsi Firestore.runTransaction
memungkinkan pengguna membaca dan menulis secara otomatis dari Firestore. Jika terjadi operasi tulis serentak atau konflik transaksi lainnya, transaksi tersebut akan dicoba lagi hingga dua kali. Jika gagal
setelah total tiga kali percobaan, API akan menolak dengan error. API ini menampilkan promise yang di-resolve ke array ID dokumen, untuk setiap operasi tulis, jika transaksi berhasil, dan akan menolak dengan error jika transaksi gagal.
Sintaksis
Firestore.runTransaction(callback[, options]);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
callback |
fungsi | Callback yang dipanggil dengan ID transaksi string. ID transaksi dapat diteruskan ke panggilan API baca/tulis/kueri. Fungsi callback ini harus menampilkan promise. Callback dapat berjalan hingga tiga kali sebelum gagal. |
options |
objek | Opsi permintaan opsional. Satu-satunya opsi yang didukung adalah projectId. Kunci opsi yang tidak dikenal akan diabaikan. (Lihat Opsi, di bawah.) |
Parameter | Jenis | Deskripsi |
---|---|---|
projectId |
string | Opsional. ID Project Google Cloud Platform. Jika dihilangkan, projectId akan diambil dari variabel lingkungan GOOGLE_CLOUD_PROJECT selama setelan izin access_firestore untuk project ID ditetapkan ke * atau GOOGLE_CLOUD_PROJECT . Jika penampung server dijalankan di
Google Cloud, GOOGLE_CLOUD_PROJECT sudah ditetapkan ke
ID project Google Cloud. |
Contoh
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);
Error yang tersedia di setiap fungsi Firestore akan ditolak dengan objek yang berisi kunci reason
:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
Alasan error dapat mencakup, tetapi tidak terbatas pada Kode Error REST API Firestore.
Izin terkait
JSON
Menampilkan objek yang menyediakan fungsi JSON.
Fungsi parse()
akan mengurai string JSON untuk membuat nilai atau objek yang dijelaskan oleh string. Jika nilainya tidak dapat diuraikan (misalnya, format JSON salah), fungsi ini akan menampilkan undefined
. Jika nilai input bukan berupa string, input tersebut akan dikonversi menjadi string.
Fungsi stringify()
mengonversi input menjadi string JSON. Jika nilai tidak dapat diuraikan (misalnya, objek memiliki siklus), metode akan menampilkan undefined
.
Contoh
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'});
Sintaksis
JSON.parse(stringInput);
JSON.stringify(value);
Izin terkait
Tidak ada.
Math
Objek yang menyediakan fungsi Math
.
Sintaksis
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);
Parameter
Parameter fungsi matematika dikonversi menjadi angka.
Izin terkait
Tidak ada.
Messages
Berbagai API berikut bersinergi agar pesan dapat diteruskan di antara bagian penampung yang berbeda.
addMessageListener
Menambahkan fungsi yang akan memproses pesan jenis tertentu. Saat pesan
dari jenis tersebut dikirim menggunakan API sendMessage
(biasanya oleh tag), callback akan dijalankan secara sinkron. Callback dijalankan dengan dua parameter:
messageType:string
message:Object
Jika callback ditambahkan di klien, callback akan menerima pesan di semua peristiwa yang dibuat klien. Jika callback hanya boleh menerima pesan dari peristiwa tertentu, maka kaitkan API ini ke peristiwa menggunakan bindToEvent
dalam fungsi onStart
API runContainer
. Lihat contohnya.
Sintaksis
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
messageType |
string | Jenis pesan yang akan diproses. Jika bukan string, nilai ini akan dikonversi menjadi string. |
callback |
fungsi | Callback yang akan dijalankan saat pesan dari jenis pesan yang berlaku dikirim. Jika callback bukan merupakan fungsi, API tidak akan melakukan apa pun. |
Contoh
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.
});
}
});
});
Izin terkait
Memerlukan izin use_message
. Izin harus dikonfigurasi untuk mengizinkan setidaknya:
- Jenis pesan dengan
Usage
darilisten
ataulisten_and_send
.
hasMessageListener
Menampilkan true jika pemroses pesan telah ditambahkan untuk jenis pesan yang diberikan. Jika tidak, false akan ditampilkan.
Sintaksis
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
Izin terkait
Tidak ada.
sendMessage
Mengirim pesan dari jenis yang ditentukan ke pemroses terdaftar. API ini dapat digunakan untuk mengirim pesan dari tag kembali ke klien yang menjalankan penampung.
Sintaksis
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
messageType |
string | Jenis pesan yang akan dikirim. Jika bukan string, nilai ini akan dikonversi menjadi string. |
message |
objek | Pesan yang akan dikirim. Jika pesan bukan objek, API tidak akan melakukan apa pun. |
Izin terkait
Memerlukan izin use_message
. Izin harus dikonfigurasi untuk mengizinkan setidaknya:
- Jenis pesan dengan
Usage
darilisten_and_send
atausend
.
Object
Menampilkan objek yang menyediakan metode Object
.
Metode keys()
menyediakan perilaku Object.keys() Library Standar. Metode ini menampilkan array nama properti yang dapat dihitung milik
objek tertentu dalam urutan yang sama seperti pada loop for...in...
. Jika nilai input bukan objek, nilai tersebut akan dikonversi menjadi objek.
Metode values()
menyediakan perilaku Object.values() Library Standar. Metode ini menampilkan array nilai properti yang dapat dihitung milik
objek tertentu dalam urutan yang sama seperti pada loop for...in...
. Jika nilai input bukan objek, nilai tersebut akan dikonversi menjadi objek.
Metode entries()
menyediakan perilaku Object.entries() Library Standar. Metode ini menampilkan array pasangan [key, value]
properti yang dapat dihitung milik objek tertentu dalam urutan yang sama seperti pada loop for...in...
. Jika nilai input bukan objek, nilai tersebut akan dikonversi menjadi objek.
Metode freeze()
menyediakan perilaku Object.freeze() Library Standar. Objek beku tidak dapat diubah lagi; pembekuan objek akan mencegah penambahan properti baru ke dalamnya, penghapusan properti yang ada, dan pengubahan nilai properti yang ada. freeze()
menampilkan objek yang sama yang diteruskan. Argumen primitif atau null akan diperlakukan seolah-olah merupakan objek yang dibekukan, dan akan ditampilkan.
Metode delete()
menyediakan perilaku operator 'delete' Library Standar. Metode ini akan menghapus kunci yang diberikan dari objek kecuali jika objek dibekukan.
Seperti operator 'delete' Library Standar, metode ini akan menampilkan true
jika nilai input pertama (objectInput
) adalah objek yang tidak dibekukan meskipun jika nilai input kedua (keyToDelete
) menentukan kunci yang tidak ada. Metode ini akan menampilkan false
dalam semua kasus lainnya. Namun ada perbedaan dengan operator 'delete' Library Standar dalam hal berikut:
keyToDelete
tidak boleh berupa string yang dipisahkan titik yang menentukan kunci bertingkat.delete()
tidak boleh digunakan untuk menghapus elemen dari array.delete()
tidak boleh digunakan untuk menghapus properti dari cakupan global.
Sintaksis
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
Parameter
Object.keys
Parameter | Jenis | Deskripsi |
---|---|---|
objectInput | apa pun | Objek yang kuncinya akan dihitung. Jika bukan objek, input akan dikonversi menjadi sebuah objek. |
Object.values
Parameter | Jenis | Deskripsi |
---|---|---|
objectInput | apa pun | Objek yang nilainya akan dihitung. Jika bukan objek, input akan dikonversi menjadi sebuah objek. |
Object.entries
Parameter | Jenis | Deskripsi |
---|---|---|
objectInput | apa pun | Objek yang pasangan nilai kuncinya akan dihitung. Jika bukan objek, input akan dikonversi menjadi sebuah objek. |
Object.freeze
Parameter | Jenis | Deskripsi |
---|---|---|
objectInput | apa pun | Objek yang akan dibekukan. Jika bukan objek, input akan diperlakukan sebagai objek yang dibekukan. |
Object.delete
Parameter | Jenis | Deskripsi |
---|---|---|
objectInput | apa pun | Objek yang kuncinya akan dihapus. |
keyToDelete | string | Kunci level atas yang akan dihapus. |
Contoh
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
Menampilkan objek yang menyediakan metode untuk berinteraksi dengan promise.
Promise secara fungsional setara dengan promise JavaScript. Setiap instance memiliki tiga metode yang menampilkan Promise, yang memungkinkan tindakan lebih lanjut saat promise selesai:
.then()
- Menangani kasus yang di-resolve dan ditolak. Di sini diperlukan dua callback: satu untuk kasus berhasil dan satu untuk kasus gagal..catch()
- Menangani kasus yang ditolak saja. Dibutuhkan satu callback sebagai parameter..finally()
- Memberikan cara agar kode dijalankan baik promise di-resolve atau ditolak. Dibutuhkan satu callback sebagai parameter yang dipanggil tanpa argumen.
Variabel yang menampilkan promise sama dengan nilai promise yang di-resolve, atau
false
jika promise ditolak.
Contoh
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
Menampilkan promise yang:
- me-resolve saat semua input telah me-resolve, atau
- menolak saat salah satu input menolak
Sintaksis
Promise.all(inputs);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
inputs |
Array | Array nilai atau promise. Jika input bukan promise, input akan diteruskan seolah-olah merupakan nilai promise yang di-resolve. Menampilkan error jika inputnya bukan array. |
Contoh
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: ''}]
});
Izin terkait
Tidak ada.
Promise.create
Membuat promise yang secara fungsional setara dengan promise JavaScript.
Sintaksis
Promise.create(resolver);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
resolver |
fungsi | Fungsi yang dipanggil dengan dua fungsi -- me-resolve dan menolak. Promise yang ditampilkan akan di-resolve atau ditolak saat parameter yang terkait dipanggil. Menampilkan error jika resolver bukan fungsi. |
Contoh
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
Izin terkait
Tidak ada.
API Pengujian
API ini berfungsi bersama pengujian JavaScript dengan sandbox untuk membuat pengujian bagi template kustom di Google Tag Manager. API pengujian ini tidak memerlukan pernyataan require()
. [Pelajari pengujian template kustom lebih lanjut].
assertApi
Menampilkan objek matcher yang dapat digunakan untuk membuat pernyataan secara lancar tentang API tertentu.
Sintaksis
assertApi(apiName)
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
apiName |
string | Nama API yang akan diperiksa; string yang sama seperti yang diteruskan ke require() .
|
Matcher
Subject.wasCalled()
Subject.wasNotCalled()
Subject.wasCalledWith(...expected)
Subject.wasNotCalledWith(...expected)
Contoh
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
API assertThat
dibuat sesuai model library [Truth] Google. API ini menampilkan objek yang dapat digunakan untuk membuat pernyataan secara lancar tentang nilai subjek. Kegagalan pernyataan akan segera menghentikan pengujian dan menandainya sebagai gagal. Namun, kegagalan dalam satu pengujian tidak akan memengaruhi kasus pengujian lainnya.
Sintaksis
assertThat(actual, opt_message)
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
actual |
apa pun | Nilai yang akan digunakan dalam pemeriksaan yang lancar. |
opt_message |
string | Pesan opsional yang akan dicetak jika pernyataan gagal. |
Matcher
Matcher | Deskripsi |
---|---|
isUndefined() |
Menyatakan bahwa subjek adalah undefined . |
isDefined() |
Menyatakan bahwa subjek bukan undefined . |
isNull() |
Menyatakan bahwa subjek adalah null . |
isNotNull() |
Menyatakan bahwa subjek bukan null . |
isFalse() |
Menyatakan bahwa subjek adalah false . |
isTrue() |
Menyatakan bahwa subjek adalah true . |
isFalsy() |
Menyatakan bahwa subjek falsy (bersifat salah). Nilai falsy adalah undefined , null , false , NaN , 0, dan '' (string kosong). |
isTruthy() |
Menyatakan bahwa subjek truthy (bersifat benar). Nilai falsy adalah undefined , null , false , NaN , 0, dan '' (string kosong). |
isNaN() |
Menyatakan bahwa subjek adalah nilai NaN. |
isNotNaN() |
Menyatakan bahwa subjek adalah nilai apa pun selain NaN. |
isInfinity() |
Menyatakan bahwa subjek adalah nilai tak terbatas positif atau negatif. |
isNotInfinity() |
Menyatakan bahwa subjek adalah nilai apa pun selain nilai tak terbatas positif atau negatif. |
isEqualTo(expected) |
Menyatakan bahwa subjek sama dengan nilai yang diberikan. Ini adalah perbandingan nilai, bukan perbandingan referensi. Konten objek dan array dibandingkan secara rekursif. |
isNotEqualTo(expected) |
Menyatakan bahwa subjek tidak sama dengan nilai yang diberikan. Ini adalah perbandingan nilai, bukan perbandingan referensi. Konten objek dan array dibandingkan secara rekursif. |
isAnyOf(...expected) |
Menyatakan bahwa subjek sama dengan salah satu nilai yang diberikan. Ini adalah perbandingan nilai, bukan perbandingan referensi. Konten objek dan array dibandingkan secara rekursif. |
isNoneOf(...expected) |
Menyatakan bahwa subjek tidak sama dengan salah satu nilai yang diberikan. Ini adalah perbandingan nilai, bukan perbandingan referensi. Konten objek dan array dibandingkan secara rekursif. |
isStrictlyEqualTo(expected) |
Menyatakan bahwa subjek sama persis (=== ) dengan nilai
yang diberikan. |
isNotStrictlyEqualTo(expected) |
Menyatakan bahwa subjek tidak sama persis (!== ) dengan nilai
yang diberikan. |
isGreaterThan(expected) |
Menyatakan bahwa subjek lebih besar dari (> ) nilai yang diberikan dalam perbandingan yang diurutkan. |
isGreaterThanOrEqualTo(expected) |
Menyatakan bahwa subjek lebih besar dari atau sama dengan (>= ) nilai yang diberikan dalam perbandingan yang diurutkan. |
isLessThan(expected) |
Menyatakan bahwa subjek lebih kecil dari (< ) nilai yang diberikan dalam perbandingan yang diurutkan. |
isLessThanOrEqualTo(expected) |
Menyatakan bahwa subjek lebih kecil dari atau sama dengan (<= ) nilai yang diberikan dalam perbandingan yang diurutkan. |
contains(...expected) |
Menyatakan bahwa subjek adalah array atau string yang berisi semua nilai yang diberikan dalam urutan apa pun. Ini adalah perbandingan nilai, bukan perbandingan referensi. Konten objek dan array dibandingkan secara rekursif. |
doesNotContain(...expected) |
Menyatakan bahwa subjek adalah array atau string yang tidak berisi nilai yang diberikan. Ini adalah perbandingan nilai, bukan perbandingan referensi. Konten objek dan array dibandingkan secara rekursif. |
containsExactly(...expected) |
Menyatakan bahwa subjek adalah array yang berisi semua nilai yang diberikan dalam urutan apa pun dan tidak ada nilai lain. Ini adalah perbandingan nilai, bukan perbandingan referensi. Konten objek dan array dibandingkan secara rekursif. |
doesNotContainExactly(...expected) |
Menyatakan bahwa subjek adalah array yang berisi kumpulan nilai yang berbeda dari nilai yang diberikan dalam urutan apa pun. Ini adalah perbandingan nilai, bukan perbandingan referensi. Konten objek dan array dibandingkan secara rekursif. |
hasLength(expected) |
Menyatakan bahwa subjek adalah array atau string dengan panjang yang diberikan. Pernyataan selalu gagal jika nilainya bukan array atau string. |
isEmpty() |
Menyatakan bahwa subjek adalah array atau string yang kosong (panjang = 0). Pernyataan selalu gagal jika nilainya bukan array atau string. |
isNotEmpty() |
Menyatakan bahwa subjek adalah array atau string yang tidak kosong (panjang > 0). Pernyataan selalu gagal jika nilainya bukan array atau string. |
isArray() |
Menyatakan bahwa jenis subjek adalah array. |
isBoolean() |
Menyatakan bahwa jenis subjek adalah boolean. |
isFunction() |
Menyatakan bahwa jenis subjek adalah fungsi. |
isNumber() |
Menyatakan bahwa jenis subjek adalah angka. |
isObject() |
Menyatakan bahwa jenis subjek adalah objek. |
isString() |
Menyatakan bahwa jenis subjek adalah string. |
Contoh
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
Segera menggagalkan pengujian yang aktif dan mencetak pesan yang diberikan, jika disediakan.
Sintaksis
fail(opt_message);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
opt_message |
string | Teks pesan error opsional. |
Contoh
fail('This test has failed.');
mock
API mock
memungkinkan Anda mengganti perilaku API dengan sandbox. API tiruan ini aman digunakan dalam kode template, tetapi hanya beroperasi dalam mode pengujian.
Model direset sebelum setiap pengujian dijalankan.
Sintaksis
mock(apiName, returnValue);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
apiName |
string | Nama API yang akan ditiru; string yang sama seperti yang diteruskan ke require() |
returnValue |
apa pun | Nilai yang akan ditampilkan untuk API atau fungsi yang dipanggil sebagai pengganti API. Jika returnValue adalah fungsi, fungsi tersebut dipanggil sebagai pengganti API dengan sandbox; jika returnValue adalah sesuatu selain fungsi, nilai tersebut akan ditampilkan sebagai pengganti API dengan sandbox. |
Contoh
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
API mockObject
memungkinkan Anda mengganti perilaku API dengan sandbox yang
menampilkan objek. API ini aman digunakan dalam kode template, tetapi hanya beroperasi
dalam mode pengujian. Model direset sebelum setiap pengujian dijalankan.
Sintaksis
mockObject(apiName, objectMock);
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
apiName |
string | Nama API yang akan ditiru; string yang sama seperti yang diteruskan ke require() |
objectMock |
objek | Nilai yang akan ditampilkan untuk API atau fungsi yang dipanggil sebagai pengganti API. Harus berupa objek. |
Contoh
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
Menjalankan kode untuk template, yaitu konten tab Kode, di lingkungan pengujian saat ini dengan objek data input tertentu.
Sintaksis
runCode(data)
Parameter
Parameter | Jenis | Deskripsi |
---|---|---|
data |
objek | Objek data yang akan digunakan dalam pengujian. |
Nilai Hasil
Menampilkan nilai variabel untuk template variabel; menampilkan undefined
untuk semua jenis template lainnya.
Contoh
runCode({field1: 123, field2: 'value'});