Bu dokümanda, sunucu tarafı etiketlemeyle ilgili API'ler ana hatlarıyla açıklanmaktadır.
addEventCallback
Bir etkinliğin sonunda çağrılacak bir geri çağırma işlevi kaydeder. Geri çağırma işlevi, etkinliğe ait tüm etiketler yürütüldüğünde çağrılır. Geri çağırma işlevine iki değer iletilir: işlevi çağıran kapsayıcını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şlevi kullanılarak belirli bir etkinliğe bağlanmalıdır. Daha fazla ayrıntı 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 |
function | 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 veri nesneleri dizisi. Etkinlik sırasında tetiklenen her etiketin bu dizgede bir girişi olur. Etiket verileri nesnesi, etiketin kimliğini (id ), yürütme durumunu (status ) ve yürütme zamanını (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();
}
});
});
Etiketlerde:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
İlişkili izinler
callLater
Bir işleve ait çağrının eşzamansız olarak gerçekleşmesini planlar. İşlev, mevcut kod döndürüldükten sonra çağrılır. Bu, setTimeout(<function>, 0)
değerine 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 |
function | Çağırılacak işlev. |
İlişkili izinler
Yok.
claimRequest
İsteği almak için istemcide bu API'yi kullanın. Bir istek için hak talebinde bulunulduğunda kapsayıcı ek istemci çalıştırmaz.
Bu API, bir etikette veya değişkende çağrılırsa istisna oluşturur. Bu API, istemci döndükten sonra çağrılırsa (ör. callLater
veya runContainer
onComplete
işlevinde olduğu gibi bir asynkron geri çağırma işlevinde çağrılırsa) bir istisna atar.
İstemci, runContainer
API'yi çağırmadan önce bu API'yi kullanarak istek için hak talebinde bulunmalıdır.
Örnek
const claimRequest = require('claimRequest');
claimRequest();
Söz dizimi
claimRequest();
İlişkili izinler
Yok.
computeEffectiveTldPlusOne
Belirtilen alan adının veya URL'nin etkili üst düzey alan adı + 1'i (eTLD+1) döndürür. eTLD+1, alan adı Genel Son Ek Listesi kurallarına göre değerlendirilerek hesaplanır. eTLD+1, genellikle çerez ayarlayabileceğiniz en üst düzey alan adıdır.
Bağımsız değişken null veya tanımlanmamışsa 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 zorlanacaktır. Parametre geçerli bir alan veya URL değilse boş bir dize döndürülür. Sunucu, herkese açık son ek 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 veya URL. |
İlişkili izinler
Yok.
createRegex
Yeni bir normal ifade örneği oluşturur ve bunu bir nesneye sarmalayarak döndürür. Normal ifadeye doğrudan erişemezsiniz. Ancak bu bilgileri testRegex
API'ye, String.replace()
, String.match()
ve String.search()
'a iletebilirsiniz.
Normal ifade geçersizse veya Re2 sunucu üzerinde kullanılamıyorsa null
döndürür.
Bu API, Re2 uygulaması kullanır. Sunucu Docker resmi 2.0.0 veya sonraki bir sürümde 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 ifadenin işaretlerini içeren isteğe bağlı bir dize. "g" (genel) ve "i" (büyük/küçük harfe duyarlı değil) desteklenir. Diğer tüm karakterler sessizce yoksayılır. |
İlişkili izinler
Yok.
Minimum resim sürümü
decodeUri
Sağlanan URI'deki kodlanmış karakterlerin kodunu çözer. Kodu çözülmüş URI'yi temsil eden bir dize döndürür. Geçersiz giriş sağlandığında undefined
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 yöntemlerle kodlanmış bir URI.
|
İlişkili 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
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 yöntemlerle kodlanmış bir URI bileşeni.
|
İlişkili izinler
Yok.
encodeUri
Özel karakterlerden kaçarak kodlanmış bir Tekdüzen Kaynak Tanımlayıcısı (URI) döndürür. Sağlanan dizeyi URI olarak kodlanmış şekilde 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şkili izinler
Yok.
encodeUriComponent
Özel karakterlerden kaçarak kodlanmış bir Tekdüzen Kaynak Tanımlayıcısı (URI) döndürür. Sağlanan dizeyi URI olarak kodlanmış şekilde 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 bileşeni. |
İlişkili izinler
Yok.
extractEventsFromMpv1
Gelen bir Measurement Protocol V1 isteğini Unified Schema biçiminde bir 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şkili izinler
read_request
izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
body
query parameters
extractEventsFromMpv2
Gelen bir Measurement Protocol V2 isteğini Unified Schema biçiminde bir 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şkili izinler
read_request
izni gerekir. İzin, 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 kodlu dize. |
Örnek
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
İlişkili izinler
Yok.
generateRandom
Belirtilen aralıktaki 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 |
number | Döndürülen tam sayının minimum olası değeri (dahil). |
max |
number | Döndürülen tam sayının maksimum potansiyel değeri (dahil). |
İlişkili izinler
Yok.
getAllEventData
Etkinlik verilerinin bir kopyasını döndürür.
Söz dizimi
getAllEventData();
İlişkili izinler
getClientName
Geçerli istemcinin adını içeren bir dize döndürür.
Söz dizimi
getClientName();
İlişkili izinler
getContainerVersion
Geçerli kapsayıcıyla ilgili verileri içeren bir nesne döndürür. Döndürülen nesnede aşağıdaki alanlar bulunur:
{
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şkili izinler
getCookieValues
Belirtilen ada sahip tüm çerezlerin değerlerini içeren bir dizi 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 |
boole |
true ise çerez değerleri döndürülmeden önce kodları çözülmez. Varsayılan olarak false değerine ayarlanır.
|
İlişkili izinler
getEventData
Etkinlik verilerinde belirtilen yoldaki değerin bir kopyasını döndürür. Etkinlik verisi yoksa veya belirtilen yolda 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 bir |
Yol bileşenlerinin noktalarla ayrıldığı anahtar yolu. Yol bileşenleri, nesnelere ait anahtarlar veya dizilerdeki dizinler olabilir. keyPath bir dize değilse dize biçimine dönüştürülür.
|
Söz dizimi
getEventData(keyPath);
İlişkili izinler
getGoogleAuth
sendHttpGet
veya sendHttpRequest
ile birlikte kullanıldığında Google Cloud API'leri için bir yetkilendirme üstbilgisi içeren bir yetkilendirme nesnesi döndürür. Bu API, sunucu ortamındaki kimlik bilgilerini otomatik olarak bulmak için Uygulama Varsayılan Kimlik Bilgileri'ni 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 isteğinde bulunulacak OAuth 2.0 Google API kapsamları dizisi. |
İlişkili izinler
use_google_credentials
izni gerekir. İzin, izin verilen bir veya daha fazla kapsamla yapılandırılmalıdır.
getGoogleScript
Önceden belirlenmiş bir Google komut dosyası grubundan bir kaynak alır ve komut dosyasını ve ilişkili önbelleğe alma meta verilerini içeren bir promise döndürür.
Sözleşme, script
ve metadata
olmak üzere iki anahtar içeren bir nesneye çözülür. İstek başarısız olursa söz, reason
anahtarıyla reddedilir.
metadata
nesnesi, kaynak yanıt üst bilgilerine göre aşağıdaki önbelleğe alma meta verilerini içerir. Her alan yalnızca kaynak yanıtında ilgili üstbilgi varsa 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ı. Desteklenen komut dosyaları şunlardır:
'ANALYTICS' , 'GTAG' ve
'GTM' .'ANALYTICS' seçeneği, Google Analytics komut dosyasını https://www.google-analytics.com/analytics.js adresinden alır.'GTAG' seçeneği, global site etiketi (gtag.js) komut dosyasını https://www.googletagmanager.com/gtag/js adresinden getirir.'GTM' seçeneği, Google Etiket Yöneticisi komut dosyasını https://www.googletagmanager.com/gtm.js adresinden alır.
|
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekleri aşağıda bulabilirsiniz. |
Seçenekler
Option | Tür | Açıklama |
---|---|---|
id |
dize |
gtag ölçüm kimliğiyle 'GTAG' ve web kapsayıcı kimliğiyle 'GTM' için geçerlidir (ör. GTM-XXXX).
|
debug |
herhangi bir | Doğru ise ölçüm komut dosyasının hata ayıklama sürümünü ister ve döndürür. |
timeout |
number |
İsteğin milisaniye cinsinden zaman aşımı. Pozitif olmayan değerler yok sayılır. İstek zaman aşımına uğrarsa geri çağırma işlevi, komut dosyası değeri için undefined ve meta veri nesnesi için {} ile çağrılır.
|
Tanınmayan seçenek anahtarları yoksayılır.
İlişkili izinler
send_http
izni gerekir. İzin, en az aşağıdakilere erişime izin verecek şekilde yapılandırılmalıdır:
- Google alan adlarına izin ver
getRemoteAddress
Forwarded ve X-Forwarded-For gibi istek başlıklarını okuyarak isteğin kaynağı olan IP adresinin dize temsilini döndürür (ör. IPv4 için 12.345.67.890
veya IPv6 için 2001:0db8:85a3:0:0:8a2e:0370:7334
).
Not: Bu API, kaynak IP'yi bulmak için elinden geleni yapar ancak sonucun doğruluğunu garanti edemez.
Söz dizimi
getRemoteAddress();
İlişkili izinler
read_request
izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
Forwarded
veX-Forwarded-For
başlıkları- Uzak IP Adresi
getRequestBody
Varsa istek gövdesini dize olarak, aksi takdirde undefined
olarak döndürür.
Söz dizimi
getRequestBody();
İlişkili izinler
getRequestHeader
Varsa adlandırılmış istek üstbilgisinin değerini dize olarak, aksi takdirde undefined
değerini döndürür. Başlık 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 | Üstbilgi adı. Bu değer büyük/küçük harfe duyarlı değildir. |
İlişkili izinler
getRequestMethod
İstek yöntemini (ör. 'GET'
veya 'POST'
) dize olarak döndürür.
Örnek
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
Söz dizimi
getRequestMethod();
İlişkili izinler
Yok.
getRequestPath
Sorgu dizesi olmadan istek yolunu döndürür. Örneğin, URL '/foo?id=123'
ise '/foo'
döndürülür. Sunucu kapsayıcı URL ön ekini yoldan otomatik olarak kaldırır. Örneğin, sunucu kapsayıcısı URL'si https://example.com/analytics
ve istek yolu '/analytics/foo'
ise bu işlev '/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şkili 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 parametresi adı. |
İlişkili izinler
getRequestQueryParameters
Gelen HTTP isteğinin sorgu parametrelerini, sorgu parametresi adlarını ilgili değer veya değerlerle eşleyen bir nesne olarak döndürür. Parametre adları 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şkili izinler
getRequestQueryString
İstek sorgusunu, soru işareti olmadan dize olarak döndürür veya istek URL'sinde sorgu dizesi yoksa boş dize döndürür.
Örnek
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
Söz dizimi
getRequestQueryString();
İlişkili izinler
getTimestamp
Kullanımdan kaldırıldı. getTimestampMillis işlevini tercih edin.
Date.now()
tarafından döndürüldüğü gibi, Unix sıfır noktasından itibaren milisaniye cinsinden geçerli zamanı temsil eden bir sayı döndürür.
Söz dizimi
getTimestamp();
İlişkili izinler
Yok.
getTimestampMillis
Date.now()
tarafından döndürüldüğü gibi, Unix sıfır noktasından itibaren milisaniye cinsinden geçerli zamanı temsil eden bir sayı döndürür.
Söz dizimi
getTimestampMillis();
İlişkili 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' |
number | 'number' |
boole | 'boolean' |
null | 'null' |
undefined | '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 bir | Giriş değeri. |
İlişkili izinler
Yok.
hmacSha256
SHA-256 ile Karma Tabanlı Mesaj Doğrulama Kodu (HMAC) kullanılarak kodlanmış bir imza hesaplar. Varsayılan olarak base64url
kodlamasına ayarlanır.
Bu API'yi kullanmak için sunucudaki SGTM_CREDENTIALS
ortam değişkenini, aşağıdaki biçime sahip UTF-8 kodlu bir JSON anahtar dosyasının yoluna ayarlayın:
{
"keys": {
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
}
Değerler, base64 kodlu HMAC anahtarlardır. JSON metni, bayt sırası işaretçisiyle başlamamalı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 hesaplamak için kullanılacak veriler. |
keyId
|
dize | JSON anahtar dosyasında, kullanılacak anahtarı belirten bir anahtar kimliği. |
options
|
object | İsteğe bağlı API yapılandırması. (Aşağıdaki Seçenekler bölümüne bakın.) |
Seçenekler
Option | Tür | Açıklama |
---|---|---|
outputEncoding
|
dize | Döndürülen değerin kodlama biçimini belirtir. Desteklenen biçimler hex , base64 veya base64url 'dir. Belirtilmezse varsayılan olarak base64url olur. |
İlişkili izinler
Minimum resim sürümü
isRequestMpv1
Gelen istek bir Measurement Protocol V1 isteğiyse true
, 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şkili izinler
Yok.
isRequestMpv2
Gelen istek bir Measurement Protocol V2 isteğiyse true
, aksi takdirde false
döndürür.
Örnek
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
Söz dizimi
isRequestMpv2();
İlişkili 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'nde 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, bir veya daha fazla bağımsız değişken alır. Bu bağımsız değişkenlerin her biri gerekirse bir dizeye dönüştürülür ve konsola kaydedilir.
İlişkili izinler
makeInteger
Belirtilen değeri sayı (tam sayı) biçimine 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şkili izinler
Yok.
makeNumber
Belirtilen 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şkili 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şkili izinler
Yok.
makeTableMap
İki sütunlu basit bir tablo nesnesini Map
olarak dönüştürür. Bu, iki sütunlu bir SIMPLE_TABLE
şablon alanını daha yönetilebilir 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'}
]
Haritaya eklemek için:
{
'k1': 'v1',
'k2': 'v2'
}
Bir nesne döndürür: Anahtar/değer çiftlerinin dönüştürülmüş Map
değeri buna eklenir veya aksi takdirde null
döndürülür.
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 bir eşleme listesi Satır nesnesinde her özellik adı sütun adı, özellik değeri ise satırdaki sütun değeridir.
|
keyColumnName |
dize |
Değerleri dönüştürülen Map 'te anahtar olacak sütunun adı.
|
valueColumnName |
dize |
Değerleri, dönüştürülmüş Map 'teki değerler olacak sütunun adı.
|
İlişkili izinler
Yok.
parseUrl
URL
nesnesine benzer şekilde, belirli bir URL'nin tüm bileşenlerini içeren bir nesne döndürür.
Bu API, bozuk URL'ler için undefined
döndürür. Düzgün biçimlendirilmiş URL'lerde, URL dizesinde bulunmayan alanların değeri boş bir dize veya searchParams
durumunda boş bir nesne olur.
Döndürülen nesnede aşağıdaki alanlar bulunur:
{
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şkili izinler
Yok.
returnResponse
setCookie, setPixelResponse, setResponseBody, setResponseHeader ve setResponseStatus gibi yanıtı değiştiren API'leri kullanarak daha önce diğer şablonlar tarafından ayarlanan yanıtı temizler. Varsayılan olarak 200 HTTP durum kodu, boş gövde ve üstbilgi içermez.
Bu API'nin bir istemci şablonundan kullanılması önerilir.
Söz dizimi
returnResponse();
Örnek
runContainer
örneğine bakın.
İlişkili izinler
runContainer
Kapsayıcı mantığını (değişkenler, tetikleyiciler, etiketler) bir etkinlik kapsamında çalıştırır. Bu API, kapsayıcı çalıştırma sırasında çağrılırsa kapsayıcı tekrar çalıştırılır.
onComplete
ve onStart
geri çağırma işlevleri bindToEvent
adlı bir işlev alır. Etkinlik bağlamında API çalıştırmak için bindToEvent
öğesini kullanın.
Daha fazla bilgi için addEventCallback örneğine göz atı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 |
object | Etkinlik parametreleri. |
onComplete |
function | Tüm etiketler etkinleştirildikten sonra çağrılan bir geri çağırma işlevi. |
onStart |
function | Etiketler tetiklenmeye başlamadan hemen önce çağrılan bir geri çağırma işlevi. |
İlişkili izinler
sendEventToGoogleAnalytics
Google Analytics'e Ortak Etkinlik Verileri'ni kullanarak tek bir etkinlik gönderir ve location
anahtarına sahip bir nesneye çözümlenen veya reason
anahtarına sahip bir nesneyi reddeden bir promise döndürür. Hedef (Google Analytics 4), etkinlik verilerindeki ölçüm kimliğine dayanır.
location
alanı, varsa 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 |
object | Birleştirilmiş Şema biçiminde etkinlik. |
İlişkili izinler
send_http
izni gerekir. İzin, en az aşağıdakilere erişime izin verecek şekilde yapılandırılmalıdır:
- Google alan adlarına izin ver
sendHttpGet
Belirtilen URL'ye HTTP GET isteği gönderir ve istek tamamlandığında veya zaman aşımına uğradığında sonuçla çözülen bir promise döndürür.
Çözüme ulaştırılan sonuç, statusCode
, headers
ve body
olmak üzere üç anahtar içeren bir nesnedir. İstek başarısız olursa (ör. geçersiz URL, ana makineye rota yok, SSL müzakeresi başarısızlığı vb.) söz, {reason:
'failed'}
ile reddedilir. timeout
seçeneği ayarlandıysa ve istek zaman aşımına uğradıysa söz, şu mesajla 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
|
object | İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekler bölümüne bakın.) |
Seçenekler
Option | Tür | Açıklama |
---|---|---|
headers |
dize | Ek istek üst bilgileri. |
timeout
|
number | İsteğin iptal edilmesinden önceki zaman aşımı (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır. |
authorization
|
object | googleapis.com 'ye istek gönderirken yetkilendirme başlıklarını dahil etmek için getGoogleAuth çağrısından alınan isteğe bağlı yetkilendirme nesnesi. |
İlişkili izinler
sendHttpRequest
Belirtilen URL'ye HTTP isteği gönderir ve istek tamamlandığında veya zaman aşımına uğradığında yanıtla çözülen bir promise döndürür.
Çözüme ulaştırılan sonuç, statusCode
, headers
ve body
olmak üzere üç anahtar içeren bir nesnedir. İstek başarısız olursa (ör. geçersiz URL, ana makineye rota yok, SSL müzakeresi başarısızlığı vb.) söz, {reason:
'failed'}
ile reddedilir. timeout
seçeneği ayarlandıysa ve istek zaman aşımına uğradıysa söz, şu mesajla 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
|
object | İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekler bölümüne bakın.) |
body |
dize | İsteğe bağlı istek içeriği. |
Seçenekler
Option | Tür | Açıklama |
---|---|---|
headers |
dize | Ek istek üst bilgileri. |
method |
object | İstek yöntemi. Varsayılan olarak GET değerine ayarlanır. |
timeout
|
number | İsteğin iptal edilmesinden önceki zaman aşımı (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır. |
authorization
|
object | googleapis.com 'ye istek gönderirken yetkilendirme başlıklarını dahil etmek için getGoogleAuth çağrısından alınan isteğe bağlı yetkilendirme nesnesi. |
İlişkili izinler
sendPixelFromBrowser
Tarayıcıya, sağlanan URL'yi <img>
etiketi olarak yüklemesi için 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
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şkili izinler
setCookie
Belirtilen seçeneklere sahip bir çerez oluşturur veya siler.
Bir çerezi silmek için, çerezin oluşturulduğuyla aynı yol ve alan adında bir çerez ayarlamak ve bu çereze geçmişte olan bir expires değeri (ör. "Thu, 01 Jan 1970 00:00:00 GMT"
) atamak gerekir.
Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin ç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 |
object | İsteğe bağlı çerez özellikleri:domain, expires, fallbackDomain,httpOnly, max- age, path, secure vesameSite. (Aşağıdaki Seçenekler bölümüne bakın.) |
noEncode |
boole |
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:
Forwarded
başlığının eTLD+1 değeri (varsa).X-Forwarded-Host
başlığının eTLD+1 değeri (varsa).Host
başlığının eTLD+1'i.
expires: Çerezin maksimum kullanım ömrü. Bu, UTC biçimli bir dosya olmalıdır tarih dizesi, ör. "Cumartesi, 26 Ekim 1985 08:21:00 GMT". Hem
expires
hem demax-age
ayarlanırsamax-age
öncelikli olur.httpOnly:
true
ise JavaScript'in çereze erişmesini yasaklar.max-age: Çerezin geçerlilik süresinin sona ermesine kalan saniye sayısı. Sıfır veya negatif bir sayı, çerezin süresinin hemen dolmasına neden olur. Hem
expires
hem demax-age
ayarlanırsamax-age
öncelikli olur.path: İstenilen URL'de bulunması gereken bir yoldur. Aksi takdirde tarayıcı, çerez üst bilgisini göndermez.
secure:
true
olarak ayarlanırsa çerez yalnızca birhttps:
uç noktasından istek yapıldığında sunucuya gönderilir.sameSite: Bir çerezin kaynakta çapraz isteklerle gönderilmemesi gerektiğini belirtir.
'strict'
,'lax'
veya'none'
olmalıdır.
İlişkili izinler
setPixelResponse
Yanıt gövdesini 1x1 GIF olarak, İçerik Türü başlığını "image/gif" olarak, önbelleğe alma başlıklarını kullanıcı aracılarının yanıtı önbelleğe almayacağı şekilde ve yanıt durumunu 200 olarak ayarlar.
Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin çağrılması gerektiğini unutmayın.
Söz dizimi
setPixelResponse();
İlişkili izinler
access_response
izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
headers
- Aşağıdaki anahtarlara izin vermelidircontent-type
cache-control
expires
pragma
body
status
setResponseBody
Yanıt gövdesini bağımsız değişkene ayarlar.
Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin ç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' ). Desteklenen değerler şunlardır: 'ascii' ,
'utf8' , 'utf16le' , 'ucs2' ,
'base64' , 'latin1' , 'binary' ve 'hex' .
|
İlişkili izinler
access_response
izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:
body
setResponseHeader
Döndürülecek yanıtta bir başlık ayarlar. Bu ada sahip (büyük/küçük harf duyarlı değildir) bir başlık daha önce bu API tarafından ayarlanmışsa ikinci çağrı, önceki arayan tarafından ayarlanan değerin üzerine yazar veya değeri temizler.
Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin çağrılması gerektiğini unutmayın.
Söz dizimi
setResponseHeader(name, value);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
name |
dize | Üstbilgi adı. HTTP üstbilgi adları büyük/küçük harfe duyarlı olmadığından üstbilgi adı küçük harflerle yazılmalıdır. |
value |
dize undefined | Üstbilgi değeri. Null veya tanımlanmamışsa adlandırılmış üstbilgi, döndürülecek yanıttan silinir. |
İlişkili izinler
access_response
izni gerekir. İzin, 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 işlevinin çağrılması gerektiğini unutmayın.
Söz dizimi
setResponseStatus(statusCode);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
statusCode |
number | Döndürülecek HTTP durum kodu. |
İlişkili izinler
access_response
izni gerekir. İzin, 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 özeti base64 olarak kodlanmış bir geri çağırma işlevi ile ç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 kod 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 |
function |
options nesnesi farklı bir çıkış kodlaması belirtmediği sürece, elde edilen özet ile çağrılır. Bu özet, base64 ile kodlanmıştır.
|
options |
object |
Çıkış kodlamasını belirtmek için isteğe bağlı options nesnesi. Belirtilirse nesne, base64 veya hex değerlerinden birine sahip outputEncoding anahtarını içermelidir.
|
İlişkili izinler
Yok.
sha256Sync
options
nesnesi farklı bir çıkış kodlaması belirtmediği sürece, girişin SHA-256 özetini base64 olarak kodlanmış şekilde 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 |
object |
Çıkış kodlamasını belirtmek için isteğe bağlı options nesnesi. Belirtilirse nesne, base64 veya hex değerlerinden birine sahip outputEncoding anahtarını içermelidir.
|
İlişkili izinler
Yok.
templateDataStorage
Şablon veri depolama alanına erişme yöntemleri içeren bir nesne döndürür. Şablon veri depolama alanı, verilerin tek bir şablonun yürütme işlemleri arasında paylaşılmasına olanak tanır. Şablon veri deposunda depolanan veriler, kapsayıcıyı çalıştıran sunucuda kalır. Çoğu durumda kapsayıcıyı çalıştıran birden fazla sunucu vardır. Bu nedenle, verileri şablon veri deposunda depolamak, sonraki her isteğin verilere erişebileceğini garanti etmez.
"templateDataStorage" adındaki "data", bu API'nin yalnızca işlev olmayan basit veri türlerini depolayabileceğini belirtir. API'ye iletilen işlevler veya işlevlere yapılan 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şkili izinler
testRegex
Bir dize, createRegex
API aracılığıyla oluşturulan normal ifadeye göre test edilir. Normal ifade eşleşirse true
döndürür. Aksi takdirde false
döndürülür.
global işaretiyle oluşturulan normal ifade duruma dayalı olur. Ayrıntılar için RegExp dokümanlarına 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'sinden döndürülen, test edilecek normal ifade. |
string |
dize | Test edilecek test dizesi. |
İlişkili 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
|
object | İsteğe bağlı API yapılandırması. (Aşağıdaki Seçenekler bölümüne bakın.) |
Seçenekler
Option | Tür | Açıklama | Minimum sürüm |
---|---|---|---|
urlEncoding
|
boole | Doğru ise 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şkili izinler
Yok.
BigQuery
BigQuery işlevleri sağlayan bir nesne döndürür.
BigQuery.insert
işlevi, BigQuery tablosuna veri yazmayı sağlar. Başarılı bir kampanya ekleme işleminde çözülen veya hata oluştuğunda reddedilen bir promise döndürür.
Ekleme başarılı olduğunda söz, hiçbir bağımsız değişken olmadan çözülür.
Ekleme başarısız olduğunda, söz, hata nedenini ve hata oluşursa muhtemelen bir satır nesnesini içeren bir nesne listesi ile reddeder. İsteğin bir kısmının başarıyla tamamlanması, diğer kısmının ise tamamlanmaması mümkündür. Bu durumda, hangi satırların eklendiğini ayırt etmeye yardımcı olmak için satır nesnesi içeren her satır için hata listesinin yer aldığı bir söz reddedilirse (Aşağıdaki Hata Örnekleri bölümüne bakın). Daha fazla bilgi için BigQuery'nin hata mesajları ile ilgili belgelerine bakın.
Söz dizimi
BigQuery.insert(connectionInfo, rows[, options]);
Parametre | Tür | Açıklama |
---|---|---|
connectionInfo |
object |
Bir BigQuery tablosuna bağlanmak için gereken bilgileri tanımlar. Bir isteğe bağlı parametre ve iki zorunlu parametre vardır:
|
rows |
Dizi | Tabloya eklenecek satırlar. |
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler: ignoreUnknownValues ve skipInvalidRows. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.) |
Parametre | Tür | Açıklama |
---|---|---|
ignoreUnknownValues |
boole | true olarak ayarlanırsa şemayla eşleşmeyen değerler içeren satırlar kabul edilir. Bilinmeyen değerler yoksayılır. Varsayılan olarak false değerine ayarlanır. |
skipInvalidRows |
boole | 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 büyük olasılıkla resmimizin henüz BigQuery modülü içermeyen 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 eklenir.
Ekleme dışı bir hatada genellikle reason
anahtarı içeren bir hata nesnesi bulunur:
[{reason: 'invalid'}]
Kampanya siparişi hatası, errors
dizisi ve row
nesnesi içeren birden fazla hata nesnesi içerebilir. Aşağıda, yalnızca bir satırda hata olan iki satır ekleme işleminden kaynaklanan bir 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şkili izinler
Firestore
Firestore işlevleri sağlayan bir nesne döndürür.
Bu API, Datastore modundaki Firestore'u değil, yalnızca yerel moddaki Firestore'u destekler. Ayrıca API yalnızca varsayılan veritabanının kullanılmasını destekler.
Firestore.read
Firestore.read
işlevi, bir Firestore dokümanındaki verileri okur ve id
ile data
olmak üzere iki anahtar içeren bir nesneye çözümlenen bir promise döndürür. Doküman mevcut değilse söz, not_found
değerine eşit bir reason
anahtarı içeren bir nesneyle reddedilir.
Söz dizimi
Firestore.read(path[, options]);
Parametre | Tür | Açıklama |
---|---|---|
path |
dize | Belgenin veya koleksiyonun yolu. "/" ile başlayamaz veya bitemez. |
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler: projectId, disableCache ve transaction. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | İsteğe bağlı. 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 , Google Cloud projesinin kimliğine ayarlanmış olur. |
disableCache |
boole | İsteğe bağlı. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma varsayılan olarak etkindir. Bu durumda, sonuçlar istek süresi boyunca önbelleğe alınır. |
transaction |
dize | İsteğe bağlı. Firestore.runTransaction() işlevinden alınan değer. İşlemin bir işlem içinde kullanılacağını işaret eder. |
Ö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, verileri bir Firestore dokümanı veya koleksiyonuna yazar. Yol bir koleksiyona aitse rastgele oluşturulan bir kimliğe sahip bir belge oluşturulur. Yol bir belgeye aitse ve belge mevcut değilse oluşturulur. Bu API, eklenen veya değiştirilen dokümanın kimliğine yönlendiren bir promise döndürür. İşlem seçeneği kullanılırsa API yine bir promise döndürür ancak yazma işlemleri toplu olarak yapıldığından kimliği içermez.
Söz dizimi
Firestore.write(path, input[, options]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
path |
dize | Belgenin veya koleksiyonun yolu. "/" ile başlayamaz veya bitemez. |
input |
object | Belgeye yazılacak değer. Birleştirme seçeneği ayarlanmışsa API, girişteki anahtarları dokümanla birleştirir. |
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler: projectId, merge ve transaction. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | İsteğe bağlı. 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 , Google Cloud projesinin kimliğine ayarlanmış olur. |
merge |
boole | İsteğe bağlı. true olarak ayarlanırsa girişteki anahtarlar dokümana birleştirilir. Aksi takdirde yöntem, dokümanın tamamını geçersiz kılar. Varsayılan olarak false değerine ayarlanır. |
transaction |
dize | İsteğe bağlı. Firestore.runTransaction() işlevinden alınan değer. İşlemin bir işlem içinde kullanılacağını işaret eder. |
Ö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, belirtilen koleksiyonu sorgulayarak sorgu koşullarını karşılayan bir Firestore dokümanı dizisine çözümlenen bir söz döndürür. Firestore belge nesnesi, yukarıda Firestore.read
bölümünde listelenenle aynıdır. Sorgu koşullarıyla eşleşen hiçbir doküman yoksa döndürülen promise boş bir diziye çözülür.
Söz dizimi
Firestore.query(collection, queryConditions[, options]);
Parametre | Tür | Açıklama |
---|---|---|
collection |
dize | Koleksiyonun yolu. "/" ile başlayamaz veya bitemez. |
queryConditions |
Dizi | Sorgu koşulları dizisi. Her sorgu, anahtar, operatör ve beklenen değer olmak üzere üç değer içeren bir dizi biçimindedir. Örneğin:
[[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]]. Sorgu sonucunu oluşturmak için koşullar AND işlevi kullanılarak birleştirilir. Uyumlu sorgu operatörlerinin listesi için lütfen Firestore'un sorgu operatörlerine bakın. |
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: projectId, disableCache, limit ve transaction. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | İsteğe bağlı. 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 , Google Cloud projesinin kimliğine ayarlanmış olur. |
disableCache |
boole | İsteğe bağlı. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma varsayılan olarak etkindir. Bu durumda, sonuçlar istek süresi boyunca önbelleğe alınır. |
limit |
number | İsteğe bağlı. Sorgu tarafından döndürülen maksimum sonuç sayısını değiştirir. Varsayılan değer 5'tir. |
transaction |
dize | İsteğe bağlı. Firestore.runTransaction() işlevinden alınan değer. İşlemin bir işlem içinde kullanılacağını işaret eder. |
Ö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 atomik olarak okuma ve yazma yapmasına olanak tanır. Eşzamanlı bir yazma veya başka bir işlem çakışması olursa işlem iki kez tekrar denenir. Üç denemeden sonra başarısız olursa API, hatayla reddeder. Bu API, işlem başarılıysa her yazma işlemi için bir belge kimlikleri dizisine çözümlenen bir söz döndürür ve işlem başarısız olursa hatayı reddederek döndürür.
Söz dizimi
Firestore.runTransaction(callback[, options]);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
callback |
function | Dize işlem kimliğiyle çağrılan bir geri çağırma işlevi. İşlem kimliği, okuma/yazma/sorgulama API çağrılarına iletilebilir. Bu geri çağırma işlevi bir promise döndürmelidir. Geri çağırma, başarısız olmadan önce en fazla üç kez çalıştırılabilir. |
options |
object | İsteğe bağlı istek seçenekleri. Yalnızca projectId seçeneği desteklenir. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | İsteğe bağlı. 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 , Google Cloud projesinin kimliğine ayarlanmış olur. |
Ö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 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şkili izinler
JSON
JSON işlevleri sağlayan bir nesne döndürür.
parse()
işlevi, dize tarafından açıklanan değeri veya nesneyi oluşturmak için bir JSON dizesini ayrıştırır. Değer ayrıştırılamazsa (ör. hatalı biçimlendirilmiş JSON) işlev undefined
değerini döndürür. Giriş değeri dize değilse giriş, dize olarak zorlanacaktır.
stringify()
işlevi, girişi JSON dizesi biçiminde dönüştürür. Değer ayrıştırılamazsa (ör. nesnede döngü 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şkili 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
Matematik işlevi parametreleri sayıya dönüştürülür.
İlişkili izinler
Yok.
Messages
Aşağıdaki API'ler, bir kapsayıcının farklı bölümleri arasında mesaj aktarımına izin vermek için birlikte çalışır.
addMessageListener
Belirli bir türde mesaj dinleyen bir işlev ekler. Bu tür bir mesaj sendMessage
API'si kullanılarak (genellikle bir etiket tarafından) gönderildiğinde geri çağırma işlevi eşzamanlı olarak çalıştırılır. Geri çağırma işlevi 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 mesaj alır. Geri çağırma yalnızca belirli bir etkinlikten mesaj almalıdır. Bu durumda, 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 dize biçimine getirilir. |
callback |
function | Geçerli mesaj türünde bir mesaj gönderildiğinde çalıştırılacak geri çağırma işlevi. Geri çağırma işlevi bir işlev değilse API hiçbir işlem yapmaz. |
Ö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şkili izinler
use_message
izni gerekir. İzin, en az aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
listen
veyalisten_and_send
değerleri olan birUsage
ileti türü.
hasMessageListener
Belirtilen mesaj türü için bir mesaj dinleyici eklenmişse true değerini döndürür. Aksi takdirde false döndürülür.
Söz dizimi
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
İlişkili izinler
Yok.
sendMessage
Kayıtlı bir dinleyiciye belirtilen türde bir mesaj gönderir. Bu, bir etiketten kapsayıcıyı çalıştıran istemciye mesaj 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 türü. Değer bir dize değilse dize biçimine dönüştürülür. |
message |
object | Gönderilecek mesaj. Mesaj bir nesne değilse API hiçbir işlem yapmaz. |
İlişkili izinler
use_message
izni gerekir. İzin, en az aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
listen_and_send
veyasend
değerleri olan birUsage
ileti türü.
Object
Object
yöntemleri sağlayan bir nesne döndürür.
keys()
yöntemi, Standart Kitaplık Object.keys() davranışını sağlar. Belirli bir nesnenin kendi listelenebilir özellik adlarının dizinini, for...in...
döngüsünün döndürdüğü sırayla döndürür. Giriş değeri bir nesne değilse nesneye dönüştürülür.
values()
yöntemi, Standart Kitaplık Object.values() davranışını sağlar. Belirli bir nesnenin kendi listelenebilir özellik değerlerinin dizinini, for...in...
döngüsünün döndürdüğü sırayla döndürür. Giriş değeri bir nesne değilse bir nesneye dönüştürülür.
entries()
yöntemi, Standart Kitaplık Object.entries() davranışını sağlar. Belirli bir nesnenin kendi listelenebilir özellik [key, value]
çiftlerinin bir dizisini, for...in...
döngüsünün yapacağı sırayla döndürür. Giriş değeri bir nesne değilse nesneye dönüştürülür.
freeze()
yöntemi, Standart Kitaplık Object.freeze() davranışını sağlar. Dondurulan nesneler artık değiştirilemez. Dondurulan nesnelere yeni özellik eklenemez, mevcut özellikler kaldırılamaz ve mevcut özelliklerin değerleri değiştirilemez. freeze()
, iletilen nesneyi döndürür. Basit veya null bağımsız değişkenler, dondurulmuş nesne gibi değerlendirilir ve döndürülür.
delete()
yöntemi, Standart Kitaplık sil operatörünün davranışını sağlar. Nesne dondurulmadığı sürece, belirtilen anahtarı nesneden kaldırır.
Standart Kitaplık'taki sil operatörü gibi, ikinci giriş değeri (keyToDelete
) var olmayan bir anahtar belirtse bile ilk giriş değeri (objectInput
) dondurulmamış bir nesneyse true
döndürür. Diğer tüm durumlarda false
döndürülür. Ancak Standart Kitaplık'taki sil operatöründen aşağıdaki yönleriyle ayrılır:
keyToDelete
, iç içe yerleştirilmiş bir anahtarı belirten noktayla ayrılmış bir dize olamaz.delete()
, bir dizideki öğeleri kaldırmak için kullanılamaz.delete()
, global kapsamdaki mülkleri 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 bir | Anahtarları listelenecek nesne. Giriş bir nesne değilse bir nesneye zorlanacaktır. |
Object.values
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi bir | Değerleri listelenecek nesne. Giriş bir nesne değilse bir nesneye zorla dönüştürülür. |
Object.entries
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi bir | Anahtar/değer çiftlerinin listeleneceği nesne. Giriş bir nesne değilse zorla nesne haline getirilir. |
Object.freeze
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi bir | Dondurulacak nesne. Giriş bir nesne değilse dondurulmuş nesne olarak değerlendirilir. |
Object.delete
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi bir | Anahtarı silinecek nesne. |
keyToDelete | dize | Silmek istediğiniz ü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
Sözlerle etkileşim kurma yöntemleri sağlayan bir nesne döndürür.
Sözler, işlevsel olarak JavaScript sözleriyle aynıdır. Her örneğin, bir Promise gerçekleştiğinde başka işlem yapılmasına olanak tanıyan bir Promise döndüren üç yöntemi vardır:
.then()
: Hem çözülen hem de reddedilen destek kayıtlarını yönetir. Parametre olarak iki geri çağırma alır: biri başarı durumu, diğeri ise başarısızlık durumu içindir..catch()
: Yalnızca reddedilen destek kayıtlarını işler. Parametre olarak bir geri çağırma alır..finally()
: Söz konusu söz çözülmüş veya reddedilmiş olsun, kodun çalıştırılmasına olanak tanır. Parametre olarak, bağımsız değişken içermeden çağrılan bir geri çağırma işlevi alır.
Sözleşme döndüren bir değişken, sözleşmenin çözülmüş değerine veya sözleşme reddedilirse 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 yapan bir promise döndürür:
- Tüm girişler çözüldüğünde çözülür veya
- girişlerden herhangi biri reddedildiğinde reddeder
Söz dizimi
Promise.all(inputs);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
inputs |
Dizi | Bir değer veya söz dizisi. Bir giriş söz değilse giriş, söz konusu söze ait çözülmüş değermiş 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şkili izinler
Yok.
Promise.create
İşlevsel olarak JavaScript vaadiyle eşdeğer bir vaat oluşturur.
Söz dizimi
Promise.create(resolver);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
resolver |
function | Çözümleme ve reddetme olmak üzere iki işlevle çağrılan bir işlev. Döndürülen söz, ilgili parametre çağrıldığında çözülür veya reddedilir. resolver bir işlev değilse hata atar. |
Örnek
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
İlişkili izinler
Yok.
Test API'leri
Bu API'ler, Google Etiket Yöneticisi'nde özel şablonlar için test oluşturmak üzere korumalı alan JavaScript testleriyle çalışır. Bu test API'leri için require()
beyan gerekmez. [Özel şablon testleri hakkında daha fazla bilgi edinin].
assertApi
Belirtilen API hakkında akıcı bir şekilde iddiada bulunmak için kullanılabilecek bir eşleyici nesnesi döndürür.
Söz dizimi
assertApi(apiName)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
apiName |
dize | Kontrol edilecek API'nin adı; require() parametresine iletilen diziyle aynıdır.
|
Eşleyiciler
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'si, Google'ın [Truth] kitaplığından modellenmiştir. Bir öznenin değeri hakkında akıcı bir şekilde iddialarda bulunmak için kullanılabilecek bir nesne döndürür. Bir iddia hatası, testi hemen durdurur ve başarısız olarak işaretler. Ancak bir testin başarısız olması diğer test durumlarını etkilemez.
Söz dizimi
assertThat(actual, opt_message)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
actual |
herhangi bir | Akıcılık kontrollerinde kullanılacak değer. |
opt_message |
dize | İddia başarısız olursa yazdırılacak isteğe bağlı mesaj. |
Eşleyiciler
Eşleştirici | Açıklama |
---|---|
isUndefined() |
Konunun undefined olduğunu belirtir. |
isDefined() |
Öznenin undefined olmadığını belirtir. |
isNull() |
Konunun null olduğunu belirtir. |
isNotNull() |
Öznenin null olmadığını belirtir. |
isFalse() |
Konunun false olduğunu belirtir. |
isTrue() |
Konunun true olduğunu belirtir. |
isFalsy() |
Konunun yanlış olduğunu belirtir. Yanlış değerler:
undefined , null , false ,
NaN , 0 ve '' (boş dize). |
isTruthy() |
Konunun doğru olduğunu belirtir. Yanlış değerler:
undefined , null , false ,
NaN , 0 ve '' (boş dize). |
isNaN() |
Öznenin NaN değeri olduğunu belirtir. |
isNotNaN() |
Öznenin NaN dışında bir değer olduğunu belirtir. |
isInfinity() |
Öznenin pozitif veya negatif sonsuz olduğunu belirtir. |
isNotInfinity() |
Öznenin pozitif veya negatif sonsuz dışında bir değer olduğunu belirtir. |
isEqualTo(expected) |
Öznenin, belirtilen değere eşit olduğunu belirtir. Bu, 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. |
isNotEqualTo(expected) |
Öznenin, belirtilen değere eşit olmadığını belirtir. Bu, 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. |
isAnyOf(...expected) |
Öznenin, verilen değerlerden birine eşit olduğunu belirtir. Bu, 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. |
isNoneOf(...expected) |
Öznenin, verilen değerlerden hiçbirine eşit olmadığını belirtir. Bu, 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, belirtilen değere tam olarak eşit (=== ) olduğunu belirtir. |
isNotStrictlyEqualTo(expected) |
Öznenin, belirtilen değere tam olarak eşit (!== ) olmadığını belirtir. |
isGreaterThan(expected) |
Sıralı bir karşılaştırmada öznenin, verilen değerden (> ) daha büyük olduğunu belirtir. |
isGreaterThanOrEqualTo(expected) |
Sıralı bir karşılaştırmada öznenin, verilen değerden büyük veya bu değere eşit olduğunu (>= ) belirtir. |
isLessThan(expected) |
Sıralı bir karşılaştırmada öznenin, verilen değerden (< ) küçük olduğunu belirtir. |
isLessThanOrEqualTo(expected) |
Sıralı bir karşılaştırmada öznenin, verilen değerden (<= ) küçük veya bu değere eşit olduğunu belirtir. |
contains(...expected) |
Öznenin, verilen tüm değerleri herhangi bir sırada içeren bir dizi veya dize olduğunu belirtir. Bu, 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) |
Öznenin, verilen değerlerden hiçbirini içermeyen bir dizi veya dize olduğunu belirtir. Bu, 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) |
Öznenin, verilen tüm değerleri herhangi bir sırada içeren ve başka değer içermeyen bir dizi olduğunu belirtir. Bu, 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) |
Öznenin, verilen değerlerden farklı bir değer grubu içeren bir dizi olduğunu belirtir. Bu, 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. |
hasLength(expected) |
Öznenin, belirli uzunlukta bir dizi veya dize olduğunu belirtir. Değer bir dizi veya dize değilse beyan her zaman başarısız olur. |
isEmpty() |
Öznenin boş bir dizi veya dize (uzunluk = 0) olduğunu belirtir. Değer bir dizi veya dize değilse iddia her zaman başarısız olur. |
isNotEmpty() |
Öznenin boş olmayan bir dizi veya dize olduğunu (uzunluk > 0) belirtir. Değer bir dizi veya dize değilse iddia her zaman başarısız olur. |
isArray() |
Konunun türünün dizi olduğunu belirtir. |
isBoolean() |
Öznenin türünün boole olduğunu belirtir. |
isFunction() |
Öznenin türünün bir işlev olduğunu belirtir. |
isNumber() |
Öznenin türünün sayı olduğunu belirtir. |
isObject() |
Konunun türünü nesne olarak belirtir. |
isString() |
Konunun türünü dize olarak belirtir. |
Ö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
Mevcut testi hemen geçersiz kılar ve sağlanmışsa belirtilen mesajı 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ı alanlardaki API'lerin davranışını geçersiz kılmanıza olanak tanır. Şablon kodunda sahte API'nin kullanılması güvenlidir ancak yalnızca test modunda çalışır.
Sahte veriler her test çalıştırılmadan önce sıfırlanır.
Söz dizimi
mock(apiName, returnValue);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
apiName |
dize | Taklit edilecek API'nin adı; require() parametresine iletilen diziyle aynıdır. |
returnValue |
herhangi bir | API için döndürülecek değer veya API yerine çağrılan bir işlev. returnValue bir işlevse korumalı API yerine bu işlev çağrılır; returnValue işlev dışında bir şeyse korumalı API yerine bu değer döndürülür. |
Örnekler
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
mockObject
API, nesne döndüren korumalı alan API'lerinin davranışını geçersiz kılmanıza olanak tanır. API'nin şablon kodunda kullanılması güvenlidir ancak yalnızca test modunda çalışır. Sahte veriler her test çalıştırılmadan önce sıfırlanır.
Söz dizimi
mockObject(apiName, objectMock);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
apiName |
dize | Taklit edilecek API'nin adı; require() parametresine iletilen diziyle aynıdır. |
objectMock |
object | API için döndürülecek değer veya API yerine çağrılan bir işlev. Nesne olmalıdır. |
Örnekler
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
Şablonun kodunu (yani Kod sekmesinin içeriğini) mevcut test ortamında belirli bir giriş verisi nesnesi ile çalıştırır.
Söz dizimi
runCode(data)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
data |
object | Testte kullanılacak veri nesnesi. |
Döndürülen Değer
Değişken şablonlar için bir değişkenin değerini döndürür; diğer tüm şablon türleri için undefined
döndürür.
Örnek
runCode({field1: 123, field2: 'value'});