Bu dokümanda, sunucu tarafı etiketleme için API'ler özetlenmektedir.
addEventCallback
Bir etkinliğin sonunda çağrılacak bir geri çağırma işlevi kaydeder. Geri çağırma, etkinlikle ilgili tüm etiketler yürütüldüğünde çağrılır. Geri çağırma iki değer iletir: işlevi çağıran container'ın kimliği ve etkinlikle ilgili bilgileri içeren bir nesne.
Bu API bir etikette kullanıldığında geçerli etkinlikle ilişkilendirilir. Bu API bir istemcide kullanıldığında, runContainer
API'nin bindToEvent
işleviyle belirli bir etkinliğe bağlı olmalıdır. Daha fazla bilgi için örneğe bakın.
Söz dizimi
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
callback |
işlev | Etkinliğin sonunda çağrılacak işlev. |
eventData
nesnesi aşağıdaki verileri içerir:
Anahtar Adı | Tür | Açıklama |
---|---|---|
tags |
Dizi |
Etiket verisi nesneleri dizisi. Etkinlik sırasında tetiklenen her etiket
bu dizide bir girişe sahip olacaktır. Etiket veri nesnesi, etiketin kimliğini (id ), yürütme durumunu (status ) ve yürütme süresini (executionTime ) içerir. Etiket verileri, etikette yapılandırılmış ek etiket meta verilerini de içerir.
|
İstemcide:
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();
}
});
});
Bir etikette:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
İlişkilendirilmiş izinler
callLater
Bir işleve eşzamansız olarak gerçekleşecek bir çağrı planlar. İşlev, geçerli kod döndürüldükten sonra çağrılır. Bu, setTimeout(<function>, 0)
işlevine eş değerdir.
Örnek
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
Söz dizimi
callLater(function)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
function |
işlev | Çağrılacak işlev. |
İlişkilendirilmiş izinler
Yok.
claimRequest
İsteği talep etmek için bu API'yi bir istemcide kullanın. Bir istek talep edildikten sonra, container ek istemcileri çalıştırmaz.
Bu API, bir etiket veya değişken içinde çağrılırsa bir istisna uygular. Bu API, istemci geri döndükten sonra çağrılırsa (ör. callLater
veya runContainer
onComplete
işlevinde olduğu gibi eşzamansız bir geri çağırmada çağrılırsa) bir istisna uygular.
Bir istemci, runContainer
API'yi çağırmadan önce bu API'yi kullanarak isteği talep etmelidir.
Örnek
const claimRequest = require('claimRequest');
claimRequest();
Söz dizimi
claimRequest();
İlişkilendirilmiş izinler
Yok.
computeEffectiveTldPlusOne
Belirli bir alan adının veya URL'nin geçerli üst düzey alan adı + 1'ini (eTLD+1) döndürür. eTLD+1, alan Genel Son Ek Listesi kurallarına göre değerlendirilerek hesaplanır. eTLD+1, genellikle çerez ayarlayabileceğiniz en üst düzey alandır.
Bağımsız değişken null veya tanımsız ise bağımsız değişken değeri değiştirilmeden döndürülür. Aksi takdirde, bağımsız değişken bir dizeye zorlanır. Bağımsız değişken geçerli bir alan adı veya URL değilse boş bir dize döndürülür. Sunucu, genel sonek listesini getiremezse bağımsız değişken değeri değiştirilmeden döndürülür.
Örnek
const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');
Söz dizimi
computeEffectiveTldPlusOne(domainOrUrl);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
domainOrUrl |
dize | eTLD+1'in hesaplanacağı bir alan adı veya URL. |
İlişkilendirilmiş izinler
Yok.
createRegex
Yeni bir normal ifade örneği oluşturur ve bunu bir nesneye sarmalanmış olarak döndürür. Normal ifadeye doğrudan erişemezsiniz. Ancak bunu testRegex
API, String.replace()
, String.match()
ve String.search()
'e aktarabilirsiniz.
Normal ifade geçersizse veya Re2 sunucuda kullanılamıyorsa null
değerini döndürür.
Bu API, bir Re2 uygulaması kullanır. Sunucu Docker görüntüsü, 2.0.0 veya sonraki sürümlerde olmalıdır.
Örnek
const createRegex = require('createRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');
Söz dizimi
createRegex(pattern, flags);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
pattern |
dize | Normal ifadenin metni. |
flags |
dize | Oluşturulan normal ifade için işaretleri içeren isteğe bağlı bir dize. "g" (global) ve "i" (büyük/küçük harfe duyarlı değil)" desteklenir. Diğer tüm karakterler sessizce yoksayılır. |
İlişkilendirilmiş izinler
Yok.
Minimum görüntü sürümü
decodeUri
Sağlanan URI'daki kodlanmış karakterlerin kodunu çözer. Kodu çözülmüş URI'yı temsil eden bir dize değerini döndürür. Geçersiz giriş sağlandığında undefined
değerini döndürür.
Örnek
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
Söz dizimi
decodeUri(encoded_uri);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
encoded_uri |
dize |
encodeUri() veya başka yollarla kodlanmış bir URI.
|
İlişkilendirilmiş izinler
Yok.
decodeUriComponent
Sağlanan URI bileşenindeki kodlanmış karakterlerin kodunu çözer. Kodu çözülmüş URI bileşenini temsil eden bir dize döndürür. Geçersiz giriş verildiğinde undefined
değerini döndürür.
Örnek
const decodeUriComponent = require('decodeUriComponent');
const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
// ...
}
Söz dizimi
decodeUriComponent(encoded_uri_component);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
encoded_uri_component |
dize |
encodeUriComponent() veya başka yollarla kodlanmış bir URI bileşeni.
|
İlişkilendirilmiş izinler
Yok.
encodeUri
Özel karakterlere çıkış yaparak kodlanmış bir Tekdüzen Kaynak Tanımlayıcısı (URI) döndürür. URI olarak kodlanmış, sağlanan dizeyi temsil eden bir dize döndürür.
Örnek
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
Söz dizimi
encodeUri(uri);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
uri |
dize | Tam URI. |
İlişkilendirilmiş izinler
Yok.
encodeUriComponent
Özel karakterlere çıkış yaparak kodlanmış bir Tekdüzen Kaynak Tanımlayıcısı (URI) döndürür. URI olarak kodlanmış, sağlanan dizeyi temsil eden bir dize döndürür.
Örnek
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
Söz dizimi
encodeUriComponent(str);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
str |
dize | URI'nın bir bileşeni. |
İlişkilendirilmiş izinler
Yok.
extractEventsFromMpv1
Gelen Measurement Protocol V1 isteğini, Birleşik Şema biçimindeki etkinlik listesine dönüştürür. Ayıklanan etkinliklerin listesini döndürür. İstek doğru biçimde değilse hata verir.
Örnek
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.
}
}
Söz dizimi
extractEventsFromMpv1();
İlişkilendirilmiş izinler
read_request
izni gerektirir. Bu izin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
body
query parameters
extractEventsFromMpv2
Gelen Measurement Protocol V2 isteğini, Birleşik Şema biçimindeki etkinlik listesine dönüştürür. Ayıklanan etkinliklerin listesini döndürür. İstek doğru biçimde değilse hata verir.
Örnek
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.
}
}
Söz dizimi
extractEventsFromMpv2();
İlişkilendirilmiş izinler
read_request
izni gerektirir. Bu izin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
body
query parameters
fromBase64
base64 kodlu bir dizenin kodunu çözer. Giriş geçersizse undefined
değerini döndürür.
Söz dizimi
fromBase64(base64EncodedString);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
base64EncodedString |
dize | Base64 olarak kodlanmış dize. |
Örnek
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
İlişkilendirilmiş izinler
Yok.
generateRandom
Belirli bir aralık içinde rastgele bir sayı (tam sayı) döndürür.
Örnek
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
Söz dizimi
generateRandom(min, max);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
min |
sayı | Döndürülen tam sayının minimum potansiyel değeri (bu değerler dahil). |
max |
sayı | Döndürülen tam sayının maksimum potansiyel değeri (bu değerler dahil). |
İlişkilendirilmiş izinler
Yok.
getAllEventData
Etkinlik verilerinin bir kopyasını döndürür.
Söz dizimi
getAllEventData();
İlişkilendirilmiş izinler
getClientName
Geçerli istemcinin adını içeren bir dize döndürür.
Söz dizimi
getClientName();
İlişkilendirilmiş izinler
getContainerVersion
Geçerli kapsayıcıyla ilgili verileri içeren bir nesne döndürür. Döndürülen nesne aşağıdaki alanları içerir:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
Örnek
const getContainerVersion = require('getContainerVersion');
const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];
Söz dizimi
getContainerVersion();
İlişkilendirilmiş izinler
getCookieValues
Belirtilen ada sahip tüm çerezlerin değerlerini içeren bir diziyi döndürür.
Örnek
const getCookieValues = require('getCookieValues');
const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
// ...
}
Söz dizimi
getCookieValues(name[, noDecode]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
name |
dize | Çerezin adı. |
noDecode |
boolean |
true ise çerez değerlerinin kodu döndürülmeden önce çözülmez. Varsayılan olarak false değerine ayarlanır.
|
İlişkilendirilmiş izinler
getEventData
Etkinlik verilerinde belirtilen yoldaki değerin bir kopyasını döndürür. Etkinlik verisi yoksa veya belirtilen yolda bir değer yoksa undefined
değerini döndürür.
Örnek
const getEventData = require('getEventData');
const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
keyPath |
herhangi biri |
Yol bileşenlerinin noktalarla ayrıldığı anahtar yolu. Yol bileşenleri, nesnelere ait anahtarlar veya dizilerdeki dizinler olabilir. keyPath bir dize değilse dize haline getirilir.
|
Söz dizimi
getEventData(keyPath);
İlişkilendirilmiş izinler
getGoogleAuth
sendHttpGet
veya sendHttpRequest
ile birlikte kullanıldığında Google Cloud API'leri için yetkilendirme başlığı içerecek bir yetkilendirme nesnesi döndürür. Bu API, sunucu ortamından kimlik bilgilerini otomatik olarak bulmak için Uygulama Varsayılan Kimlik Bilgilerini kullanır.
Örnek
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();
}
});
Söz dizimi
getGoogleAuth(scopes);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
scopes
|
Dizi | Erişim istenecek bir dizi OAuth 2.0 Google API kapsamları. |
İlişkilendirilmiş izinler
use_google_credentials
izni gerektirir. İzin, bir veya daha fazla izin verilen kapsamla yapılandırılmalıdır.
getGoogleScript
Önceden belirlenmiş Google komut dosyaları kümesinden bir kaynak alır, komut dosyası ve ilişkili önbelleğe alma meta verileriyle birlikte bir vaat döndürür.
Söz konusu eylem, şu iki anahtar içeren bir nesneye çözümlenir: script
ve metadata
. İstek başarısız olursa taahhüt bir reason
anahtarıyla reddedilir.
metadata
nesnesi, kaynak yanıt başlıklarına dayalı olarak aşağıdaki önbelleğe alma meta verilerini içerir. Her alan, yalnızca karşılık gelen başlık kaynak yanıtında mevcutsa mevcut olur.
{
'cache-control': string,
'expires': string,
'last-modified': string,
}
Örnek
const getGoogleScript = require('getGoogleScript');
getGoogleScript('ANALYTICS').then((result) => {
// Operate on result.script and result.metadata here.
});
Söz dizimi
getGoogleScript(script[, options]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
script |
dize |
Komut dosyasının adı. 'ANALYTICS' , 'GTAG' ve 'GTM' komut dosyaları desteklenir.'ANALYTICS' seçeneği, https://www.google-analytics.com/analytics.js kaynağından Google Analytics komut dosyasını getirir.'GTAG' seçeneği, https://www.googletagmanager.com/gtag/js kaynağından global site etiketi (gtag.js) komut dosyasını getirir.'GTM' seçeneği, https://www.googletagmanager.com/gtm.js kaynağından Google Etiket Yöneticisi komut dosyasını getirir.
|
options |
nesne | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler için aşağıya bakın. |
Seçenekler
Option | Tür | Açıklama |
---|---|---|
id |
dize |
gtag ölçüm kimliğine sahip 'GTAG' ve web kapsayıcısı kimliğine sahip 'GTM' (ör. GTM-XXXX) ile uyumludur.
|
debug |
herhangi biri | Doğru değerine ayarlanırsa ölçüm komut dosyasının hata ayıklama sürümünü ister ve döndürür. |
timeout |
sayı |
Milisaniye cinsinden istek zaman aşımı; pozitif olmayan değerler yoksayılır. İstek zaman aşımına uğrarsa geri çağırma, komut dosyası değeri için undefined ve meta veri nesnesi için {} ile çağrılır.
|
Tanınmayan seçenek tuşları yoksayılır.
İlişkilendirilmiş izinler
send_http
izni gerektirir. Bu izin, en az şunlara
erişim izni verecek şekilde yapılandırılmalıdır:
- Google alan adlarına izin ver
getRemoteAddress
Yönlendirilen ve X-Yönlendirilen-For gibi istek başlıklarını okuyarak, isteğin kaynaklandığı IP adresinin dize gösterimini (ör. IPv4 için 12.345.67.890
veya IPv6 için 2001:0db8:85a3:0:0:8a2e:0370:7334
) döndürür.
Not: Bu API, kaynak IP'yi bulmak için her türlü çabayı gösterse de sonucun doğru olacağını garanti edemez.
Söz dizimi
getRemoteAddress();
İlişkilendirilmiş izinler
read_request
izni gerektirir. Bu izin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
- Başlıklar
Forwarded
veX-Forwarded-For
- Uzak IP Adresi
getRequestBody
İstek gövdesini dize (mevcutsa) veya undefined
(varsa) olarak döndürür.
Söz dizimi
getRequestBody();
İlişkilendirilmiş izinler
getRequestHeader
Varsa adlandırılmış istek başlığının değerini dize olarak veya varsa undefined
olarak döndürür. Üst bilgi tekrarlanırsa döndürülen değerler ', '
ile birleştirilir.
Örnek
const getRequestHeader = require('getRequestHeader');
const host = getRequestHeader('host');
Söz dizimi
getRequestHeader(headerName);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
headerName |
dize | Başlık adı. Bu değer büyük/küçük harfe duyarlı değildir. |
İlişkilendirilmiş izinler
getRequestMethod
İstek yöntemini (ör. 'GET'
veya 'POST'
) bir dize olarak döndürür.
Örnek
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
Söz dizimi
getRequestMethod();
İlişkilendirilmiş izinler
Yok.
getRequestPath
Sorgu dizesi olmadan istek yolunu döndürür. Örneğin, URL '/foo?id=123'
ise '/foo'
değerini döndürür. Sunucu kapsayıcısı URL'si ön ekini yoldan otomatik olarak çıkarır. Örneğin, Sunucu kapsayıcı URL'si https://example.com/analytics
ve istek yolu '/analytics/foo'
ise bu işlem '/foo'
değerini döndürür.
Örnek
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
Söz dizimi
getRequestPath();
İlişkilendirilmiş izinler
getRequestQueryParameter
Adlandırılmış sorgu dizesi parametresinin kodu çözülmüş değerini dize olarak veya parametre yoksa undefined
olarak döndürür. Parametre sorgu dizesinde tekrarlanırsa sorgu dizesinde görünen ilk değer döndürülür.
Örnek
const getRequestQueryParameter = require('getRequestQueryParameter');
const query = getRequestQueryParameter('query');
if (query) {
// Process query here.
}
Söz dizimi
getRequestQueryParameter(name);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
name |
dize | Sorgu parametresinin adı. |
İlişkilendirilmiş izinler
getRequestQueryParameters
Gelen HTTP isteğinin sorgu parametrelerini, sorgu parametresi adlarını karşılık gelen değer veya değerlerle eşleştiren bir nesne olarak döndürür. Parametre adlarının ve değerlerinin kodu çözülür.
Örnek
const getRequestQueryParameters = require('getRequestQueryParameters');
const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
// Handle the search query here.
const maxResults = queryParameters['max_results'];
}
Söz dizimi
getRequestQueryParameters();
İlişkilendirilmiş izinler
getRequestQueryString
İstek sorgusunu, başında soru işareti olmadan bir dize olarak veya istek URL'si bir sorgu dizesi içermiyorsa boş bir dize olarak döndürür.
Örnek
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
Söz dizimi
getRequestQueryString();
İlişkilendirilmiş izinler
getTimestamp
Kullanımdan kaldırıldı. getTimestampMillis'i tercih edin.
Date.now()
tarafından döndürülen, Unix döneminden bu yana geçen geçerli zamanı milisaniye cinsinden temsil eden sayı değerini döndürür.
Söz dizimi
getTimestamp();
İlişkilendirilmiş izinler
Yok.
getTimestampMillis
Date.now()
tarafından döndürülen, Unix döneminden bu yana geçen geçerli zamanı milisaniye cinsinden temsil eden sayı değerini döndürür.
Söz dizimi
getTimestampMillis();
İlişkilendirilmiş izinler
Yok.
getType
Belirtilen değerin türünü açıklayan bir dize döndürür.
Giriş Türü | Döndürülen Değer |
---|---|
dize | 'string' |
sayı | 'number' |
boolean | 'boolean' |
null | 'null' |
tanımsız | 'undefined' |
Dizi | 'array' |
Nesne | 'object' |
İşlev | 'function' |
Örnek
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);
}
Söz dizimi
getType(value);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
value |
herhangi biri | Giriş değeri. |
İlişkilendirilmiş izinler
Yok.
hmacSha256
SHA-256 ile Karma Tabanlı İleti Kimlik Doğrulama Kodu (HMAC) kullanarak kodlanmış imzayı hesaplar. Varsayılan olarak base64url
kodlaması kullanılır.
Bu API'yi kullanmak için sunucudaki SGTM_CREDENTIALS
ortam değişkenini aşağıdaki biçime sahip UTF-8 kodlamalı JSON anahtar dosyasının yoluna ayarlayın:
{
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
Değerler, base64 kodlu HMAC anahtarlarıdır.
Örnek
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;
Söz dizimi
hmacSha256(data, keyId, options)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
data |
dize | HMAC değerini hesaplayacak veriler. |
keyId
|
dize | JSON anahtar dosyasında bulunan ve kullanılacak anahtarı ifade eden anahtar kimliği. |
options
|
nesne | İsteğe bağlı API yapılandırması. (Aşağıdaki Seçenekleri inceleyin.) |
Seçenekler
Option | Tür | Açıklama |
---|---|---|
outputEncoding
|
dize | Döndürülen değer için kodlama biçimini belirtir. Desteklenen biçimler hex , base64 veya base64url 'dir. Belirtilmezse varsayılan olarak base64url değerine ayarlanır. |
İlişkilendirilmiş izinler
Minimum görüntü sürümü
isRequestMpv1
Gelen istek bir Measurement Protocol V1 isteğiyse true
değerini, aksi takdirde false
değerini döndürür.
Örnek
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
// Handle Measurement Protocol V1 request.
const events = extractEventsFromMpv1();
}
Söz dizimi
isRequestMpv1();
İlişkilendirilmiş izinler
Yok.
isRequestMpv2
Gelen istek bir Measurement Protocol V2 isteğiyse true
değerini, aksi takdirde false
değerini döndürür.
Örnek
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
Söz dizimi
isRequestMpv2();
İlişkilendirilmiş izinler
Yok.
logToConsole
Bağımsız değişkenlerini konsola kaydeder.
Bu günlükler, Google Cloud Console'daki Günlük Gezgini'nde görülebilir.
Bu API tarafından oluşturulan günlük girişlerini görmek için Günlük Gezgini'nden logName =~ "stdout"
sorgusunu çalıştırın.
Örnek
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
Söz dizimi
logToConsole(argument1[, argument2, ...]);
Parametreler
API, gerekirse her biri bir dizeye dönüştürülen ve konsolda günlüğe kaydedilen bir veya daha fazla bağımsız değişken alır.
İlişkilendirilmiş izinler
makeInteger
Belirtilen değeri bir sayıya (tam sayı) dönüştürür.
Söz dizimi
makeInteger(value);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
value |
herhangi bir tür | Dönüştürülecek değer. |
İlişkilendirilmiş izinler
Yok.
makeNumber
Belirli bir değeri sayıya dönüştürür.
Söz dizimi
makeNumber(value);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
value |
herhangi bir tür | Dönüştürülecek değer. |
İlişkilendirilmiş izinler
Yok.
makeString
Verilen değeri dize olarak döndürür.
Söz dizimi
makeString(value);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
value |
herhangi bir tür | Dönüştürülecek değer. |
İlişkilendirilmiş izinler
Yok.
makeTableMap
İki sütunlu basit bir tablo nesnesini Map
biçimine dönüştürür. Bu, iki sütunlu bir SIMPLE_TABLE
şablon alanını daha kolay idare edilebilir bir biçime dönüştürmek için kullanılır.
Örneğin, bu işlev bir tablo nesnesini dönüştürebilir:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
aşağıdakileri yapabilirsiniz:
{
'k1': 'v1',
'k2': 'v2'
}
Nesne döndürür: Anahtar/değer çiftlerinin dönüştürülen Map
değeri bu nesneye eklenmiştir veya null
eklenmemiştir.
Söz dizimi
makeTableMap(tableObj, keyColumnName, valueColumnName);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
tableObj |
Listele |
Dönüştürülecek tablo nesnesi. Her Map değerinin tablodaki bir satırı temsil ettiği haritalar listesidir. Bir satır nesnesindeki her bir özellik adı sütun adıdır. Özellik değeri ise satırdaki sütun değeridir.
|
keyColumnName |
dize |
Değerleri dönüştürülen Map içinde anahtar haline gelecek sütunun adı.
|
valueColumnName |
dize |
Değerleri dönüştürülen Map içinde değer haline gelecek sütunun adı.
|
İlişkilendirilmiş izinler
Yok.
parseUrl
URL
nesnesine benzer şekilde, belirli bir URL'nin bileşen parçalarının tümünü içeren bir nesneyi döndürür.
Bu API, hatalı oluşturulmuş URL'ler için undefined
değerini döndürür. Doğru biçimlendirilmiş URL'ler için URL dizesinde bulunmayan alanlar, boş dize değerine veya searchParams
olması durumunda boş nesne değerine sahip olur.
Döndürülen nesne aşağıdaki alanları içerir:
{
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,
}
Örnek
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
Söz dizimi
parseUrl(url);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
url |
dize | Ayrıştırılacak tam URL. |
İlişkilendirilmiş izinler
Yok.
returnResponse
setCookie, setPixelResponse, setResponseBody, setResponseHeader ve setResponseStatus dahil olmak üzere yanıtı değiştiren API'leri kullanarak diğer şablonlar tarafından daha önce ayarlanmış yanıtı temizler. Varsayılan olarak HTTP durum kodu 200, boş gövde ve başlık yoktur.
Bu API'nin bir istemci şablonundan kullanılması önerilir.
Söz dizimi
returnResponse();
Örnek
runContainer
örneğini inceleyin.
İlişkilendirilmiş izinler
runContainer
Kapsayıcı mantığını (değişkenler, tetikleyiciler, etiketler) bir etkinlik kapsamında çalıştırır. Bu API, container yürütme sırasında çağrılırsa kapsayıcı tekrar çalıştırılır.
onComplete
ve onStart
geri çağırmaları bindToEvent
adlı bir işlev alır. Etkinlik bağlamında API çalıştırmak için bindToEvent
kullanın.
Daha ayrıntılı bilgi için addEventCallback örneğine bakın.
Bu API'nin bir istemci şablonundan kullanılması önerilir.
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());
Söz dizimi
runContainer(event, onComplete, onStart);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
event |
nesne | Etkinlik parametreleri. |
onComplete |
işlev | Tüm etiketlerin etkinleşmesi bittikten sonra çağrılan bir geri çağırma. |
onStart |
işlev | Etiketler etkinleşmeye başlamadan hemen önce çağrılan bir geri çağırma. |
İlişkilendirilmiş izinler
sendEventToGoogleAnalytics
Ortak Etkinlik Verileri'ni kullanarak Google Analytics'e tek bir etkinlik gönderir ve location
anahtarıyla bir nesneye çözümlenen veya reason
anahtarı olan bir nesneyi reddedilen söz döndürür. Universal Analytics veya Google Analytics 4 hedefi, etkinlik verilerindeki ölçüm kimliğini temel alır.
Varsa location
alanı location
başlığına ayarlanır.
Örnek
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();
});
Söz dizimi
sendEventToGoogleAnalytics(event);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
event |
nesne | Birleşik Şema biçimindeki etkinlik. |
İlişkilendirilmiş izinler
send_http
izni gerektirir. Bu izin, en az şunlara
erişim izni verecek şekilde yapılandırılmalıdır:
- Google alan adlarına izin ver
sendHttpGet
Belirtilen URL'ye bir HTTP GET isteği gönderir ve istek tamamlandığında ya da zaman aşımına uğradığında sonuçla çözümlenen bir taahhüt döndürür.
Çözümlenen sonuç üç anahtar içeren bir nesnedir: statusCode
, headers
ve body
. İstek başarısız olursa (ör. geçersiz URL, ana makine yolu yok, SSL iletişim hatası vb.) taahhüt reddedilir: {reason:
'failed'}
. timeout
seçeneği ayarlanmışsa ve istek zaman aşımına uğradıysa taahhüt şu şekilde reddedilir: {reason: 'timed_out'}
Örnek
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);
Söz dizimi
sendHttpGet(url[, options]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
url |
dize | İstenen URL. |
options
|
nesne | İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekleri inceleyin.) |
Seçenekler
Option | Tür | Açıklama |
---|---|---|
headers |
dize | Ek istek başlıkları. |
timeout
|
sayı | İstek iptal edilmeden önceki zaman aşımı (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır. |
authorization
|
nesne | googleapis.com için istekte bulunurken yetkilendirme üstbilgilerinin dahil edilmesi amacıyla getGoogleAuth çağrısındaki isteğe bağlı yetkilendirme nesnesi. |
İlişkilendirilmiş izinler
sendHttpRequest
Belirtilen URL'ye bir HTTP isteği gönderir ve istek tamamlandığında veya zaman aşımına uğradığında yanıtla birlikte çözümlenen bir söz döndürür.
Çözümlenen sonuç üç anahtar içeren bir nesnedir: statusCode
, headers
ve body
. İstek başarısız olursa (ör. geçersiz URL, ana makine yolu yok, SSL iletişim hatası vb.) taahhüt reddedilir: {reason:
'failed'}
. timeout
seçeneği ayarlanmışsa ve istek zaman aşımına uğradıysa taahhüt şu şekilde reddedilir: {reason: 'timed_out'}
Örnek
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']);
});
Söz dizimi
sendHttpRequest(url[, options[, body]]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
url |
dize | İstenen URL. |
options
|
nesne | İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekleri inceleyin.) |
body |
dize | İsteğe bağlı istek gövdesi. |
Seçenekler
Option | Tür | Açıklama |
---|---|---|
headers |
dize | Ek istek başlıkları. |
method |
nesne | İstek yöntemi. Varsayılan olarak GET değerine ayarlanır. |
timeout
|
sayı | İstek iptal edilmeden önceki zaman aşımı (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır. |
authorization
|
nesne | googleapis.com için istekte bulunurken yetkilendirme üstbilgilerinin dahil edilmesi amacıyla getGoogleAuth çağrısındaki isteğe bağlı yetkilendirme nesnesi. |
İlişkilendirilmiş izinler
sendPixelFromBrowser
Sağlanan URL'yi <img>
etiketi olarak yüklemesi için tarayıcıya bir komut gönderir. Bu komut protokolü, GA4 için Google etiketi ve Google Analytics: GA Etkinliği web etiketlerinde desteklenir. Sunucu kapsayıcı URL'sini yapılandırmanız gerekir. Daha fazla bilgi için talimatları inceleyin.
Gelen istek komut protokolünü desteklemiyorsa veya yanıt zaten temizlenmişse bu API false
değerini döndürür. Aksi takdirde bu API, true
değerini döndürür.
Örnek:
const sendPixelFromBrowser = require('sendPixelFromBrowser');
sendPixelFromBrowser('https://example.com/?id=123');
Söz dizimi
sendPixelFromBrowser(url)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
url |
dize | Tarayıcıya gönderilecek URL. |
İlişkilendirilmiş izinler
setCookie
Belirtilen seçeneklerle bir çerezi ayarlar veya siler.
Bir çerezi silmek için çerezin oluşturulduğu yol ve alan adına sahip bir çerez ayarlanmalı ve bu çereze geçmişte olan bir geçerlilik süresi değeri (ör. "Thu, 01 Jan 1970 00:00:00 GMT"
) atanmalıdır.
Yanıtın istemciye geri gönderilmesi için returnResponse değerinin çağrılması gerektiğini unutmayın.
Örnek
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
Söz dizimi
setCookie(name, value[, options[, noEncode]]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
name |
dize | Çerez adı. Ad büyük/küçük harfe duyarlı değildir. |
value |
dize | Çerez değeri. |
options |
nesne | İsteğe bağlı çerez özellikleri:domain, expires, fallbackDomain,httpOnly, max- age, path, secure vesameSite. (Aşağıdaki Seçenekler bölümünü inceleyin.) |
noEncode |
boolean |
True (doğru) ise çerez değeri kodlanmaz. Varsayılan olarak false değerine ayarlanır.
|
domain: Çerezin gönderileceği ana makine. "auto" özel değerine ayarlanırsa ana makine aşağıdaki strateji kullanılarak otomatik olarak hesaplanır:
- Varsa
Forwarded
başlığının eTLD+1'i. - Varsa
X-Forwarded-Host
başlığının eTLD+1'i. Host
başlığının eTLD+1'i.
- Varsa
expires: Çerezin maksimum ömrü. Bu değer, UTC biçiminde bir tarih dizesi olmalıdır; ör. "26 Ekim 1985, Cmt 1985 08:21:00 GMT". Hem
expires
hem demax-age
ayarlanırsamax-age
öncelikli olur.httpOnly:
true
olduğunda JavaScript'in çereze erişimini engeller.max-age: Çerezin süresi dolana kadar geçen saniye sayısı. Sıfır veya negatif bir sayı, çerezin süresi hemen dolar. Hem
expires
hem demax-age
ayarlanırsamax-age
öncelikli olur.path: İstenen URL'de bulunması gereken bir yol. Aksi takdirde tarayıcı, Çerez başlığını göndermez.
secure:
true
olarak ayarlanırsa çerez yalnızca birhttps:
uç noktasından istek yapıldığında sunucuya gönderilir.sameSite: Bir çerezin, kaynaklar arası isteklerle gönderilmemesi gerektiğini iddia eder.
'strict'
,'lax'
veya'none'
olmalıdır.
İlişkilendirilmiş izinler
setPixelResponse
Yanıt gövdesini 1x1 GIF olarak ayarlar, Content-Type başlığını "image/gif" olarak ayarlar, kullanıcı aracılarının yanıtı önbelleğe almayacağı şekilde önbelleğe alma üst bilgileri ayarlar ve yanıt durumunu 200 olarak ayarlar.
Yanıtın istemciye geri gönderilmesi için returnResponse değerinin çağrılması gerektiğini unutmayın.
Söz dizimi
setPixelResponse();
İlişkilendirilmiş izinler
access_response
izni gerektirir. Bu izin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
headers
- Aşağıdaki anahtarlara izin verilmelidircontent-type
cache-control
expires
pragma
body
status
setResponseBody
Bağımsız değişkene yanıt gövdesini ayarlar.
Yanıtın istemciye geri gönderilmesi için returnResponse değerinin çağrılması gerektiğini unutmayın.
Söz dizimi
setResponseBody(body[, encoding]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
body |
dize | Yanıt gövdesi olarak ayarlanacak değer. |
encoding |
dize |
Yanıt gövdesinin karakter kodlaması (varsayılan olarak 'utf8' değerine ayarlanır). Desteklenen değerler şunlardır: 'ascii' , 'utf8' , 'utf16le' , 'ucs2' , 'base64' , 'latin1' , 'binary' ve 'hex' .
|
İlişkilendirilmiş izinler
access_response
izni gerektirir. Bu izin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
body
setResponseHeader
Yanıtta, döndürülecek bir üstbilgi ayarlar. Bu API tarafından daha önce bu ada sahip bir üst bilgi (büyük/küçük harfe duyarlı değil) ayarlanmışsa sonraki çağrı, önceki çağrı tarafından ayarlanan değerin üzerine yazar veya silinir.
Yanıtın istemciye geri gönderilmesi için returnResponse değerinin çağrılması gerektiğini unutmayın.
Söz dizimi
setResponseHeader(name, value);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
name |
dize | Başlık adı. HTTP üst bilgi adları büyük/küçük harfe duyarlı değildir. Bu nedenle, başlık adı küçük harfle yazılır. |
value |
dize undefined | Başlık değeri. Null veya tanımlanmamışsa adlandırılmış üstbilgi, döndürülecek yanıttan temizlenir. |
İlişkilendirilmiş izinler
access_response
izni gerektirir. Bu izin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
headers
setResponseStatus
Döndürülecek yanıtın HTTP durum kodunu ayarlar.
Yanıtın istemciye geri gönderilmesi için returnResponse değerinin çağrılması gerektiğini unutmayın.
Söz dizimi
setResponseStatus(statusCode);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
statusCode |
sayı | Döndürülecek HTTP durum kodu. |
İlişkilendirilmiş izinler
access_response
izni gerektirir. Bu izin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
status
sha256
options
nesnesi farklı bir çıkış kodlaması belirtmediği sürece, girişin SHA-256 özetini hesaplar ve base64'te kodlanmış özetle bir geri çağırma çağırır.
Bu API imzası ve davranışı, web kapsayıcıları için sha256
API ile eşleşir. Ancak sunucu kapsayıcılarındaki Özel Şablonlar, daha basit kodlar için sha256Sync
API'yi kullanmalıdır.
Örnek
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'});
Söz dizimi
sha256(input, onSuccess, options = undefined);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
input |
dize | Karma oluşturma işlemi uygulanacak dize. |
onSuccess |
işlev |
options nesnesi farklı bir çıkış kodlaması belirtmedikçe, base64 olarak kodlanmış olan sonuç özetiyle çağrılır.
|
options |
nesne |
Çıkış kodlamasını belirtmek için kullanılan İsteğe bağlı seçenekler nesnesi. Belirtilirse nesne, base64 veya hex değerine sahip outputEncoding anahtarını içermelidir.
|
İlişkilendirilmiş izinler
Yok.
sha256Sync
options
nesnesi farklı bir çıkış kodlaması belirtmedikçe girişin base64'te kodlanan SHA-256 özetini hesaplar ve döndürür.
Örnek
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));
Söz dizimi
sha256Sync(input, options = undefined);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
input |
dize | Karma oluşturma işlemi uygulanacak dize. |
options |
nesne |
Çıkış kodlamasını belirtmek için kullanılan İsteğe bağlı seçenekler nesnesi. Belirtilirse nesne, base64 veya hex değerine sahip outputEncoding anahtarını içermelidir.
|
İlişkilendirilmiş izinler
Yok.
templateDataStorage
Şablon veri depolamasına erişim yöntemleri içeren bir nesneyi döndürür. Şablon veri depolaması, verilerin tek bir şablon yürütmelerinde paylaşılmasını sağlar. Şablon veri depolama alanında depolanan veriler, container'ı çalıştıran sunucuda kalır. Çoğu durumda container'ı çalıştıran birden fazla sunucu olur. Bu nedenle, verileri şablon veri depolama alanında depolamak, sonraki her isteğin verilere erişeceğini garanti etmez.
"templateDataStorage" adındaki "veriler", bu API kullanılarak yalnızca sade, işlev dışı veri türlerinin depolanabileceğini ifade eder. API'ye iletilen işlevler veya işlevlere verilen referanslar, bunun yerine null
olarak depolanır.
Söz dizimi
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();
Örnek
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);
});
İlişkilendirilmiş izinler
testRegex
Bir dizeyi, createRegex
API'si aracılığıyla oluşturulan bir normal ifade ile karşılaştırarak test eder. Normal ifade eşleşirse true
değerini döndürür. Aksi takdirde false
değerini döndürür.
Global flag ile oluşturulan normal ifade durum bilgilidir. Ayrıntılar için RegExp belgelerine bakın.
Örnek
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');
Söz dizimi
testRegex(regex, string);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
regex |
Nesne | createRegex API'den döndürülen ve test edilecek normal ifade. |
string |
dize | Test edilecek test dizesi. |
İlişkilendirilmiş izinler
Yok.
toBase64
Bir dizeyi base64 veya base64url olarak kodlar. Varsayılan olarak base64 kodlaması kullanılır.
Söz dizimi
toBase64(input, options);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
input |
dize | Kodlanacak dize. |
options
|
nesne | İsteğe bağlı API yapılandırması. (Aşağıdaki Seçenekleri inceleyin.) |
Seçenekler
Option | Tür | Açıklama | Minimum sürüm |
---|---|---|---|
urlEncoding
|
boolean | Doğru değerine ayarlanırsa sonuç, base64url biçimi kullanılarak kodlanır. |
1.0.0 |
Örnek
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
İlişkilendirilmiş izinler
Yok.
BigQuery
BigQuery işlevleri sağlayan bir nesneyi döndürür.
BigQuery.insert
işlevi, BigQuery tablosuna veri yazmaya olanak tanır. Başarılı bir ekleme sonrasında çözümlenen veya bir hata olduğunda reddedilen bir taahhüt döndürür.
Ekleme başarılı olduğunda, taahhüt bağımsız değişken olmadan çözümlenir.
Ekleme başarısız olduğunda taahhüt, hata nedenini içeren nesnelerin bir listesiyle ve bir hata oluşursa muhtemelen satır nesnesiyle reddedilir. İsteğin bir bölümünün başarıyla tamamlanması, diğer kısımlarının ise tamamlanmaması mümkündür. Bu durumda, hangi satırların eklendiğinin ayırt edilmesine yardımcı olmak için satır nesnesi içeren her satır için bir hata listesi eklenerek sözler reddedilir (Aşağıdaki Hata Örneklerine bakın). Daha fazla bilgi için hata mesajları ile ilgili BigQuery belgelerine bakın.
Söz dizimi
BigQuery.insert(connectionInfo, rows[, options]);
Parametre | Tür | Açıklama |
---|---|---|
connectionInfo |
nesne |
BigQuery tablosuna bağlanmak için gereken bilgileri tanımlar. İsteğe bağlı bir parametre ve iki zorunlu parametre vardır:
|
rows |
Dizi | Tabloya eklenecek satırlar. |
options |
nesne | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: ignoreUnknownValues ve skip InvalidRows. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümünü inceleyin.) |
Parametre | Tür | Açıklama |
---|---|---|
ignoreUnknownValues |
boolean | true olarak ayarlanırsa şemayla eşleşmeyen değerler içeren satırları kabul edin. Bilinmeyen değerler yoksayılır. Varsayılan olarak false değerine ayarlanır. |
skipInvalidRows |
boolean | true olarak ayarlanırsa geçersiz satırlar olsa bile isteğin tüm geçerli satırlarını ekleyin. Varsayılan olarak false değerine ayarlanır. |
Modül bulunamadı hatası, sunucu kapsayıcınızın muhtemelen henüz BigQuery modülünü içermeyen, görüntümüzün eski bir sürümünü çalıştırdığı anlamına gelir. Lütfen dağıtım komut dosyamızı kullanarak sunucu kapsayıcınızı aynı ayarlarla yeniden dağıtın. İşlem tamamlandığında modül otomatik olarak dahil edilir.
Ekleme dışı bir hata genellikle reason
anahtarına sahip bir hata nesnesi içerir:
[{reason: 'invalid'}]
Ekleme hatası, errors
dizisi ve row
nesnesine sahip birden fazla hata nesnesi içerebilir. Aşağıda, yalnızca bir satırda hata bulunan iki satır eklenmesinden kaynaklanan hata yanıtı örneği verilmiştir:
[
{
"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
}
}
]
Örnek
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);
İlişkilendirilmiş izinler
Firestore
Firestore işlevleri sağlayan bir nesneyi döndürür.
Bu API yalnızca Yerel modda Firestore'u destekler, Datastore modunda Firestore'u desteklemez. Ayrıca, API yalnızca varsayılan veritabanının kullanılmasını destekler.
Firestore.read
Firestore.read
işlevi, bir Firestore belgesindeki verileri okur ve iki anahtar içeren bir nesneye dönüşen bir sözleşme döndürür: id
ve data
. Belge mevcut değilse taahhüt, not_found
öğesine eşit bir reason
anahtarı içeren nesneyle reddedilir.
Söz dizimi
Firestore.read(path[, options]);
Parametre | Tür | Açıklama |
---|---|---|
path |
dize | Doküman veya koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir. |
options |
nesne | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: projectId, disableCache ve transaction. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümünü inceleyin.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | Optional. Google Cloud Platform proje kimliği. Atlanırsa projectId , proje kimliğinin access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT zaten Google Cloud projesinin kimliğine ayarlanır. |
disableCache |
boolean | Optional. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma varsayılan olarak etkindir. Bu sayede, istek süresince sonuçlar önbelleğe alınır. |
transaction |
dize | Optional. Firestore.runTransaction() üzerinden alınan değer. Bir işlemde kullanılacak işlemi işaretler. |
Örnek
const Firestore = require('Firestore');
return Firestore.read('collection/document', {
projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);
Firestore.write
Firestore.write
işlevi, bir Firestore belgesine veya koleksiyonuna veri yazar. Yol bir koleksiyona giderse belge, rastgele oluşturulan bir kimlikle oluşturulur. Yol bir dokümana aitse ve dosya mevcut değilse doküman oluşturulur. Bu API, eklenen veya değiştirilen belgenin kimliğine çözümlenen bir taahhüt döndürür. İşlem seçeneği kullanılırsa API yine de bir taahhüt döndürür ancak yazmalar toplu olarak işlendiği için kimliği içermez.
Söz dizimi
Firestore.write(path, input[, options]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
path |
dize | Doküman veya koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir. |
input |
nesne | Dokümana yazılacak değer. Birleştirme seçeneği ayarlanırsa API, girişteki anahtarları dokümanla birleştirir. |
options |
nesne | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: projectId, merge ve transaction. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümünü inceleyin.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | Optional. Google Cloud Platform proje kimliği. Atlanırsa projectId , proje kimliğinin access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT zaten Google Cloud projesinin kimliğine ayarlanır. |
merge |
boolean | Optional. true olarak ayarlanırsa girişteki tuşları dokümanla birleştirin. Aksi takdirde bu yöntem, dokümanın tamamını geçersiz kılar. Varsayılan olarak false değerine ayarlanır. |
transaction |
dize | Optional. Firestore.runTransaction() üzerinden alınan değer. Bir işlemde kullanılacak işlemi işaretler. |
Örnek
const Firestore = require('Firestore');
const input = {key1: 'value1', key2: 12345};
Firestore.write('collection/document', input, {
projectId: 'gcp-cloud-project-id',
merge: true,
}).then((id) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
Firestore.query
Firestore.query
işlevi, verilen koleksiyonu sorgular ve sorgu koşullarıyla eşleşen bir Firestore belgeleri dizisine dönüşen bir söz döndürür. Firestore belge nesnesi, yukarıdaki Firestore.read
bölümünde listelenenle aynıdır. Sorgu koşullarıyla eşleşen belge yoksa döndürülen taahhüt boş bir diziye çözümlenir.
Söz dizimi
Firestore.query(collection, queryConditions[, options]);
Parametre | Tür | Açıklama |
---|---|---|
collection |
dize | Koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir. |
queryConditions |
Dizi | Sorgu koşulları dizisi. Her sorgu üç değere sahip bir dizi biçiminde gelir: key, operator ve expectedValue. E.g.:
[[‘id’, ‘<’, ‘5’], [‘eyalet’, ‘==’, ‘CA’]]. Sorgu sonucunu oluşturmak için koşullar VE mantığıyla birleştirilir. Uyumlu sorgu operatörlerinin listesi için lütfen Firestore'un sorgu operatörlerine bakın. |
options |
nesne | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: projectId, disableCache, limit ve transaction. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümünü inceleyin.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | Optional. Google Cloud Platform proje kimliği. Atlanırsa projectId , proje kimliğinin access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT zaten Google Cloud projesinin kimliğine ayarlanır. |
disableCache |
boolean | Optional. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma varsayılan olarak etkindir. Bu sayede, istek süresince sonuçlar önbelleğe alınır. |
limit |
sayı | Optional. Sorgu tarafından döndürülen maksimum sonuç sayısını değiştirir. Varsayılan olarak 5 olur. |
transaction |
dize | Optional. Firestore.runTransaction() üzerinden alınan değer. Bir işlemde kullanılacak işlemi işaretler. |
Örnek
const Firestore = require('Firestore');
const queries = const queries = [['id', '==', '5']];
return Firestore.query('collection', queries, {
projectId: 'gcp-cloud-project-id',
limit: 1,
}).then((documents) => documents[0].data.key, () => undefined);
Firestore.runTransaction
Firestore.runTransaction
işlevi, kullanıcının Firestore'dan otomatik olarak okuma ve yazmasına olanak tanır. Eşzamanlı yazma veya başka bir işlem çakışması olursa işlem en fazla iki kez yeniden denenir. Toplam üç denemeden sonra başarısız olursa API bir hatayla reddeder. Bu API, işlem başarılı olursa her yazma işlemi için bir belge kimliği dizisine çözümlenen bir taahhüt döndürür ve başarısız olursa hatayla reddeder.
Söz dizimi
Firestore.runTransaction(callback[, options]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
callback |
işlev | Dize işlem kimliğiyle çağrılan bir geri çağırma. İşlem kimliği, okuma/yazma/sorgu API çağrılarına iletilebilir. Bu geri çağırma işlevi bir taahhüt döndürmelidir. Geri çağırma, başarısız olmadan önce en fazla üç kez çalıştırılabilir. |
options |
nesne | İsteğe bağlı istek seçenekleri. Desteklenen tek seçenek projectId'dir. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümünü inceleyin.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | Optional. Google Cloud Platform proje kimliği. Atlanırsa projectId , proje kimliğinin access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT zaten Google Cloud projesinin kimliğine ayarlanır. |
Örnek
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);
Her bir Firestore işlevinde bulunan hatalar, reason
anahtarı içeren bir nesneyle reddedilir:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
Hata nedenleri, Firestore REST API Hata Kodlarını içerebilir ancak bunlarla sınırlı değildir.
İlişkilendirilmiş izinler
JSON
JSON işlevleri sağlayan bir nesne döndürür.
parse()
işlevi, dizede açıklanan değeri veya nesneyi oluşturmak için bir JSON dizesini ayrıştırır. Değer ayrıştırılamazsa (ör. bozuk JSON) işlev, undefined
değerini döndürür. Girdi değeri dize değilse giriş, dizeye dönüştürülür.
stringify()
işlevi, girişi bir JSON dizesine dönüştürür. Değer ayrıştırılamazsa (ör. nesnenin bir döngüsü varsa) yöntem undefined
değerini döndürür.
Örnek
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'});
Söz dizimi
JSON.parse(stringInput);
JSON.stringify(value);
İlişkilendirilmiş izinler
Yok.
Math
Math
işlevleri sağlayan bir nesne.
Söz dizimi
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);
Parametreler
Matematiksel fonksiyon parametreleri sayılara dönüştürülür.
İlişkilendirilmiş izinler
Yok.
Messages
Aşağıdaki API'ler, mesajların bir container'ın farklı bölümleri arasında iletilmesini sağlamak için birlikte çalışır.
addMessageListener
Belirli türdeki mesajları dinleyen bir işlev ekler. sendMessage
API (genellikle bir etiket tarafından) kullanılarak bu türde bir mesaj gönderildiğinde, geri çağırma eşzamanlı olarak çalıştırılır. Geri çağırma iki parametreyle çalıştırılır:
messageType:string
message:Object
Geri çağırma bir istemciye eklenirse geri çağırma, istemcinin oluşturduğu tüm etkinliklerde mesajları alır. Geri çağırmanın yalnızca belirli bir etkinlikten mesaj alması gerekiyorsa runContainer
API'sinin onStart
işlevinde bindToEvent
kullanarak bu API'yi etkinliğe bağlayın. Örneği inceleyin.
Söz dizimi
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
messageType |
dize | Dinlenecek mesaj türü. Değer bir dize değilse dizeye dönüştürülür. |
callback |
işlev | Geçerli mesaj türünde bir mesaj gönderildiğinde çalıştırılacak geri çağırma. Geri çağırma bir işlev değilse API'nin herhangi bir işlem yapması gerekmez. |
Örnek
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.
});
}
});
});
İlişkilendirilmiş izinler
use_message
izni gerektirir. Bu izin, en az aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
Usage
/listen
veyalisten_and_send
içeren mesaj türü.
hasMessageListener
Belirtilen mesaj türü için bir mesaj işleyici eklenmişse true değerini döndürür. Aksi takdirde false (yanlış) değerini döndürür.
Söz dizimi
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
İlişkilendirilmiş izinler
Yok.
sendMessage
Kayıtlı bir dinleyiciye belirtilen türde bir mesaj gönderir. Bu özellik, bir etiketteki mesajları kapsayıcıyı çalıştıran istemciye geri göndermek için kullanılabilir.
Söz dizimi
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
messageType |
dize | Gönderilecek mesajın türü. Değer bir dize değilse dizeye dönüştürülür. |
message |
nesne | Gönderilecek mesaj. Mesaj bir nesne değilse API'nin herhangi bir işlem yapması gerekmez. |
İlişkilendirilmiş izinler
use_message
izni gerektirir. Bu izin, en az aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
Usage
/listen_and_send
veyasend
içeren mesaj türü.
Object
Object
yöntemleri sağlayan bir nesneyi döndürür.
keys()
yöntemi, Standart Kitaplık Object.keys() davranışını sağlar. Belirli bir nesnenin kendi numaralanabilir özellik adlarından oluşan bir diziyi, for...in...
döngüsüyle aynı sırayla döndürür. Girdi değeri nesne değilse nesne olmaya zorlanır.
values()
yöntemi, Standart Kitaplık Object.values() davranışını sağlar. Belirli bir nesnenin kendi numaralanabilir özellik değerleri dizisini, for...in...
döngüsüyle aynı sırayla döndürür. Girdi değeri nesne değilse
nesne olmaya zorlanır.
entries()
yöntemi, Standart Kitaplık Object.entries() davranışını sağlar. Belirli bir nesnenin kendi numaralandırılabilir özellik [key, value]
çiftlerinin bir dizisini, for...in...
döngüsüyle aynı sırayla döndürür. Girdi değeri nesne değilse nesneye dönüştürülür.
freeze()
yöntemi, Standart Kitaplık Object.freeze() davranışını sağlar. Dondurulan bir nesne artık değiştirilemez. Bir nesnenin dondurulması, nesneye yeni özelliklerin eklenmesini, mevcut özelliklerin kaldırılmasını ve mevcut özelliklerin değerlerinin değiştirilmesini engeller. freeze()
, geçirilen aynı nesneyi döndürür. Temel veya null bağımsız değişkenler, donmuş bir nesneymiş gibi değerlendirilir ve döndürülür.
delete()
yöntemi, Standart Kitaplık silme operatörü davranışını sağlar. Nesne donmadığı sürece belirtilen anahtarı nesneden kaldırır.
Standart Kitaplık silme operatörü gibi, ilk giriş değeri (objectInput
), ikinci giriş değeri (keyToDelete
) var olmayan bir anahtarı belirtse bile dondurulmamış bir nesneyse true
değerini döndürür. Diğer tüm durumlarda false
değerini döndürür. Ancak bu, aşağıdaki yönleriyle Standart Kitaplık silme operatöründen farklıdır:
keyToDelete
, iç içe yerleştirilmiş bir anahtar belirten ve noktayla ayrılmış bir dize olamaz.delete()
, bir diziden öğe kaldırmak için kullanılamaz.delete()
, herhangi bir mülkü global kapsamdan kaldırmak için kullanılamaz.
Söz dizimi
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
Parametreler
Object.keys
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi biri | Anahtarlarının numaralandırılacağı nesne. Giriş nesne değilse nesne olmaya zorlanır. |
Object.values
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi biri | Değerleri numaralandırılacak nesne. Giriş nesne değilse nesne olmaya zorlanır. |
Object.entries
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi biri | Anahtar/değer çiftleri numaralandırılacak nesne. Giriş nesne değilse nesne olmaya zorlanır. |
Object.freeze
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi biri | Dondurulacak nesne. Giriş nesne değilse donmuş bir nesne olarak değerlendirilir. |
Object.delete
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi biri | Anahtarı silinecek nesne. |
keyToDelete | dize | Silinecek üst düzey anahtar. |
Örnek
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
Vaatlerle etkileşim için yöntemler sağlayan bir nesneyi döndürür.
Vaatler, işlevsel olarak JavaScript'in vaatlerine eşdeğerdir. Her örnekte bir Vaat döndüren ve bir vaat yerine getirildiğinde daha fazla işlem yapılmasına olanak tanıyan üç yöntemi vardır:
.then()
- Hem çözülmüş hem de reddedilen destek kayıtlarını ele alır. Parametre olarak biri başarılı, diğeri başarısız durum için olmak üzere iki geri çağırma kullanılır..catch()
- Yalnızca reddedilen destek kayıtlarıyla ilgilenir. Parametre olarak bir geri çağırma alır..finally()
- Taahhüdünüz gerçekleşmiş veya reddedilmiş olsa bile kodun çalıştırılması için bir yöntem sunar. Bağımsız değişken olmadan çağrılan bir parametre olarak bir geri çağırma alır.
Bir vaat döndüren değişken, taahhüdün çözümlenen değerine veya vaatin reddedilmesi durumunda false
değerine eşittir.
Örnek
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
Aşağıdakilerden birini içeren bir vaat döndürür:
- tüm girişler çözümlendiğinde çözümlenir veya
- girişlerden herhangi biri reddedildiğinde reddeder
Söz dizimi
Promise.all(inputs);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
inputs |
Dizi | Değerler veya vaatler dizisi. Girdi bir vaat değilse girdi, bir sözün çözümlenmiş değeriymiş gibi iletilir. Giriş bir dizi değilse hata verir. |
Örnek
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: ''}]
});
İlişkilendirilmiş izinler
Yok.
Promise.create
İşlevsel olarak bir JavaScript vaadi ile eşdeğer bir vaat oluşturur.
Söz dizimi
Promise.create(resolver);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
resolver |
işlev | İki işlevle çağrılan bir işlev: çözümleme ve reddetme. Karşılık gelen parametre çağrıldığında, döndürülen taahhüt çözümlenir veya reddedilir. Çözümleyici bir işlev değilse hata verir. |
Örnek
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
İlişkilendirilmiş izinler
Yok.
API'leri test et
Bu API'ler, Google Etiket Yöneticisi'ndeki özel şablonlar için testler oluşturmak üzere korumalı alana alınmış JavaScript testleriyle çalışır. Bu test API'leri için require()
ifadesi gerekmez. [Özel şablon testleri hakkında daha fazla bilgi edinin].
assertApi
Belirtilen API hakkında akıcı bir şekilde onay vermek için kullanılabilecek bir eşleştirici nesnesi döndürür.
Söz dizimi
assertApi(apiName)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
apiName |
dize | Kontrol edilecek API'nin adı; require() öğesine iletilen dizeyle aynı.
|
Eşleştiriciler
Subject.wasCalled()
Subject.wasNotCalled()
Subject.wasCalledWith(...expected)
Subject.wasNotCalledWith(...expected)
Örnekler
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
assertThat
API, Google'ın [Truth] kitaplığına göre modellenmiştir. Bir öznenin değeri hakkında akıcı bir şekilde iddiada bulunmak için kullanılabilecek bir nesne döndürür. Onaylama hatası, testi anında durdurur ve başarısız olarak işaretler. Ancak bir testteki başarısızlık diğer test durumlarını etkilemez.
Söz dizimi
assertThat(actual, opt_message)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
actual |
herhangi biri | Akıcı kontrollerde kullanılacak değer. |
opt_message |
dize | Onaylama başarısız olursa yazdırılacak isteğe bağlı mesaj. |
Eşleştiriciler
Eşleştirici | Açıklama |
---|---|
isUndefined() |
Konunun undefined olduğunu iddia eder. |
isDefined() |
Konunun undefined olmadığını iddia eder. |
isNull() |
Konunun null olduğunu iddia eder. |
isNotNull() |
Konunun null olmadığını iddia eder. |
isFalse() |
Konunun false olduğunu iddia eder. |
isTrue() |
Konunun true olduğunu iddia eder. |
isFalsy() |
Konunun yanlış olduğunu iddia eder. Hatalı değerler şunlardır:
undefined , null , false ,
NaN , 0 ve "" (boş dize). |
isTruthy() |
Konunun doğru olduğunu iddia ediyor. Hatalı değerler şunlardır:
undefined , null , false ,
NaN , 0 ve "" (boş dize). |
isNaN() |
Öznenin NaN değeri olduğunu iddia eder. |
isNotNaN() |
Öznenin, NaN dışında herhangi bir değer olduğunu iddia eder. |
isInfinity() |
Öznenin pozitif veya negatif Sonsuzluk olduğunu iddia eder. |
isNotInfinity() |
Konunun, pozitif veya negatif Sonsuzluk dışında herhangi bir değer olduğunu iddia eder. |
isEqualTo(expected) |
Öznenin verilen değere eşit olduğunu iddia eder. Bu bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isNotEqualTo(expected) |
Öznenin verilen değere eşit olmadığını iddia eder. Bu bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isAnyOf(...expected) |
Öznenin, verilen değerlerden birine eşit olduğunu iddia eder. Bu bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isNoneOf(...expected) |
Konunun, verilen değerlerin herhangi birine eşit olmadığını iddia eder. Bu bir referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isStrictlyEqualTo(expected) |
Öznenin, verilen değere kesinlikle eşit (=== ) olduğunu iddia eder. |
isNotStrictlyEqualTo(expected) |
Öznenin, verilen değere tam olarak eşit olmadığını (!== ) iddia eder. |
isGreaterThan(expected) |
Konunun, sıralı karşılaştırmada belirtilen değerden (> ) büyük olduğunu iddia eder. |
isGreaterThanOrEqualTo(expected) |
Konunun, sıralı karşılaştırmadaki belirtilen değerden (>= ) büyük veya bu değere eşit olduğunu iddia eder. |
isLessThan(expected) |
Konunun, sıralı karşılaştırmada belirtilen değerden (< ) küçük olduğunu iddia eder. |
isLessThanOrEqualTo(expected) |
Konunun, sıralı karşılaştırmadaki belirtilen değerden (<= ) küçük veya bu değere eşit olduğunu iddia eder. |
contains(...expected) |
Konunun, verilen değerlerin tümünü herhangi bir sırada içeren bir dizi veya dize olduğunu iddia eder. Bu bir referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
doesNotContain(...expected) |
Konunun, belirtilen değerlerin hiçbirini içermeyen bir dizi veya dize olduğunu iddia eder. Bu bir referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
containsExactly(...expected) |
Konunun, belirtilen tüm değerleri herhangi bir sırada ve başka hiçbir değeri içermeyen bir dizi olduğunu iddia eder. Bu bir referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
doesNotContainExactly(...expected) |
Konunun, belirtilen değerlerden herhangi bir sırada farklı bir değer grubu içeren bir dizi olduğunu iddia eder. Bu bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
hasLength(expected) |
Konunun belirtilen uzunlukta bir dizi veya dize olduğunu iddia eder. Değer bir dizi veya dize değilse onay her zaman başarısız olur. |
isEmpty() |
Konunun boş bir dizi veya dize (uzunluk = 0) olduğunu iddia eder. Değer bir dizi veya dize değilse onay her zaman başarısız olur. |
isNotEmpty() |
Konunun boş olmayan bir dizi veya dize (uzunluk > 0) olduğunu iddia eder. Değer bir dizi veya dize değilse onay her zaman başarısız olur. |
isArray() |
Konu türünün bir dizi olduğunu iddia eder. |
isBoolean() |
Konu türünün boole olduğunu iddia eder. |
isFunction() |
Özne türünün bir fonksiyon olduğunu iddia eder. |
isNumber() |
Özne türünün bir sayı olduğunu iddia eder. |
isObject() |
Özne türünün bir nesne olduğunu iddia eder. |
isString() |
Konu türünün bir dize olduğunu iddia eder. |
Örnekler
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
Geçerli test hemen başarısız olur ve sağlanmışsa verilen iletiyi yazdırır.
Söz dizimi
fail(opt_message);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
opt_message |
dize | İsteğe bağlı hata mesajı metni. |
Örnek
fail('This test has failed.');
mock
mock
API, Korumalı Alana Sahip API'lerin davranışını geçersiz kılmanıza olanak tanır. Taklit API, şablon kodunda güvenle kullanılabilir. Ancak test modunda değilken çalışmaz. Her test çalıştırılmadan önce örnekler sıfırlanır.
Söz dizimi
mock(apiName, returnValue);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
apiName |
dize | Örneklendirilecek API'nin adı; require() öğesine iletilen dizenin aynısı |
returnValue |
herhangi biri | API veya API'nin yerine çağrılan bir işlev için döndürülecek değer. returnValue bir işlevse bu işlev, Korumalı Alana Sahip API yerine çağrılır. returnValue işlevden başka herhangi bir şeyse bu değer, Korumalı Alan API'sinin yerine döndürülür. |
Örnekler
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
runCode
Şablonun kodunu (ör. Kod sekmesinin içeriği), belirli bir giriş veri nesnesiyle geçerli test ortamında çalıştırır.
Söz dizimi
runCode(data)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
data |
nesne | Testte kullanılacak veri nesnesi. |
Döndürülen Değer
Değişken şablonları için bir değişkenin değerini ve diğer tüm şablon türleri için undefined
değerini döndürür.
Örnek
runCode({field1: 123, field2: 'value'});