Bu belgede, sunucu tarafı etiketleme için kullanılan API'ler açıklanmaktadır.
addEventCallback
Bir etkinliğin sonunda çağrılacak bir geri çağırma işlevini kaydeder. Geri çağırma, etkinliğe ilişkin tüm etiketler yürütüldüğünde çağrılır. Geri çağırma iki değer iletir: 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ğlanması gerekir. 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 veri nesneleri dizisi. Etkinlik sırasında tetiklenen her etiketin bu dizide bir girişi olur. Etiket veri nesnesi etiketin kimliğini (id ), yürütme durumunu (status ) ve yürütme zamanını (executionTime ) içerir. Etiket verileri, etiket üzerinde yapılandırılmış ek etiket meta verilerini de içerir.
|
Bir istemcide:
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();
}
});
});
Etiket içinde:
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, mevcut kod döndürüldükten sonra çağrılacaktı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 bir istemcide bu API'yi kullanın. Bir istek talep edildiğinde, container ek istemciler çalıştırmaz.
Bu API, bir etiket veya değişkende çağrılırsa istisna oluşturur. Bu API, istemci döndürüldükten sonra çağrılırsa (ör. callLater
veya runContainer
onComplete
işlevinde olduğu gibi eşzamansız bir geri çağırmayla) çağrılırsa istisna oluşturur.
İstemcilerin runContainer
API'yi çağırmadan önce bu API'yi kullanarak isteği talep etmesi gerekir.
Örnek
const claimRequest = require('claimRequest');
claimRequest();
Söz dizimi
claimRequest();
İlişkilendirilmiş izinler
Yok.
computeEffectiveTldPlusOne
Belirli bir alan veya URL'nin etkili üst düzey alanı + 1'i (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 boş veya tanımsızsa 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 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ğı alan veya URL. |
İlişkilendirilmiş izinler
Yok.
createRegex
Yeni bir normal ifade örneği oluşturur ve bunu bir nesne içine sarmalanmış halde döndürür. Normal ifadeye doğrudan erişemezsiniz. Ancak bunu testRegex
API, String.replace()
, String.match()
ve String.search()
içine geçirebilirsiniz.
Normal ifade geçersizse veya sunucuda Re2 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 ifadenin işaretlerini içeren isteğe bağlı bir dize. "g" (genel) ve "i" (büyük/küçük harfe duyarlı değil) değerleri desteklenir. Diğer tüm karakterler sessizce yoksayılır. |
İlişkilendirilmiş izinler
Yok.
Minimum resim sürümü
decodeUri
Sağlanan URI'daki kodlanmış karakterlerin kodunu çözer. Kodu çözülmüş URI'yı temsil eden bir dize 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 yöntemlerle 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 yöntemlerle kodlanmış bir URI bileşeni.
|
İlişkilendirilmiş izinler
Yok.
encodeUri
Özel karakterlere çıkış karakteri ekleyerek 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 bir URI. |
İlişkilendirilmiş izinler
Yok.
encodeUriComponent
Özel karakterlere çıkış karakteri ekleyerek 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 bileşeni. |
İlişkilendirilmiş izinler
Yok.
extractEventsFromMpv1
Gelen bir Measurement Protocol V1 isteğini, Birleştirilmiş Şema biçimindeki etkinlikler 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, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:
body
query parameters
extractEventsFromMpv2
Gelen bir Measurement Protocol V2 isteğini, Birleştirilmiş Şema biçimindeki etkinlikler 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, aşağıdakilerin en az birine erişime izin 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 dahilinde 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 |
numara | Döndürülen tam sayının minimum potansiyel değeri (değerleri dahil). |
max |
numara | Döndürülen tam sayının maksimum potansiyel değeri (değerleri 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ı hakkında veriler içeren bir nesne döndürür. Döndürülen nesne aşağıdaki alanlara sahip olur:
{
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 bu değerler döndürü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 bir |
Yol bileşenlerinin noktalarla ayrıldığı anahtar yolu. Yol bileşenleri, bir nesnedeki anahtarlar veya dizideki dizinler olabilir. keyPath dize değilse bir dizeye dönüşür.
|
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çeren bir yetkilendirme nesnesi döndürür. Bu API, sunucu ortamından otomatik olarak kimlik bilgileri 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 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ı grubundan bir kaynak alır ve komut dosyası ve ilişkili önbelleğe alma meta verilerini içeren bir vade döndürür.
Vaat, 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 bağlı olarak aşağıdaki önbelleğe alma meta verilerini içerir. Her alan, yalnızca ilgili üstbilgi 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ı. Desteklenen komut dosyaları:
'ANALYTICS' , 'GTAG' ve
'GTM' .'ANALYTICS' seçeneği, Google Analytics komut dosyasını https://www.google-analytics.com/analytics.js kaynağından 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, Google Etiket Yöneticisi komut dosyasını https://www.googletagmanager.com/gtm.js kaynağından getirir.
|
options |
object (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' için geçerlidir (ör. GTM-XXXX).
|
debug |
herhangi bir | Doğruysa, ölçüm komut dosyasının hata ayıklama sürümünü ister ve döndürür. |
timeout |
numara |
Milisaniye cinsinden istek zaman aşımı; pozitif olmayan değerler göz ardı edilir. İ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 anahtarları yoksayılır.
İlişkilendirilmiş izinler
send_http
izni gerektirir. Bu izin, aşağıdakilerin en azından erişimine 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 geldiği IP adresinin dize gösterimini 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 elimizden geleni yapsa da sonucun doğru olduğunu garanti edemez.
Söz dizimi
getRemoteAddress();
İlişkilendirilmiş izinler
read_request
izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:
- Başlıklar
Forwarded
veX-Forwarded-For
- Uzak IP Adresi
getRequestBody
İstek gövdesini (mevcutsa) dize olarak, aksi takdirde undefined
olarak döndürür.
Söz dizimi
getRequestBody();
İlişkilendirilmiş izinler
getRequestHeader
Adlandırılmış istek başlığının değerini varsa dize, aksi takdirde undefined
olarak 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 | 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'
) 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
İstek yolunu sorgu dizesi olmadan döndürür. Örneğin, URL '/foo?id=123'
ise '/foo'
sonucunu döndürür. Sunucu kapsayıcı URL'si önekini yoldan otomatik olarak çıkarır. Örneğin, Sunucu kapsayıcı URL'si https://example.com/analytics
ve istek yolu '/analytics/foo'
ise '/foo'
sonucunu 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 dize parametresinin kodu çözülmüş değerini dize olarak veya parametre mevcut değilse 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şleyen 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 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 tercih edilir.
Date.now()
tarafından döndürülen, Unix sıfır noktasından bu yana geçen geçerli süreyi milisaniye cinsinden temsil eden bir sayı döndürür.
Söz dizimi
getTimestamp();
İlişkilendirilmiş izinler
Yok.
getTimestampMillis
Date.now()
tarafından döndürülen, Unix sıfır noktasından bu yana geçen geçerli süreyi milisaniye cinsinden temsil eden bir sayı döndürür.
Söz dizimi
getTimestampMillis();
İlişkilendirilmiş izinler
Yok.
getType
Verilen değerin türünü açıklayan bir dize döndürür.
Giriş Türü | Döndürülen Değer |
---|---|
dize | 'string' |
numara | '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 bir | Giriş değeri. |
İlişkilendirilmiş izinler
Yok.
hmacSha256
SHA-256 ile Karma Tabanlı Mesaj Kimlik Doğrulama Kodu (HMAC) kullanarak kodlanmış 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 olarak kodlanmış 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 | Kullanılacak anahtarı belirten JSON anahtar dosyasından bir anahtar kimliği. |
options
|
object (nesne) | İ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ğ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 resim sürümü
isRequestMpv1
Gelen istek bir Measurement Protocol V1 isteğiyse true
, aksi halde 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
, aksi halde 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 günlüğe kaydeder.
Bu günlükler Google Cloud Console'daki Günlük Gezgini'nde görünür.
Günlük Gezgini'nde bu API tarafından oluşturulan günlük girişlerini görmek için 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. Gerekirse bu bağımsız değişkenlerin her biri dizeye dönüştürülür ve konsolda günlüğe kaydedilir.
İlişkilendirilmiş izinler
makeInteger
Belirli bir değeri sayıya (tamsayı) 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 işlev, 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, şu işlev bir tablo nesnesini dönüştürebilir:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
içine girer:
{
'k1': 'v1',
'k2': 'v2'
}
Bir Nesne döndürür: Dönüştürülen Map
anahtar/değer çifti ona eklenir veya null
değilse 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. Bu, her Map öğesinin tablodaki bir satırı temsil ettiği bir haritalar listesidir. Bir satır nesnesindeki her özellik adı, sütun adıdır ve özellik değeri, 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 öğesinde değer haline gelecek sütunun adı.
|
İlişkilendirilmiş izinler
Yok.
parseUrl
URL
nesnesine benzer şekilde, belirli bir URL'nin tüm bileşen parçalarını içeren bir nesne döndürür.
Bu API, bozuk URL'ler için undefined
değerini döndürür. Doğru şekilde biçimlendirilmiş URL'ler için URL dizesinde bulunmayan alanlar, boş dize değeri veya searchParams
durumunda boş nesne değeri içerir.
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
Yanıtı değiştiren API'leri kullanarak diğer şablonlar tarafından daha önce ayarlanan yanıtı (setCookie, setPixelResponse, setResponseBody, setResponseHeader ve setResponseStatus gibi) boşaltır. Varsayılan olarak HTTP durum kodu 200'e, boş gövdeye ayarlanır ve üstbilgi içermez.
Bu API'nin bir istemci şablonundan kullanılması önerilir.
Söz dizimi
returnResponse();
Örnek
runContainer
örneğini inceleyin.
İlişkilendirilmiş izinler
runContainer
Bir etkinlik kapsamında kapsayıcı mantığını (değişkenler, tetikleyiciler, etiketler) çalıştırır. Container yürütme sırasında bu API çağrılırsa container 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 fazla ayrıntı 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 |
object (nesne) | Etkinlik parametreleri. |
onComplete |
işlev | Tüm etiketlerin tetiklenmesi 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ı olan bir nesneye çözümlenen veya reason
anahtarı olan bir nesneyi reddeden bir taahhüt döndürür. Universal Analytics veya Google Analytics 4 hedefi, etkinlik verilerindeki ölçüm kimliğini temel alır.
location
alanı (varsa) location
üstbilgisine ayarlanır.
Örnek
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();
}, (err) => {
setResponseStatus(500);
data.gtmOnFailure();
});
Söz dizimi
sendEventToGoogleAnalytics(event);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
event |
object (nesne) | Birleştirilmiş Şema biçimindeki etkinlik. |
İlişkilendirilmiş izinler
send_http
izni gerektirir. Bu izin, aşağıdakilerin en azından erişimine izin 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 veya zaman aşımına uğradığında sonuçla çö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, barındırılacak yol yok, SSL anlaşma hatası vb.) taahhüt şu değerle reddedilir: {reason:
'failed'}
. timeout
seçeneği ayarlandıysa ve istek zaman aşımına uğradıysa söz, şu ifadeyle 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 (nesne) | İ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 başlıkları. |
timeout
|
numara | İstek iptal edilmeden önceki milisaniye cinsinden zaman aşımı. Varsayılan olarak 15000 değerine ayarlanır. |
authorization
|
object (nesne) | googleapis.com 'e istekte bulunurken yetkilendirme üstbilgileri eklemek için 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, barındırılacak yol yok, SSL anlaşma hatası vb.) taahhüt şu değerle reddedilir: {reason:
'failed'}
. timeout
seçeneği ayarlandıysa ve istek zaman aşımına uğradıysa söz, şu ifadeyle 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 (nesne) | İ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 gövdesi. |
Seçenekler
Option | Tür | Açıklama |
---|---|---|
headers |
dize | Ek istek başlıkları. |
method |
object (nesne) | İstek yöntemi. Varsayılan olarak GET değerine ayarlanır. |
timeout
|
numara | İstek iptal edilmeden önceki milisaniye cinsinden zaman aşımı. Varsayılan olarak 15000 değerine ayarlanır. |
authorization
|
object (nesne) | googleapis.com 'e istekte bulunurken yetkilendirme üstbilgileri eklemek için getGoogleAuth çağrısındaki isteğe bağlı yetkilendirme nesnesi. |
İlişkilendirilmiş izinler
sendPixelFromBrowser
Sağlanan URL'yi <img>
etiketi olarak yüklemek 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. Diğer ayrıntılar 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 alanla aynı yola ve alana sahip bir çerez ayarlamalı ve çereze geçmişte olan bir geçerlilik süresi (ör. "Thu, 01 Jan 1970 00:00:00 GMT"
) değeri atanmalıdır.
Yanıtın istemciye geri gönderilmesi için returnResponse'un ç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 (nesne) | İsteğe bağlı çerez özellikleri:domain, expires, fallbackDomain,httpOnly, max- age, path, secure, andsameSite. (Aşağıdaki Seçenekler bölümüne bakın.) |
noEncode |
boolean |
Doğru (true) 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
üst bilgisinin eTLD+1 (varsa).X-Forwarded-Host
üst bilgisinin eTLD+1 (varsa).- eTLD+1/
Host
başlığı.
expires: Çerezin maksimum kullanım ömrü. Bu, UTC biçiminde bir tarih dizesi olmalıdır; ör. "Cts, 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 engeller.max-age: Çerezin kullanım süresi dolana kadar geçen saniye sayısı. Sıfır veya negatif bir sayıysa çerezin kullanım süresi hemen sona erer. Hem
expires
hem demax-age
ayarlanırsamax-age
öncelikli olur.path (yol): İstenen URL'de bulunması gereken bir yol, aksi takdirde tarayıcı Çerez üstbilgisini göndermez.
secure:
true
olarak ayarlanırsa çerez yalnızcahttps:
uç noktasından istek yapıldığında sunucuya gönderilir.sameSite: Bir çerezin, kaynaklar arası isteklerle birlikte gönderilmemesi gerektiğini iddia eder.
'strict'
,'lax'
veya'none'
olmalıdır.
İlişkilendirilmiş izinler
setPixelResponse
Yanıt gövdesini 1x1 GIF'e ayarlar, Content-Type üstbilgisini "image/gif" olarak ayarlar, önbelleğe alma üst bilgilerini kullanıcı aracıları yanıtı önbelleğe almayacak şekilde ayarlar ve yanıt durumunu 200 olarak ayarlar.
Yanıtın istemciye geri gönderilmesi için returnResponse'un çağrılması gerektiğini unutmayın.
Söz dizimi
setPixelResponse();
İlişkilendirilmiş izinler
access_response
izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:
headers
- Aşağıdaki anahtarlara izin vermelidircontent-type
cache-control
expires
pragma
body
status
setResponseBody
Bağımsız değişkenin yanıt gövdesini ayarlar.
Yanıtın istemciye geri gönderilmesi için returnResponse'un ç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, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:
body
setResponseHeader
Döndürülecek yanıtta bir üstbilgi ayarlar. Bu API tarafından daha önce bu ada sahip bir başlık (büyük/küçük harfe duyarlı değil) oluşturulmuşsa sonraki çağrı, önceki arayan tarafından ayarlanan değerin üzerine yazar veya değeri siler.
Yanıtın istemciye geri gönderilmesi için returnResponse'un ç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 |
string undefined | Başlık değeri. Null veya tanımsız olursa bu işlem, adlandırılmış üst bilgiyi döndürülecek yanıttan temizler. |
İlişkilendirilmiş izinler
access_response
izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin 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'un çağrılması gerektiğini unutmayın.
Söz dizimi
setResponseStatus(statusCode);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
statusCode |
numara | Döndürülecek HTTP durum kodu. |
İlişkilendirilmiş izinler
access_response
izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:
status
sha256
Girişin SHA-256 özetini hesaplar ve options
nesnesi farklı bir çıkış kodlaması belirtmedikçe base64'te kodlanmış özetle bir geri çağırma yapar.
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 |
işlev |
options nesnesi farklı bir çıkış kodlaması belirtmediği sürece base64'te kodlanmış sonuç özetiyle çağrılır.
|
options |
object (nesne) |
Çıkış kodlamasını belirtmek için Optional options nesnesi. Belirtilirse nesne, base64 veya hex değerlerinden biriyle outputEncoding anahtarını içermelidir.
|
İlişkilendirilmiş izinler
Yok.
sha256Sync
options
nesnesi farklı bir çıkış kodlaması belirtmedikçe, base64 olarak kodlanmış girişin 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 |
object (nesne) |
Çıkış kodlamasını belirtmek için Optional options nesnesi. Belirtilirse nesne, base64 veya hex değerlerinden biriyle outputEncoding anahtarını içermelidir.
|
İlişkilendirilmiş izinler
Yok.
templateDataStorage
Şablon veri depolamaya erişim yöntemlerine sahip bir nesne döndürür. Şablon verilerinin depolanması, verilerin tek bir şablonun yürütme işlemleri arasında paylaşılmasını sağlar. Şablon veri depolamasında depolanan veriler, container'ı çalıştıran sunucuda kalır. Çoğu durumda, container'ı çalıştıran birden fazla sunucu vardır. Bu nedenle, verilerin şablon veri depolamada depolanması, sonraki her isteğin verilere erişebileceğini garanti etmez.
"templateDataStorage" adındaki "data" ifadesi, bu API kullanılarak yalnızca düz ve işlevsiz veri türlerinin depolanabileceği anlamına gelir. API'ye iletilen işlevler veya işlev referansları 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 ifadeyle 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 bayrakla oluşturulan bir normal ifade durum bilgilidir. Ayrıntılı bilgi 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'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ına ayarlanır.
Söz dizimi
toBase64(input, options);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
input |
dize | Kodlanacak dize. |
options
|
object (nesne) | İ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
|
boolean | Doğruysa 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 nesne döndürür.
BigQuery.insert
işlevi, BigQuery tablosuna veri yazmaya olanak tanır. Başarılı bir eklemenin ardından çözümlenen veya bir hatayı reddeden bir vaat döndürür.
Ekleme işlemi başarılı olduğunda, söz konusu bağımsız değişken olmadan çözümlenir.
Ekleme başarısız olduğunda, taahhüt, hata nedenini içeren bir nesne listesiyle ve hata oluşursa muhtemelen bir satır nesnesiyle reddedilir. İsteğin bir kısmı başarıyla tamamlanırken diğer kısmı tamamlanmayabilir. Vaat, bu durumda hangi satırların eklendiğini ayırt etmeye yardımcı olmak amacıyla bir satır nesnesi içeren her satırdaki hata listesiyle birlikte reddedilir (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 (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 |
object (nesne) | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: ignoreUnknownValues ve skipOverrideRows. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.) |
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 | Bu parametre true değerine 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 görüntümüzün, henüz BigQuery modülünü içermeyen daha 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
anahtarlı bir hata nesnesi içerir:
[{reason: 'invalid'}]
Ekleme hatası, bir errors
dizisi ve row
nesnesine sahip birden çok hata nesnesi içerebilir. Aşağıda, yalnızca bir satırda hata olan 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 nesne döndürür.
Bu API yalnızca Yerel modda Firestore'u destekler, Datastore modunda Firestore'u desteklemez.
Firestore.read
Firestore.read
işlevi, bir Firestore belgesindeki verileri okur ve iki anahtar içeren bir nesneye çözümlenen bir vaat döndürür: id
ve data
. Belge yoksa taahhüt, not_found
öğesine eşit reason
anahtarı içeren bir nesneyle reddedilir.
Söz dizimi
Firestore.read(path[, options]);
Parametre | Tür | Açıklama |
---|---|---|
path |
dize | Belge veya koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir. |
options |
object (nesne) | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: 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 | Optional. Google Cloud Platform proje kimliği. Atlanırsa proje kimliği için access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId , 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ış olacaktı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 özellik, isteğin geçerli olduğu süre boyunca sonuçları önbelleğe alır. |
transaction |
dize | Optional. Firestore.runTransaction() işlevinden alınan değer. Bir işlem içinde 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 gidiyorsa rastgele oluşturulan kimlikle bir belge oluşturulur. Yol bir dokümana aitse ve doküman yoksa 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 söz döndürür, ancak yazma işlemleri 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 | Belge veya koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir. |
input |
object (nesne) | Dokümana yazılacak değer. Birleştirme seçeneği ayarlanırsa API, girişteki anahtarları belgeyle birleştirir. |
options |
object (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üne bakın.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | Optional. Google Cloud Platform proje kimliği. Atlanırsa proje kimliği için access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId , 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ış olacaktır. |
merge |
boolean | Optional. true olarak ayarlandıysa girişteki anahtarları dokümanla birleştirin. Aksi takdirde yöntem tüm dokümanı geçersiz kılar. Varsayılan olarak false değerine ayarlanır. |
transaction |
dize | Optional. Firestore.runTransaction() işlevinden alınan değer. Bir işlem içinde 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, belirtilen koleksiyonu sorgular ve sorgu koşullarıyla eşleşen bir Firestore belgesi dizisine çözümlenen 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ğer içeren bir dizi biçiminde gelir: key, operator ve estimatedValue. E.g.:
[[‘id’, ‘<’, ‘5’], [‘durum’, ‘==’, ‘CA’]]. Koşullar, sorgu sonucunu oluşturmak için birlikte VE uygulanır. Uyumlu sorgu operatörlerinin listesi için lütfen Firestore'un sorgu operatörlerine bakın. |
options |
object (nesne) | İ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 | Optional. Google Cloud Platform proje kimliği. Atlanırsa proje kimliği için access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId , 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ış olacaktı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 özellik, isteğin geçerli olduğu süre boyunca sonuçları önbelleğe alır. |
limit |
numara | Optional. Sorgu tarafından döndürülen maksimum sonuç sayısını değiştirir ve varsayılan olarak 5 değerini alır. |
transaction |
dize | Optional. Firestore.runTransaction() işlevinden alınan değer. Bir işlem içinde 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 atomik olarak okuma ve yazmasına imkan tanır. Eşzamanlı bir yazma işlemi 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 dizi belge kimliği dizisine çözümlenen bir söz döndürür. İşlem başarılı olursa hatayla birlikte reddedilir.
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 geçirilebilir. Bu geri çağırma işlevi bir söz döndürmelidir. Geri arama, başarısız olmadan önce en fazla üç kez çalıştırılabilir. |
options |
object (nesne) | İsteğe bağlı istek seçenekleri. Yalnızca projectId seçeneği desteklenir. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.) |
Parametre | Tür | Açıklama |
---|---|---|
projectId |
dize | Optional. Google Cloud Platform proje kimliği. Atlanırsa proje kimliği için access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId , 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ış olacaktı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 Firestore işlevinde bulunan hatalar, reason
anahtarı içeren bir nesne ile 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, dizeyle 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. Girdi değeri dize değilse giriş dize olmaya zorlanı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 işlev parametreleri sayılara dönüştürülür.
İlişkilendirilmiş izinler
Yok.
Messages
Aşağıdaki API'ler, mesajların bir kapsayıcının farklı bölümleri arasında aktarılmasına olanak tanımak için birlikte çalışır.
addMessageListener
Belirli türdeki mesajları dinleyen bir işlev ekler. sendMessage
API kullanılarak (genellikle bir etiket tarafından) 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 mesaj alır. Geri çağırmanın yalnızca belirli bir etkinlikten mesaj alması gerekiyorsa bu API'yi, runContainer
API'sinin onStart
işlevindeki bindToEvent
öğesini kullanarak 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üdür. Değer bir dize değilse dize olmaya zorlanır. |
callback |
işlev | Uygun 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 hiçbir şey 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şkilendirilmiş izinler
use_message
izni gerektirir. Bu izin en azından aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
listen
veyalisten_and_send
arasındanUsage
olan bir mesaj türü.
hasMessageListener
Belirtilen mesaj türü için bir mesaj dinleyici 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 işleyiciye belirtilen türde bir mesaj gönderir. Bu işlem, 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ın türü. Değer, dize değilse dize olmaya zorlanır. |
message |
object (nesne) | Gönderilecek ileti. Mesaj bir nesne değilse API hiçbir şey yapmaz. |
İlişkilendirilmiş izinler
use_message
izni gerektirir. Bu izin en azından aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
listen_and_send
veyasend
arasındanUsage
olan bir mesaj 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 numaralandırılabilir özellik adlarının bir dizisini, bir for...in...
döngüsünün yapacağı sırayla döndürür. Giriş değeri nesne değilse bir nesne olmaya zorlanır.
values()
yöntemi, Standart Kitaplık Object.values() davranışını sağlar. Belirli bir nesnenin kendi numaralandırılabilir özellik değerlerinin bir dizisini, bir for...in...
döngüsüyle aynı sırada döndürür. Giriş değeri nesne değilse bir nesneye zorlanır.
entries()
yöntemi, Standart Kitaplık Object.entries() davranışını sağlar. Belirli bir nesnenin kendi numaralandırılabilir özellik çiftlerinin [key, value]
dizisini, bir for...in...
döngüsünün yapacağı sırayla döndürür. Giriş değeri nesne değilse nesneye zorlanır.
freeze()
yöntemi, Standart Kitaplık Object.freeze() davranışını sağlar. Dondurulmuş bir nesne artık değiştirilemez. Bir nesnenin dondurması, yeni özelliklerin bu nesneye eklenmesini, mevcut özelliklerin kaldırılmasını ve mevcut özelliklerin değerlerinin değiştirilmesini engeller. freeze()
, aktarılan nesneyi döndürür. Temel veya null bağımsız değişken, donmuş bir nesne 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ünde olduğu gibi, ilk giriş değeri (objectInput
) ikinci giriş değeri (keyToDelete
) var olmayan bir anahtarı belirtse bile dondurulmayan bir nesneyse true
değerini döndürür. Diğer tüm durumlarda false
değerini döndürür. Ancak bu yöntem, Standart Kitaplık silme operatöründen aşağıdaki yönleriyle farklıdır:
keyToDelete
, iç içe yerleştirilmiş bir anahtar belirten noktayla ayrılmış bir dize olamaz.delete()
, bir diziden öğe kaldırmak için kullanılamaz.delete()
, genel kapsamdan herhangi bir mülkü 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ı numaralanacak nesne. Giriş bir nesne değilse bir nesneye zorlanır. |
Object.values
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi bir | Değerleri numaralanacak nesne. Giriş bir nesne değilse bir nesneye zorlanır. |
Object.entries
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi bir | Anahtar/değer çiftleri numaralanacak nesne. Giriş bir nesne değilse bir nesneye zorlanır. |
Object.freeze
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi bir | Dondurulacak nesne. Giriş bir nesne değilse donmuş nesne olarak değerlendirilir. |
Object.delete
Parametre | Tür | Açıklama |
---|---|---|
objectInput | herhangi bir | 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 nesne döndürür.
Vaatler işlevsel olarak JavaScript vaatleriyle eşdeğerdir. Her örneğin, bir Promise döndüren ve söz konusu gerçekleştiğinde başka işlem yapılmasına olanak tanıyan üç yöntem vardır:
.then()
- Hem çözülen hem de reddedilen destek yazışmalarını ele alır. Biri başarı durumu, diğeri hata durumu için olmak üzere, parametre olarak iki geri çağırma işlemi kullanılır..catch()
- Yalnızca reddedilen destek yazışmalarını ele alır. Parametre olarak bir geri çağırma alır..finally()
- Vaatin sonuçlandırılmış veya reddedilmiş olmasına bakılmaksızın kodun çalıştırılması için bir yol sağlar. Bir geri çağırmayı, bağımsız değişken olmadan çağrılan bir parametre olarak alır.
Vaat döndüren bir değişken, vaadin çözümlenmiş değerine eşit olur veya söz reddedilirse false
bu değere eşit olur.
Ö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 birinin sözünü 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. Bir giriş, vaat edilen bir değer değilse sözünün çözümlenmiş değeriymiş gibi aktarılır. 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
JavaScript vaadiyle işlevsel olarak eşdeğer bir söz oluşturur.
Söz dizimi
Promise.create(resolver);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
resolver |
işlev | Çözümle ve reddet şeklinde iki işlevle çağrılan bir işlev. Döndürülen söz, ilgili parametre çağrıldığında çö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 etme
Bu API'ler, Google Etiket Yöneticisi'nde ö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]
assertApi
Belirli bir API hakkında akıcı şekilde iddialarda bulunmak için kullanılabilecek bir eşleştirici nesne döndürür.
Söz dizimi
assertApi(apiName)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
apiName |
dize | Kontrol edilecek API'nin adı; require() işlevine iletilen dize.
|
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. Öznenin değeri hakkında akıcı bir şekilde iddialarda bulunmak için kullanılabilecek bir nesne döndürür. Onaylama hatası, testi hemen durdurur ve başarısız olarak işaretler. Bununla birlikte, 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 bir | 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 ediyor. |
isDefined() |
Konunun undefined olmadığı iddia ediliyor. |
isNull() |
Konunun null olduğunu iddia ediyor. |
isNotNull() |
Konunun null olmadığı iddia ediliyor. |
isFalse() |
Konunun false olduğunu iddia ediyor. |
isTrue() |
Konunun true olduğunu iddia ediyor. |
isFalsy() |
Konunun yanlış olduğunu iddia eder. Yanlış değerler undefined , null , false , NaN , 0 ve '' (boş dize) şeklindedir. |
isTruthy() |
Konunun doğru olduğunu iddia eder. Yanlış değerler undefined , null , false , NaN , 0 ve '' (boş dize) şeklindedir. |
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 Sonsuz olduğunu iddia eder. |
isNotInfinity() |
Öznenin pozitif veya negatif Sonsuz dışında herhangi bir değer olduğunu iddia eder. |
isEqualTo(expected) |
Konunun verilen değere eşit olduğunu iddia eder. Bu bir referans karşılaştırması değil, bir değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isNotEqualTo(expected) |
Konunun verilen değere eşit olmadığını iddia eder. Bu bir referans karşılaştırması değil, bir değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isAnyOf(...expected) |
Konunun verilen değerden birine eşit olduğunu iddia eder. Bu bir referans karşılaştırması değil, bir değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isNoneOf(...expected) |
Konunun verilen değerlerin hiçbirine eşit olmadığını iddia eder. Bu bir referans karşılaştırması değil, bir değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isStrictlyEqualTo(expected) |
Konunun belirtilen değere (=== ) kesinlikle eşit olduğunu iddia eder. |
isNotStrictlyEqualTo(expected) |
Konunun 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ırmada 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ırmada 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, bir 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, bir 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 içeren ve başka hiçbir değer içermeyen bir dizi olduğunu iddia eder. Bu bir referans karşılaştırması değil, bir değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri, yinelemeli olarak karşılaştırılır. |
doesNotContainExactly(...expected) |
Konunun, herhangi bir sırada belirtilen değerlerden farklı bir değer grubuna sahip bir dizi olduğunu iddia eder. Bu bir referans karşılaştırması değil, bir değer karşılaştırmasıdır. 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 onaylama işlemi her zaman başarısız olur. |
isEmpty() |
Konunun boş bir dizi veya dize olduğunu iddia eder (uzunluk = 0). Değer bir dizi veya dize değilse onaylama işlemi her zaman başarısız olur. |
isNotEmpty() |
Konunun boş olmayan bir dizi veya dize olduğunu iddia eder (uzunluk > 0). Değer bir dizi veya dize değilse onaylama işlemi her zaman başarısız olur. |
isArray() |
Konu türünün dizi olduğunu iddia eder. |
isBoolean() |
Konu türünün boole olduğunu iddia eder. |
isFunction() |
Konu türünün işlev olduğunu iddia eder. |
isNumber() |
Konu türünün bir sayı olduğunu iddia eder. |
isObject() |
Öznenin türünün 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, belirtilen 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. Örnek API, şablon kodunda güvenle kullanılabilir ancak test modunda değilken çalışmaz. Her test yürütülmeden önce örnekler sıfırlanır.
Söz dizimi
mock(apiName, returnValue);
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
apiName |
dize | Taklit edilecek API'nin adı; require() öğesine iletilen dizenin aynısı |
returnValue |
herhangi bir | API için döndürülecek değer veya API'nin yerine çağrılan bir işlev. returnValue bir işlevse bu işlev Sandboxed API'nin yerine çağrılır; returnValue bir işlev dışında bir şeyse Sandboxed API'nin yerine söz konusu değer döndürülür. |
Örnekler
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
runCode
Belirli bir giriş veri nesnesiyle geçerli test ortamında şablon için kodu (yani, Kod sekmesinin içeriğini) çalıştırır.
Söz dizimi
runCode(data)
Parametreler
Parametre | Tür | Açıklama |
---|---|---|
data |
object (nesne) | Testte kullanılacak veri nesnesi. |
Dönüş Değeri
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
değerini döndürür.
Örnek
runCode({field1: 123, field2: 'value'});