Bu belgede, sunucu taraflı etiketleme için kullanılan API'ler ana hatlarıyla açıklanmaktadır.
addEventCallback
Bir etkinliğin sonunda çağrılacak bir geri çağırma işlevini kaydeder. Geri çağırma, 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 etkinlik hakkında bilgi içeren bir nesne.
Bu API bir etikette kullanıldığında mevcut 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 |
Array |
Etiket verileri nesneleri dizisi. Etkinlik sırasında tetiklenen her etiket bu dizide bir girişe sahip olur. Etiket verileri nesnesi, etiketin kimliğini (id), yürütme durumunu (status) ve yürütme süresini (executionTime) içerir. Etiket verileri, etikette yapılandırılan 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();
}
});
});
Etikette:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
İlişkili izinler
callLater
Bir işlevin eşzamansız olarak çağrılmasını planlar. İşlev, mevcut kod döndürüldükten sonra çağrılır. Bu, setTimeout(<function>, 0) etiketine 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 işleme almak için bu API'yi bir istemcide kullanın. Bir istek alındıktan sonra kapsayıcı ek istemciler ç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 eşzamansız bir geri çağırmada çağrılırsa) istisna oluşturur.
Bir istemci, runContainer API'sini çağırmadan önce bu API'yi kullanarak isteği talep etmelidir.
Örnek
const claimRequest = require('claimRequest');
claimRequest();
Söz dizimi
claimRequest();
İlişkili izinler
Yok.
computeEffectiveTldPlusOne
Belirtilen alanın veya URL'nin etkili üst düzey alanını + 1 (eTLD+1) döndürür. eTLD+1, alanın Genel Ek Listesi kurallarına göre değerlendirilmesiyle hesaplanır. eTLD+1, genellikle çerez oluşturabileceğiniz en üst düzey alandır.
Bağımsız değişken null 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 dönüştürülür. Bağımsız değişken geçerli bir alan veya URL değilse boş bir dize döndürülür. Sunucu, genel sonek listesini getiremiyorsa 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 |
string | 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 sarmalanmış olarak döndürür. Normal ifadeye doğrudan erişemezsiniz. Ancak testRegex API'sine, String.replace(), String.match() ve String.search()'ye iletebilirsiniz.
Normal ifade geçersizse veya sunucuda Re2 kullanılamıyorsa null değerini döndürür.
Bu API, Re2 uygulaması kullanır. Sunucu Docker görüntüsü 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 |
string | Normal ifadenin metni. |
flags |
string | Oluşturulan normal ifade için işaretleri içeren isteğe bağlı bir dize. `g` (global) ve `i` (büyük/küçük harfe duyarlı değil) desteklenir. Diğer tüm karakterler sessizce yoksayılır. |
İlişkili izinler
Yok.
Minimum resim sürümü
decodeUri
Belirtilen URI'deki kodlanmış karakterlerin kodunu çözer. Kod çözümü yapılmış URI'yi 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 |
string |
encodeUri() veya başka yöntemlerle kodlanmış bir URI.
|
İlişkili izinler
Yok.
decodeUriComponent
Belirtilen URI bileşenindeki kodlanmış karakterlerin kodunu çözer. Kod çözümü yapılmış URI bileşenini temsil eden bir dize döndürür. Geçersiz giriş yapıldığında 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 |
string |
encodeUriComponent() veya başka yollarla kodlanmış bir URI bileşeni.
|
İlişkili izinler
Yok.
encodeUri
Özel karakterlerden kaçarak kodlanmış bir Tekdüzen Kaynak Tanımlayıcı (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 |
string | Tam bir URI. |
İlişkili izinler
Yok.
encodeUriComponent
Özel karakterlerden kaçarak kodlanmış bir Tekdüzen Kaynak Tanımlayıcı (URI) döndürür. Sağlanan dizenin URI olarak kodlanmış halini 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 |
string | Bir URI bileşeni. |
İlişkili izinler
Yok.
extractEventsFromMpv1
Gelen bir Measurement Protocol V1 isteğini, Unified Schema biçiminde bir etkinlik listesine çevirir. 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ından aşağıdakilere erişime izin verecek şekilde yapılandırılmalıdır:
bodyquery parameters
extractEventsFromMpv2
Gelen bir Measurement Protocol V2 isteğini, Unified Schema biçiminde bir etkinlik listesine çevirir. 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ından aşağıdakilere erişime izin verecek şekilde yapılandırılmalıdır:
bodyquery 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 |
string | Base64 kodlu dize. |
Örnek
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
İlişkili izinler
Yok.
generateRandom
Belirtilen aralıkta 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 |
string | Çerezin adı. |
noDecode |
boolean |
true ise çerez değerleri döndürülmeden önce kodu çö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 biri |
Yol bileşenlerinin noktalarla ayrıldığı anahtar yolu. Yol bileşenleri, nesnelere ait anahtarlar veya dizilerdeki dizinler olabilir. keyPath bir dize değilse dizeye dönüştürülür.
|
Söz dizimi
getEventData(keyPath);
İlişkili izinler
getGoogleAuth
sendHttpGet veya sendHttpRequest ile kullanıldığında Google Cloud API'leri için bir yetkilendirme üstbilgisi içerecek 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
|
Array | Erişim isteğinde bulunulacak OAuth 2.0 Google API kapsamları dizisi. |
İlişkili izinler
use_google_credentials izni gerekir. İzin, bir veya daha fazla izin verilen kapsamla yapılandırılmalıdır.
getGoogleScript
Önceden belirlenmiş bir Google komut dosyası grubundan bir kaynak alır ve komut dosyası ile ilişkili önbelleğe alma meta verilerini içeren bir promise döndürür.
Promise, script ve metadata olmak üzere iki anahtar içeren bir nesneye çözümlenir. İstek başarısız olursa söz, reason anahtarıyla reddedilir.
metadata nesnesi, kaynak yanıt başlıklarına göre aşağıdaki önbelleğe alma meta verilerini içerir. Her alan yalnızca karşılık gelen başlık kaynak yanıtında varsa bulunur.
{
'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 |
string |
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 getirir.'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 getirir.
|
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekleri aşağıda bulabilirsiniz. |
Seçenekler
| Seçenek | Tür | Açıklama |
|---|---|---|
id |
string |
gtag ölçüm kimliğine sahip 'GTAG' ve web kapsayıcı kimliğine sahip 'GTM' için geçerlidir (ör. GTM-XXXX).
|
debug |
herhangi biri | Doğruysa ölçüm komut dosyasının hata ayıklama sürümünü ister ve döndürür. |
timeout |
number |
İstek zaman aşımı (milisaniye cinsinden). Pozitif olmayan değerler yoksayılır. İstek zaman aşımına uğrarsa geri çağırma, komut dosyası değeri için undefined, 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ğıdaki öğelere erişime izin verecek şekilde yapılandırılmalıdır:
- Google alan adlarına izin ver
getRemoteAddress
İsteğin kaynağı olan IP adresinin dize gösterimini döndürür. Örneğin, Yönlendirildi ve X-Yönlendirildi-For gibi istek başlıklarını okuyarak 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 yapsa da sonucun doğru olacağını garanti edemez.
Söz dizimi
getRemoteAddress();
İlişkili izinler
read_request izni gerekir. İzin, en azından aşağıdakilere erişime izin verecek şekilde yapılandırılmalıdır:
- Üstbilgiler
ForwardedveX-Forwarded-For - Uzak IP Adresi
getRequestBody
İstek gövdesi varsa dize olarak, yoksa undefined olarak döndürür.
Söz dizimi
getRequestBody();
İlişkili izinler
getRequestHeader
Adlandırılmış istek başlığının değerini, varsa dize olarak, 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 |
string | Başlık 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 bu işlev '/foo' değerini döndürü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 kodlanmış değerini dize olarak veya parametre mevcut değilse undefined olarak döndürür. Parametre sorgu dizesinde tekrarlanıyorsa 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 |
string | Sorgu parametresinin adı. |
İlişkili izinler
getRequestQueryParameters
Gelen HTTP isteğinin sorgu parametrelerini, sorgu parametre adlarını karşılık gelen değerlere eşleyen bir nesne olarak döndürür. Parametre adları ve değerleri kod çö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, baştaki soru işareti olmadan dize olarak veya istek URL'si sorgu dizesi içermiyorsa boş 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şkili izinler
getTimestamp
Kullanımdan kaldırıldı. getTimestampMillis tercih edilir.
Date.now() tarafından döndürüldüğü gibi, Unix epoch'tan bu yana geçen geçerli saati milisaniye cinsinden 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 epoch'tan bu yana geçen geçerli saati milisaniye cinsinden 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 |
|---|---|
| string | 'string' |
| number | 'number' |
| boolean | 'boolean' |
| null | 'null' |
| undefined | 'undefined' |
| Array | 'array' |
| Nesne | 'object' |
| İşlev | 'function' |
Örnek
const getType = require('getType');
const type = getType(value);
if (type === 'string') {
// Handle string input.
} else if (type === 'number') {
// Handle numeric input.
} else {
logToConsole('Unsupported input type: ', type);
}
Söz dizimi
getType(value);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
value |
herhangi biri | Giriş değeri. |
İlişkili izinler
Yok.
hmacSha256
SHA-256 ile Karma Tabanlı Mesaj Doğrulama Kodu (HMAC) kullanarak kodlanmış bir imza hesaplar. Varsayılan olarak base64url kodlaması kullanılır.
Bu API'yi kullanmak için sunucudaki SGTM_CREDENTIALS ortam değişkenini aşağıdaki biçimde UTF-8 kodlu bir JSON anahtar dosyasının yoluna ayarlayın:
{
"keys": {
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
}
Değerler, base64 kodlu HMAC anahtarlarıdı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 |
string | HMAC değerini hesaplamak için kullanılacak veriler. |
keyId
|
string | Kullanılacak anahtara atıfta bulunan JSON anahtar dosyasındaki 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
| Seçenek | Tür | Açıklama |
|---|---|---|
outputEncoding
|
string | Dönüş değeri için 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 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ş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, her biri gerekirse dizeye dönüştürülen ve konsola kaydedilen bir veya daha fazla bağımsız değişken alır.
İlişkili izinler
makeInteger
Belirtilen değeri sayıya (tam sayı) dönüştürür.
Söz dizimi
makeInteger(value);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
value |
herhangi bir tür | Dönüştürülecek değer. |
İliş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
Belirtilen 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 öğesine 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 dönüştürme:
{
'k1': 'v1',
'k2': 'v2'
}
Nesne döndürür: Anahtar/değer çiftlerinin dönüştürülmüş Map'si eklenmiştir veya aksi takdirde null.
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 simgesinin tablodaki bir satırı temsil ettiği bir harita listesidir. Bir satır nesnesindeki her özellik adı, sütun adıdır ve özellik değeri, satırdaki sütun değeridir.
|
keyColumnName |
string |
Değerleri dönüştürülen Map dosyasında anahtar olacak sütunun adı.
|
valueColumnName |
string |
Değerleri dönüştürülmüş Map değerleri olacak sütunun adı.
|
İlişkili izinler
Yok.
parseUrl
Belirli bir URL'nin tüm bileşenlerini içeren bir nesne döndürür. Bu nesne, URL nesnesine benzer.
Bu API, bozuk URL'ler için undefined değerini döndürür. Doğru 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 |
string | Ayrıştırılacak tam URL. |
İlişkili izinler
Yok.
returnResponse
setCookie, setPixelResponse, setResponseBody, setResponseHeader ve setResponseStatus dahil olmak üzere yanıtı değiştiren API'leri kullanarak daha önce diğer şablonlar tarafından ayarlanan yanıtı temizler. Varsayılan olarak HTTP durum kodu 200, boş gövde ve üstbilgi yok olarak ayarlanır.
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ı yürütülürken çağrılırsa kapsayıcı tekrar çalıştırılır.
onComplete ve onStart geri çağırmaları, bindToEvent adlı bir işlev alır. Etkinlik bağlamında bir API çalıştırmak için bindToEvent öğesini kullanın.
Daha fazla bilgi için addEventCallback örneğine bakın.
Bu API'nin bir istemci şablonundan kullanılması önerilir.
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
// Runs the container with a simple pageview event and then returns a response.
runContainer({'event_name': 'pageview'}, () => returnResponse());
Söz dizimi
runContainer(event, onComplete, onStart);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
event |
object | Etkinlik parametreleri. |
onComplete |
function | Tüm etiketler etkinleşmeyi tamamladıktan sonra çağrılan 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 kullanarak tek bir etkinlik gönderir ve location anahtarıyla bir nesneye çözümlenen veya reason anahtarıyla bir nesneye reddedilen bir promise döndürür. Hedef olan Google Analytics, etkinlik verilerindeki ölçüm kimliğine dayanır.
location alanı, varsa location üstbilgisine 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çimindeki etkinlik. |
İlişkili izinler
send_http izni gerekir. İzin, en az aşağıdaki öğelere erişime 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 promise döndürür.
Çözülen sonuç, üç anahtar içeren bir nesnedir: statusCode, headers ve body. İstek başarısız olursa (ör. geçersiz URL, ana bilgisayara giden yol yok, SSL anlaşması başarısızlığı vb.) söz, {reason:
'failed'} ile reddedilir. timeout seçeneği ayarlanmışsa ve istek zaman aşımına uğramışsa söz reddedilir ve şu hata döndürülür: {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 |
string | İstenen URL. |
options
|
object | İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekler bölümüne bakın.) |
Seçenekler
| Seçenek | Tür | Açıklama |
|---|---|---|
headers |
string | Ek istek üst bilgileri. |
timeout
|
number | İsteğin iptal edilmeden önceki zaman aşımı süresi (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır. |
authorization
|
object | İsteğe bağlı yetkilendirme nesnesi, googleapis.com için istekte bulunurken yetkilendirme başlıklarını eklemek üzere getGoogleAuth çağrısından. |
İlişkili 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 çözümlenen bir promise döndürür.
Çözülen sonuç, üç anahtar içeren bir nesnedir: statusCode, headers ve body. İstek başarısız olursa (ör. geçersiz URL, ana bilgisayara giden yol yok, SSL anlaşması başarısızlığı vb.) söz, {reason:
'failed'} ile reddedilir. timeout seçeneği ayarlanmışsa ve istek zaman aşımına uğramışsa söz reddedilir ve şu hata döndürülür: {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 |
string | İstenen URL. |
options
|
object | İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekler bölümüne bakın.) |
body |
string | İsteğe bağlı istek gövdesi. |
Seçenekler
| Seçenek | Tür | Açıklama |
|---|---|---|
headers |
string | Ek istek üst bilgileri. |
method |
object | İstek yöntemi. Varsayılan olarak GET değerine ayarlanır. |
timeout
|
number | İsteğin iptal edilmeden önceki zaman aşımı süresi (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır. |
authorization
|
object | İsteğe bağlı yetkilendirme nesnesi, googleapis.com için istekte bulunurken yetkilendirme başlıklarını eklemek üzere getGoogleAuth çağrısından. |
İ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ü, Google Analytics için Google etiketi ve Google Analytics: GA Etkinliği web etiketlerinde desteklenir. Sunucu kapsayıcısı URL'sini yapılandırmanız gerekir. Daha fazla bilgi için talimatlara bakın.
Bu API, gelen istek komut protokolünü desteklemiyorsa veya yanıt zaten temizlenmişse 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 |
string | Tarayıcıya gönderilecek URL. |
İlişkili izinler
setCookie
Belirtilen seçeneklerle bir çerez ayarlar veya siler.
Çerez silmek için, çerezin oluşturulduğu yola ve alana sahip bir çerez ayarlayıp buna geçmişte kalan bir geçerlilik tarihi değeri (ör. "Thu, 01 Jan 1970 00:00:00 GMT") atamak gerekir.
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 |
string | Çerez adı. Ad büyük/küçük harfe duyarlı değildir. |
value |
string | Ç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 |
boolean |
Doğruysa ç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, şu strateji kullanılarak otomatik şekilde hesaplanır:
- Varsa
Forwardedüstbilgisinin eTLD+1'i. - Varsa
X-Forwarded-Hostüstbilgisinin eTLD+1'i. Hostüstbilgisinin eTLD+1'i.
- Varsa
expires: Çerezin maksimum kullanım ömrü. Bu, UTC biçimli bir tarih dizesi olmalıdır (ör. "Sat, 26 Oct 1985 08:21:00 GMT"). Hem
expireshem demax-ageayarlanırsamax-ageöncelikli olur.httpOnly:
trueise JavaScript'in çereze erişmesini yasaklar.max-age: Çerezin süresinin dolmasına kadar geçecek saniye sayısı. Sıfır veya negatif bir sayı, çerezlerin süresini hemen sona erdirir. Hem
expireshem demax-ageayarlanırsamax-ageöncelikli olur.path: İstenen URL'de bulunması gereken bir yol. Aksi takdirde tarayıcı, çerez üst bilgisini göndermez.
secure:
trueolarak ayarlanırsa çerez yalnızcahttps:uç noktasından istek yapıldığında sunucuya gönderilir.sameSite: Çerezin, kaynaklar arası isteklerle gönderilmemesi gerektiğini belirtir.
'strict','lax'veya'none'olmalıdır.
İlişkili izinler
setPixelResponse
Yanıt gövdesini 1x1 GIF olarak ayarlar, Content-Type başlığını "image/gif" olarak ayarlar, kullanıcı aracıları yanıtı önbelleğe almayacak şekilde önbelleğe alma başlıklarını 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şkili izinler
access_response izni gerekir. İzin, en azından aşağıdakilere erişime izin verecek şekilde yapılandırılmalıdır:
headers- Aşağıdaki anahtarlara izin verilmelidircontent-typecache-controlexpirespragma
bodystatus
setResponseBody
Yanıt gövdesini bağımsız değişkene 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 |
string | Yanıt gövdesi olarak ayarlanacak değer. |
encoding |
string |
Yanıt gövdesinin karakter kodlaması (varsayılan olarak 'utf8'). Desteklenen değerler arasında 'ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'latin1', 'binary' ve 'hex' yer alır.
|
İlişkili izinler
access_response izni gerekir. İzin, en azından aşağıdakilere erişime izin verecek şekilde yapılandırılmalıdır:
body
setResponseHeader
Döndürülecek yanıtta bir üstbilgi ayarlar. Bu ada sahip bir başlık (büyük/küçük harfe duyarsız) daha önce bu API tarafından ayarlanmışsa sonraki çağrı, önceki arayan tarafından ayarlanan değeri üzerine yazar veya temizler.
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 |
string | Başlık adı. HTTP üst bilgisi adları büyük/küçük harfe duyarlı olmadığından üst bilgi adı küçük harfe dönüştürülür. |
value |
string undefined | Üstbilgi değeri. Null veya tanımlanmamışsa bu, döndürülecek yanıttan adlandırılmış başlığı temizler. |
İlişkili izinler
access_response izni gerekir. İzin, en azından aşağıdakilere 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 |
number | Döndürülecek HTTP durum kodu. |
İlişkili izinler
access_response izni gerekir. İzin, en azından aşağıdakilere 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ı belirtmediği sürece base64 ile kodlanmış özetle geri çağırma işlemini başlatır.
Bu API imzası ve davranışı, web kapsayıcıları için sha256 API'siyle eşleşir. Ancak sunucu kapsayıcılarındaki özel şablonlar, daha basit bir kod için sha256Sync API'sini 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 |
string | Karma oluşturulacak dize. |
onSuccess |
function |
options nesnesi farklı bir çıkış kodlaması belirtmediği sürece, base64 ile kodlanmış sonuç özetle birlikte çağrılır.
|
options |
object |
Çıkış kodlamasını belirtmek için isteğe bağlı seçenekler nesnesi. Belirtilmişse nesne, outputEncoding anahtarını base64 veya hex değerlerinden biriyle içermelidir.
|
İlişkili izinler
Yok.
sha256Sync
options nesnesi farklı bir çıkış kodlaması belirtmediği sürece, girişteki SHA-256 özetini base64 ile kodlanmış olarak 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 |
string | Karma oluşturulacak dize. |
options |
object |
Çıkış kodlamasını belirtmek için isteğe bağlı seçenekler nesnesi. Belirtilmişse nesne, outputEncoding anahtarını base64 veya hex değerlerinden biriyle 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ütülmeleri arasında paylaşılmasına olanak tanır. Şablon veri depolama alanında saklanan veriler, kapsayıcıyı çalıştıran sunucuda kalıcı olur. Çoğu durumda, kapsayıcıyı çalıştıran birden fazla sunucu vardır. Bu nedenle, verilerin şablon verisi depolama alanında saklanması, sonraki her isteğin verilere erişebileceğini garanti etmez.
"templateDataStorage" adındaki "data" (veri), bu API kullanılarak yalnızca düz, işlevsel olmayan veri türlerinin depolanabileceğini ifade eder. 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 dizeyi, createRegex API ile oluşturulan bir normal ifadeye göre test eder. Normal ifade eşleşirse true
değerini döndürür. Aksi takdirde false değerini döndürür.
Global işaretçiyle oluşturulan bir normal ifade durum bilgisi içerir. Ayrıntılar için RegExp belgelerine bakın.
Örnek
const createRegex = require('createRegex');
const testRegex = require('testRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// createRegex returns null if the regex is invalid or Re2 is not available.
if (domainRegex === null) return;
// Returns true
testRegex(domainRegex, 'example.com/foobar');
Söz dizimi
testRegex(regex, string);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
regex |
Nesne | createRegex API'den döndürülen, test edilecek normal ifade. |
string |
string | 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 |
string | 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
| Seçenek | 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şkili izinler
Yok.
BigQuery
BigQuery işlevlerini sağlayan bir nesne döndürür.
BigQuery.insert işlevi, verilerin BigQuery tablosuna yazılmasına olanak tanır. Başarılı bir ekleme işleminde çözümlenen veya hata durumunda reddedilen bir promise döndürür.
Ekleme başarılı olduğunda söz, herhangi bir bağımsız değişken olmadan çözümlenir.
Ekleme işlemi başarısız olduğunda, hata nedeni ve hata oluşursa satır nesnesi içeren bir nesne listesiyle söz reddedilir. İsteğin bir kısmı başarıyla tamamlanırken diğer kısımları tamamlanamayabilir. Bu durumda, hangi satırların eklendiğini ayırt etmeye yardımcı olmak için satır nesnesi içeren her satırla ilgili hata listesiyle birlikte söz reddedilir (Aşağıdaki Hata Örnekleri bölümüne bakın). Daha fazla bilgi için BigQuery'nin hata mesajlarıyla ilgili belgelerini inceleyin.
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ı ve iki zorunlu parametre vardır:
|
rows |
Array | Tabloya eklenecek satırlar. |
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: 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 |
boolean | 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 |
boolean | true olarak ayarlanırsa geçersiz satırlar olsa bile isteğin tüm geçerli satırları eklenir. Varsayılan olarak false değerine ayarlanır. |
Bir modül bulunamadı hatası, sunucu kapsayıcınızın büyük olasılıkla BigQuery modülünü henüz içermeyen, resmimizin 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 hata genellikle reason anahtarına sahip bir hata nesnesi içerir:
[{reason: 'invalid'}]
Bir ekleme hatası, errors dizisi ve row nesnesi içeren birden fazla hata nesnesi içerebilir. Aşağıda, yalnızca bir satırda hata olmasına rağmen iki satırın eklenmesiyle ilgili 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şlevlerini sağlayan bir nesne döndürür.
Bu API yalnızca yerel modda Firestore'u destekler, Datastore modunda Firestore'u desteklemez. Ayrıca API yalnızca varsayılan veritabanının kullanılmasını destekler.
Firestore.read
Firestore.read işlevi, Firestore dokümanından veri okur ve iki anahtar içeren bir nesneye çözümlenen bir promise döndürür: id ve data. Doküman yoksa söz, reason anahtarı not_found değerine eşit olan bir nesneyle reddedilir.
Söz dizimi
Firestore.read(path[, options]);
| Parametre | Tür | Açıklama |
|---|---|---|
path |
string | Belgenin veya koleksiyonun yolu. "/" ile başlayamaz veya bitemez. |
options |
object | İ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 |
string | İsteğe bağlı. Google Cloud Platform proje kimliği. Belirtilmezse, proje kimliği için projectId izni ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId ortam değişkeninden alınır.GOOGLE_CLOUD_PROJECTaccess_firestore Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış demektir. |
disableCache |
boolean | İsteğe bağlı. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma özelliği varsayılan olarak etkindir. Bu özellik, sonuçları istek süresi boyunca önbelleğe alır. |
transaction |
string | İsteğe bağlı. Firestore.runTransaction() işlevinden alınan değer. İşlemi, bir işlem içinde kullanılacak şekilde 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, verileri bir Firestore dokümanına veya koleksiyonuna yazar. Yol bir koleksiyona aitse rastgele oluşturulmuş 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 belgenin kimliğiyle sonuçlanan bir söz döndürür. İşlem seçeneği kullanılıyorsa API yine bir söz 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 |
string | Belgenin veya koleksiyonun yolu. "/" ile başlayamaz veya bitemez. |
input |
object | Belgeye yazılacak değer. Birleştirme seçeneği ayarlanırsa API, girişten alınan anahtarları dokümanda birleştirir. |
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: 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 |
string | İsteğe bağlı. Google Cloud Platform proje kimliği. Belirtilmezse, proje kimliği için projectId izni ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId ortam değişkeninden alınır.GOOGLE_CLOUD_PROJECTaccess_firestore Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış demektir. |
merge |
boolean | İsteğe bağlı. true olarak ayarlanırsa girişten alınan anahtarlar dokümanda birleştirilir. Aksi takdirde yöntem, dokümanın tamamını geçersiz kılar. Varsayılan olarak false değerine ayarlanır. |
transaction |
string | İsteğe bağlı. Firestore.runTransaction() işlevinden alınan değer. İşlemi, bir işlem içinde kullanılacak şekilde işaretler. |
Örnek
const Firestore = require('Firestore');
const input = {key1: 'value1', key2: 12345};
Firestore.write('collection/document', input, {
projectId: 'gcp-cloud-project-id',
merge: true,
}).then((id) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
Firestore.query
Firestore.query işlevi, verilen koleksiyonu sorgular ve sorgu koşullarıyla eşleşen Firestore dokümanları dizisine çözümlenen bir söz döndürür. Firestore dokümanı nesnesi, yukarıda Firestore.read bölümünde listelenenle aynıdır. Sorgu koşullarıyla eşleşen belge yoksa döndürülen söz, boş bir diziyle sonuçlanır.
Söz dizimi
Firestore.query(collection, queryConditions[, options]);
| Parametre | Tür | Açıklama |
|---|---|---|
collection |
string | Koleksiyonun yolu. "/" ile başlayamaz veya bitemez. |
queryConditions |
Array | Sorgu koşulları dizisi. Her sorgu, üç değer içeren bir dizi biçiminde gelir: key, operator ve expectedValue. Örneğin:
[[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]]. Koşullar, sorgu sonucunu oluşturmak için birlikte VE'lenir. Uyumlu sorgu operatörlerinin listesi için lütfen Firestore'un sorgu operatörleri başlıklı makaleyi inceleyin. |
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 |
string | İsteğe bağlı. Google Cloud Platform proje kimliği. Belirtilmezse, proje kimliği için projectId izni ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId ortam değişkeninden alınır.GOOGLE_CLOUD_PROJECTaccess_firestore Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış demektir. |
disableCache |
boolean | İsteğe bağlı. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma özelliği varsayılan olarak etkindir. Bu özellik, sonuçları istek süresi boyunca önbelleğe alı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 |
string | İsteğe bağlı. Firestore.runTransaction() işlevinden alınan değer. İşlemi, bir işlem içinde kullanılacak şekilde 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 yazma işlemlerini yapmasına olanak tanır. Eşzamanlı 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, hata vererek reddeder. Bu API, işlem başarılı olursa her yazma işlemi için belge kimlikleri dizisine çözümlenen bir söz döndürür ve başarısız olursa hatayla reddeder.
Söz dizimi
Firestore.runTransaction(callback[, options]);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
callback |
function | Dize işlem kimliğiyle çağrılan bir geri arama. İşlem kimliği, okuma/yazma/sorgu API çağrılarına iletilebilir. Bu geri çağırma işlevi bir promise döndürmelidir. Geri arama, 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 |
string | İsteğe bağlı. Google Cloud Platform proje kimliği. Belirtilmezse, proje kimliği için projectId izni ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId ortam değişkeninden alınır.GOOGLE_CLOUD_PROJECTaccess_firestore Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış demektir. |
Ö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ş, dizeye dönüştürülür.
stringify() işlevi, girişi bir JSON dizesine dönüştürür. Değer ayrıştırılamıyorsa (ör. nesnede döngü varsa) yöntem undefined 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ılara 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 iletilmesine olanak tanımak için birlikte çalışır.
addMessageListener
Belirli türde bir iletiyi dinleyen bir işlev ekler. Bu türdeki bir ileti sendMessage API'si kullanılarak gönderildiğinde (genellikle bir etiket tarafından) geri çağırma eşzamanlı olarak çalıştırılır. Geri çağırma işlemi iki parametreyle çalıştırılır:
messageType:stringmessage:Object
Geri arama bir istemciye eklenirse geri arama, istemcinin oluşturduğu tüm etkinliklerde mesaj alır. Geri çağırma yalnızca belirli bir etkinlikten mesaj alacaksa 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 |
string | Dinlenecek mesaj türü. Değer bir dize değilse dizeye dönüştürülür. |
callback |
function | Geçerli mesaj türünde bir mesaj gönderildiğinde çalıştırılacak geri çağırma. Geri çağırma bir işlev değilse API 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şkili izinler
use_message izni gerekir. İzin, en azından aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
listenveyalisten_and_senddeğerine sahipUsagemesaj türü.
hasMessageListener
Belirtilen mesaj türü için bir mesaj dinleyicisi 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
Belirtilen türde bir iletiyi kayıtlı bir dinleyiciye 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 |
string | Gönderilecek mesaj türü. Değer bir dize değilse dizeye 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ından aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
listen_and_sendveyasenddeğerine sahipUsagemesaj türü.
Object
Object yöntemlerini 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 dizisini, 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 numaralandırılabilir özellik değerlerinden oluşan bir diziyi, 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.
entries() yöntemi, Standart Kitaplık Object.entries() davranışını sağlar. Belirli bir nesnenin kendi numaralandırılabilir özellik-değer çiftlerinden oluşan bir diziyi, for...in... döngüsünün döndürdüğü sırayla döndürür.[key, value] 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. Dondurulmuş bir nesne artık değiştirilemez. Nesnenin dondurulması, nesneye yeni özellikler eklenmesini, mevcut özelliklerin kaldırılmasını ve mevcut özelliklerin değerlerinin değiştirilmesini engeller. freeze(), iletilen nesneyi döndürür. Bir ilkel veya boş bağımsız değişken, dondurulmuş bir nesneymiş gibi değerlendirilir ve döndürülür.
delete() yöntemi, Standart Kitaplık delete operatörünün davranışını sağlar. Nesne dondurulmamışsa belirtilen anahtarı nesneden kaldırır.
Standart kitaplık silme operatörü gibi, ikinci giriş değeri (keyToDelete) mevcut olmayan bir anahtarı belirtse bile ilk giriş değeri (objectInput) dondurulmamış bir nesne ise true değerini döndürür. Diğer tüm durumlarda false değerini döndürür. Ancak, Standart Kitaplık silme operatöründen şu yönleriyle farklıdır:
keyToDelete, iç içe yerleştirilmiş bir anahtarı belirten nokta ile ayrılmış bir dize olamaz.delete(), bir diziden öğe 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 biri | Anahtarları numaralandırılacak nesne. Giriş bir nesne değilse nesneye dönüştürülür. |
Object.values
| Parametre | Tür | Açıklama |
|---|---|---|
| objectInput | herhangi biri | Değerleri numaralandırılacak nesne. Giriş bir nesne değilse nesneye dönüştürülür. |
Object.entries
| Parametre | Tür | Açıklama |
|---|---|---|
| objectInput | herhangi biri | Anahtar/değer çiftlerinin numaralandırılacağı nesne. Giriş bir nesne değilse nesneye dönüştürülür. |
Object.freeze
| Parametre | Tür | Açıklama |
|---|---|---|
| objectInput | herhangi biri | Dondurulacak nesne. Giriş bir nesne değilse dondurulmuş nesne olarak değerlendirilir. |
Object.delete
| Parametre | Tür | Açıklama |
|---|---|---|
| objectInput | herhangi biri | Silinecek nesnenin anahtarı. |
| keyToDelete | string | 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
Sözlerle etkileşim kurmak için yöntemler sağlayan bir nesne döndürür.
Sözler, işlevsel olarak JavaScript sözlerine eşdeğerdir. Her örnekte, bir Promise döndüren üç yöntem bulunur. Bu yöntemler, bir Promise yerine getirildiğinde daha fazla işlem yapılmasına olanak tanır:
.then()- Hem çözülen hem de reddedilen destek kayıtlarını işler. Parametre olarak iki geri çağırma alır: biri başarılı durum, diğeri ise başarısız durum için..catch()- Yalnızca reddedilen durumları işler. Parametre olarak bir geri çağırma işlevi alır..finally(): Kodun, sözün yerine getirilip getirilmediğine bakılmaksızın çalıştırılmasını sağlar. Parametre olarak, bağımsız değişken olmadan çağrılan bir geri çağırma işlevi alır.
Bir söz döndüren değişken, sözün çözümlenen değerine veya söz 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 söz 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 |
Array | Değerler veya sözler dizisi. Giriş bir söz değilse giriş, sözün çözümlenmiş değeriymiş gibi iletilir. Giriş bir dizi değilse hata verir. |
Örnek
const Promise = require('Promise');
const sendHttpGet = require('sendHttpGet');
return Promise.all(['a', sendHttpGet('https://example.com')])
.then((results) => {
// results will equal: ['a', {statusCode: 200, headers: {}, body: ''}]
});
İlişkili izinler
Yok.
Promise.create
JavaScript sözüyle işlevsel olarak eşdeğer bir söz oluşturur.
Söz dizimi
Promise.create(resolver);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
resolver |
function | Resolve ve reject olmak üzere 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ücü 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şkili izinler
Yok.
Test API'leri
Bu API'ler, Google Etiket Yöneticisi'ndeki özel şablonlar için testler oluşturmak üzere korumalı alan JavaScript testleriyle birlikte ç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 onaylamalar yapmak için kullanılabilecek bir eşleştirici nesnesi döndürür.
Söz dizimi
assertApi(apiName)
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
apiName |
string | Kontrol edilecek API'nin adı; require() öğesine iletilen dizeyle aynıdır.
|
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'si, Google'ın [Truth] kitaplığına göre modellenmiştir. Bir konuyla ilgili değer hakkında akıcı bir şekilde onaylama yapmak için kullanılabilecek bir nesne döndürür. Bir onaylama hatası, testi hemen durdurur ve başarısız olarak işaretler. Ancak bir testteki hata diğer test durumlarını etkilemez.
Söz dizimi
assertThat(actual, opt_message)
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
actual |
herhangi biri | Akıcılık kontrollerinde kullanılacak değer. |
opt_message |
string | Onaylama başarısız olursa isteğe bağlı olarak yazdırılacak mesaj. |
Eşleştiriciler
| Eşleştirici | Açıklama |
|---|---|
isUndefined() |
Konunun undefined olduğunu onaylar. |
isDefined() |
Konunun undefined olmadığını iddia eder. |
isNull() |
Konunun null olduğunu onaylar. |
isNotNull() |
Konunun null olmadığını iddia eder. |
isFalse() |
Konunun false olduğunu onaylar. |
isTrue() |
Konunun true olduğunu onaylar. |
isFalsy() |
Konunun yanlış olduğunu onaylar. Yanlış değerler şunlardır:
undefined, null, false,
NaN, 0 ve "" (boş dize). |
isTruthy() |
Konunun doğru olduğunu iddia eder. Yanlış değerler şunlardır:
undefined, null, false,
NaN, 0 ve "" (boş dize). |
isNaN() |
Öznenin NaN değeri olduğunu onaylar. |
isNotNaN() |
Konunun NaN dışında herhangi bir değer olduğunu onaylar. |
isInfinity() |
Konunun pozitif veya negatif sonsuzluk olduğunu onaylar. |
isNotInfinity() |
Öznenin pozitif veya negatif sonsuzluk dışında herhangi bir değer olduğunu onaylar. |
isEqualTo(expected) |
Konunun, verilen değere eşit olduğunu onaylar. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri özyinelemeli olarak karşılaştırılır. |
isNotEqualTo(expected) |
Konunun, verilen değere eşit olmadığını onaylar. 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) |
Konunun, verilen değerlerden birine eşit olduğunu onaylar. 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) |
Konunun, verilen değerlerden herhangi birine eşit olmadığını onaylar. 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) |
Konunun, verilen değere tam olarak eşit (===) olduğunu onaylar. |
isNotStrictlyEqualTo(expected) |
Öznenin, belirtilen değere tam olarak eşit olmadığını (!==) onaylar. |
isGreaterThan(expected) |
Öznenin, sıralı bir karşılaştırmada verilen değerden (>) büyük olduğunu onaylar. |
isGreaterThanOrEqualTo(expected) |
Öznenin, sıralı bir karşılaştırmada belirtilen değerden (>=) büyük veya ona eşit olduğunu onaylar. |
isLessThan(expected) |
Öznenin, sıralı bir karşılaştırmada verilen değerden (<) küçük olduğunu onaylar. |
isLessThanOrEqualTo(expected) |
Öznenin, sıralı bir karşılaştırmada verilen değerden (<=) küçük veya ona eşit olduğunu onaylar. |
contains(...expected) |
Öznenin, verilen değerlerin tümünü herhangi bir sırada içeren bir dizi veya dize olduğunu onaylar. 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) |
Konunun, belirtilen değerlerden hiçbirini içermeyen bir dizi veya dize olduğunu onaylar. 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 ve başka değer içermeyen bir dizi olduğunu onaylar. 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 kümesi içeren bir dizi olduğunu herhangi bir sırada onaylar. Bu bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
hasLength(expected) |
Konunun, belirtilen uzunlukta bir dizi veya dize olduğunu onaylar. Değer bir dizi veya dize değilse onaylama her zaman başarısız olur. |
isEmpty() |
Konunun boş bir dizi veya dize olduğunu (uzunluk = 0) onaylar. Değer bir dizi veya dize değilse onaylama her zaman başarısız olur. |
isNotEmpty() |
Konunun boş olmayan bir dizi veya dize olduğunu (uzunluk > 0) onaylar. Değer bir dizi veya dize değilse onaylama her zaman başarısız olur. |
isArray() |
Öznenin türünün dizi olduğunu onaylar. |
isBoolean() |
Öznenin türünün Boole olduğunu onaylar. |
isFunction() |
Öznenin türünün bir işlev olduğunu onaylar. |
isNumber() |
Konunun türünün sayı olduğunu onaylar. |
isObject() |
Konunun türünün bir nesne olduğunu onaylar. |
isString() |
Konunun türünün dize olduğunu onaylar. |
Ö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 testi hemen başarısız kılar ve sağlanan mesajı (varsa) yazdırır.
Söz dizimi
fail(opt_message);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
opt_message |
string | İsteğe bağlı hata mesajı metni. |
Örnek
fail('This test has failed.');
mock
mock API, korumalı alan API'lerinin davranışını geçersiz kılmanıza olanak tanır. Mock API, şablon kodunda güvenle kullanılabilir ancak yalnızca test modunda çalışır.
Her test çalıştırılmadan önce sahte veriler sıfırlanır.
Söz dizimi
mock(apiName, returnValue);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
apiName |
string | Sahte API'nin adı; require() öğesine iletilen dizeyle aynıdır. |
returnValue |
herhangi biri | API veya API yerine çağrılan bir işlev için döndürülecek değer. returnValue bir işlevse bu işlev, korumalı alan API'si yerine çağrılır. returnValue işlev dışında bir şeyse bu değer, korumalı alan API'si yerine 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, şablon kodunda güvenle kullanılabilir ancak yalnızca test modunda çalışır. Her test çalıştırılmadan önce sahte veriler sıfırlanır.
Söz dizimi
mockObject(apiName, objectMock);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
apiName |
string | Sahte API'nin adı; require() öğesine iletilen dizeyle aynıdır. |
objectMock |
object | API veya API yerine çağrılan bir işlev için döndürülecek değer. Bir 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 (ör. Kod sekmesinin içeriği) geçerli test ortamında belirli bir giriş verisi nesnesiyle çalıştırır.
Söz dizimi
runCode(data)
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
data |
object | Testte kullanılacak veri nesnesi. |
Dönüş değeri
Değişken şablonları için bir değişkenin değerini, diğer tüm şablon türleri için undefined değerini döndürür.
Örnek
runCode({field1: 123, field2: 'value'});