Bu belgede, sunucu tarafı etiketleme için 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 ait tüm etiketler yürütüldüğünde çağrılır. Geri çağırma işlevine iki değer iletilir: işlevi çağıran kapsayıcının kimliği ve etkinlikle ilgili bilgileri içeren bir nesne.
Bu API bir etikette kullanıldığında mevcut etkinlikle ilişkilendirilir. Bu API bir istemcide kullanıldığında runContainer API'sinin bindToEvent işlevi kullanılarak belirli bir etkinliğe bağlanmalıdır. Daha fazla bilgi için örneğe bakın.
Söz dizimi
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
callback |
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 verisi nesneleri dizisi. Etkinlik sırasında etkinleşen her etiketin bu dizide bir girişi 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.
|
İstemcide:
const addEventCallback = require('addEventCallback');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const logToConsole = require('logToConsole');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((evt, i) => {
runContainer(evt, /* onComplete= */ (bindToEvent) => {
bindToEvent(addEventCallback)((containerId, eventData) => {
logToConsole('Event Number: ' + i);
eventData.tags.forEach((tag) => {
logToConsole('Tag ID: ' + tag.id);
logToConsole('Tag Status: ' + tag.status);
logToConsole('Tag Execution Time: ' + tag.executionTime);
});
});
if (events.length === ++eventsCompleted) {
returnResponse();
}
});
});
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) değerine eşdeğerdir.
Örnek
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
Söz dizimi
callLater(function)
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
function |
function | Çağrılacak işlev. |
İlişkili izinler
Yok.
claimRequest
İsteği göndermek 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 etiket 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) bir istisna oluşturur.
İstemci, runContainer API'yi çağırmadan önce bu API'yi kullanarak isteği talep etmelidir.
Örnek
const claimRequest = require('claimRequest');
claimRequest();
Söz dizimi
claimRequest();
İliş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 adının Genel Ek Listesi kurallarına göre değerlendirilmesiyle hesaplanır. eTLD+1, genellikle çerez ayarlayabileceğiniz en üst düzey alan adıdır.
Bağımsız değişken null veya tanı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 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 |
string | eTLD+1'in hesaplanacağı 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ını 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 ifadenin işaretlerini 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. Kodu çözü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. Kodu çözü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 Tek Tip Kaynak Tanımlayıcı (URI) döndürür. Sağlanan dizeyi URI olarak kodlanmış şekilde temsil eden bir dize döndürür.
Örnek
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
Söz dizimi
encodeUri(uri);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
uri |
string | Tam bir URI. |
İlişkili izinler
Yok.
encodeUriComponent
Özel karakterleri kodlayarak kodlanmış bir Tek Tip Kaynak Tanımlayıcısı (URI) döndürür. Sağlanan dizeyi URI olarak kodlanmış şekilde temsil eden bir dize döndürür.
Örnek
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
Söz dizimi
encodeUriComponent(str);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
str |
string | URI'nin bir 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 gerektirir. İzin, en azından şunlara erişim izni verecek şekilde yapılandırılmalıdır:
bodyquery parameters
extractEventsFromMpv2
Gelen bir Measurement Protocol V2 isteğini Birleştirilmiş Şema biçimindeki 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 gerektirir. İzin, en azından şunlara erişim izni 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 olası minimum değeri (kapsayıcı). |
max |
number | Döndürülen tam sayının olası maksimum değeri (kapsayıcı). |
İ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 |
boole |
true ise çerez değerleri döndürülmeden önce kodu çözülmez. Varsayılan değer false'dı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 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 |
any |
Yol bileşenlerinin noktalarla ayrıldığı anahtar yolu. Yol bileşenleri, nesnelere ait anahtarlar veya dizilerdeki dizinler olabilir. keyPath 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 başlığı içeren bir yetkilendirme nesnesi döndürür. Bu API, sunucu ortamındaki kimlik bilgilerini otomatik olarak bulmak için Uygulama Varsayılan Kimlik Bilgileri'ni kullanır.
Örnek
const getGoogleAuth = require('getGoogleAuth');
const logToConsole = require('logToConsole');
const sendHttpGet = require('sendHttpGet');
const auth = getGoogleAuth({
scopes: ['https://www.googleapis.com/auth/datastore']
});
sendHttpGet(
'https://firestore.googleapis.com/v1/projects/my-project/databases/(default)/documents/collection/document',
{authorization: auth}
).then((result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
logToConsole('Result: ' + result.body);
data.gtmOnSuccess();
} else {
data.gtmOnFailure();
}
});
Söz dizimi
getGoogleAuth(scopes);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
scopes
|
Dizi | Erişim isteğinde bulunulacak OAuth 2.0 Google API'leri kapsamları dizisi. |
İlişkili izinler
use_google_credentials izni gerektirir. İ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, iki anahtar içeren bir nesneye çözümlenir: script ve metadata. İstek başarısız olursa promise, 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 ilgili başlık kaynak yanıtında mevcutsa gösterilir.
{
'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 |
Senaryonun adı. Desteklenen alfabeler: '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çenekler için aşağıya bakın. |
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 |
any | Doğruysa ölçüm komut dosyasının hata ayıklama sürümünü ister ve döndürür. |
timeout |
number |
İsteğin milisaniye cinsinden zaman aşımı süresi. 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 gerektirir. İ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
Forwarded ve X-Forwarded-For gibi istek başlıklarını okuyarak isteğin kaynaklandığı IP adresinin dize temsilini (ör. IPv4 için 12.345.67.890 veya IPv6 için 2001:0db8:85a3:0:0:8a2e:0370:7334) döndürür.
Not: Bu API, kaynak IP'yi bulmak için elinden geleni yapar ancak sonucun doğru olduğunu garanti edemez.
Söz dizimi
getRemoteAddress();
İlişkili izinler
read_request izni gerektirir. İzin, en az aşağıdaki öğelere erişime izin verecek şekilde yapılandırılmalıdır:
- Üstbilgiler
ForwardedveX-Forwarded-For - Uzak IP Adresi
getRequestBody
Varsa istek gövdesini string 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, yoksa undefined olarak döndürür. Üstbilgi 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'si önekini 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, '/foo' değerini döndürür.
Örnek
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
Söz dizimi
getRequestPath();
İlişkili izinler
getRequestQueryParameter
Adlandırılmış sorgu dizesi parametresinin kodu çözülmüş değerini dize olarak döndürür. Parametre yoksa undefined 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 |
string | Sorgu parametresi adı. |
İlişkili izinler
getRequestQueryParameters
Gelen HTTP isteğinin sorgu parametrelerini, sorgu parametre adlarını karşılık gelen değerlere veya değerlere 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şkili izinler
getRequestQueryString
İstek sorgusunu, başında soru işareti olmadan dize olarak döndürür. İstek URL'si sorgu dizesi içermiyorsa boş dize döndürür.
Örnek
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
Söz dizimi
getRequestQueryString();
İlişkili izinler
getTimestamp
Kullanımdan kaldırıldı. getTimestampMillis tercih edilir.
Date.now() tarafından döndürülen, Unix epoch'tan bu yana geçen geçerli zamanı 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 zamanı 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' |
| boole | 'boolean' |
| null | 'null' |
| undefined | 'undefined' |
| Dizi | 'array' |
| Nesne | 'object' |
| İşlev | 'function' |
Örnek
const getType = require('getType');
const type = getType(value);
if (type === 'string') {
// Handle string input.
} else if (type === 'number') {
// Handle numeric input.
} else {
logToConsole('Unsupported input type: ', type);
}
Söz dizimi
getType(value);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
value |
any | Giriş değeri. |
İlişkili izinler
Yok.
hmacSha256
SHA-256 ile karma tabanlı mesaj kimlik 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şaretiyle 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 anahtarı belirten JSON anahtar dosyasındaki 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ğerinin kodlama biçimini belirtir. Desteklenen biçimler: hex,
base64 veya base64url. 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ünür.
Bu API tarafından oluşturulan günlük girişlerini görmek için Logs Explorer'da logName =~ "stdout" sorgusunu çalıştırın.
Örnek
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
Söz dizimi
logToConsole(argument1[, argument2, ...]);
Parametreler
API, bir veya daha fazla bağımsız değişken alır. Bu bağımsız değişkenlerin her biri, gerekirse dizeye dönüştürülür ve konsola kaydedilir.
İ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 nesnesine 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'
}
Bir Nesne döndürür: Dönüştürülen anahtar/değer çiftlerinin Map değeri buna eklenir veya aksi takdirde null döndürülür.
Söz dizimi
makeTableMap(tableObj, keyColumnName, valueColumnName);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
tableObj |
Listele |
Dönüştürülecek tablo nesnesi. Bu, her Map öğesinin tablodaki bir satırı temsil ettiği bir eşleme 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 içinde anahtar olacak sütunun adı.
|
valueColumnName |
string |
Değerleri, dönüştürülen 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, hatalı biçimlendirilmiş URL'ler için undefined değerini döndürür. Doğru biçimlendirilmiş URL'lerde, URL dizesinde bulunmayan alanlar boş dize değerine veya searchParams söz konusu olduğunda boş nesne değerine sahip olur.
Döndürülen nesne aşağıdaki alanları içerir:
{
href: string,
origin: string,
protocol: string,
username: string,
password: string,
host: string,
hostname: string,
port: string,
pathname: string,
search: string,
searchParams: Object<string, (string|Array)>,
hash: string,
}
Örnek
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
Söz dizimi
parseUrl(url);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
url |
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 başlık içermez.
Bu API'nin bir istemci şablonundan kullanılması önerilir.
Söz dizimi
returnResponse();
Örnek
runContainer örneğini inceleyin.
İlişkili izinler
runContainer
Kapsayıcı mantığını (değişkenler, tetikleyiciler, etiketler) bir etkinlik kapsamında çalıştırır. Kapsayıcı yürütme sırasında bu API ç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. Bir API'yi etkinlik bağlamında çalıştırmak için bindToEvent simgesini 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 etiketlerin etkinleşmesi tamamlandıktan sonra çağrılan bir geri çağırma. |
onStart |
function | Etiketler tetiklenmeye başlamadan hemen önce çağrılan bir geri çağırma işlevi. |
İlişkili 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 nesneye reddedilen bir promise döndürür. Hedef olan Google Analytics, etkinlik verilerindeki ölçüm kimliğine dayanır.
location alanı, varsa location başlığına ayarlanır.
Örnek
const logToConsole = require('logToConsole');
const sendEventToGoogleAnalytics = require('sendEventToGoogleAnalytics');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');
// Sends an event to Google Analytics and returns failure if the request did not
// succeed. Additionally, if the request resulted in a redirect request, the
// code nominates a redirect response to be returned.
sendEventToGoogleAnalytics(event).then((response) => {
if (response.location) {
setResponseHeader('location', response.location);
setResponseStatus(302);
} else {
setResponseStatus(200);
}
data.gtmOnSuccess();
}).catch((error) => {
logToConsole(error.reason);
setResponseStatus(500);
data.gtmOnFailure();
});
Söz dizimi
sendEventToGoogleAnalytics(event);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
event |
object | Birleştirilmiş Şema biçimindeki etkinlik. |
İlişkili izinler
send_http izni gerektirir. İzin, en azından şunlara erişim izni verecek şekilde yapılandırılmalıdır:
- Google alan adlarına izin ver
sendHttpGet
Belirtilen URL'ye bir HTTP GET isteği gönderir ve istek tamamlandığında veya zaman aşımına uğradığında sonuçla birlikte çö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 ayarlandıysa ve istek zaman aşımına uğradıysa promise şu hatayla 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 |
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 başlıkları. |
timeout
|
number | İstek iptal edilmeden önceki zaman aşımı süresi (milisaniye cinsinden). Varsayılan değer 15000'dir. |
authorization
|
object | googleapis.com için istekte bulunurken yetkilendirme başlıklarını eklemek üzere getGoogleAuth çağrısından alınan isteğe bağlı yetkilendirme nesnesi. |
İ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 makineye giden yol yok, SSL anlaşması hatası vb.) promise şu hatayla reddedilir: {reason:
'failed'}. timeout seçeneği ayarlanmışsa ve istek zaman aşımına uğramışsa söz, {reason: 'timed_out'} ile reddedilir.
Ö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 içeriği. |
Seçenekler
| Seçenek | Tür | Açıklama |
|---|---|---|
headers |
string | Ek istek başlıkları. |
method |
object | İstek yöntemi. Varsayılan değer GET'dir. |
timeout
|
number | İstek iptal edilmeden önceki zaman aşımı süresi (milisaniye cinsinden). Varsayılan değer 15000'dir. |
authorization
|
object | googleapis.com için istekte bulunurken yetkilendirme başlıklarını eklemek üzere getGoogleAuth çağrısından gelen isteğe bağlı yetkilendirme nesnesi. |
İlişkili izinler
sendPixelFromBrowser
Tarayıcıya, sağlanan URL'yi <img> etiketi olarak yüklemesi için bir komut gönderir. Bu komut protokolü, 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 talimatları inceleyin.
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 oluşturur veya siler.
Bir çerezi silmek için çerezin oluşturulduğu yol ve alanla aynı olan bir çerez ayarlamanız ve bu çereze geçmişte bir geçerlilik bitiş değeri (ör. "Thu, 01 Jan 1970 00:00:00 GMT") atamanız gerekir.
Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin çağrılması gerektiğini unutmayın.
Örnek
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
Söz dizimi
setCookie(name, value[, options[, noEncode]]);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
name |
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, ve sameSite. (Aşağıdaki Seçenekler bölümüne bakın.) |
noEncode |
boolean |
Doğruysa çerez değeri kodlanmaz. Varsayılan değer:
false.
|
domain: Çerezin gönderileceği ana makine. "Auto" özel değerine ayarlanırsa ana makine, şu strateji kullanılarak otomatik şekilde hesaplanır:
- Varsa
Forwardedbaşlığının eTLD+1 değeri. - Varsa
X-Forwarded-Hostbaşlığının eTLD+1 değeri. 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 engeller.max-age: Çerezin geçerlilik süresinin dolmasına kalan 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 üstbilgisini göndermez.
secure:
trueolarak ayarlanırsa çerez, yalnızca birhttps: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, önbelleğe alma başlıklarını kullanıcı aracılarının yanıtı önbelleğe almayacağı şekilde ayarlar ve yanıt durumunu 200 olarak ayarlar.
Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin çağrılması gerektiğini unutmayın.
Söz dizimi
setPixelResponse();
İlişkili izinler
access_response izni gerektirir. İzin, en azından şunlara 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 işlevinin ç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 gerektirir. İzin, en az aşağıdaki öğelere 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 duyarlı değil) daha önce bu API tarafından ayarlanmışsa sonraki çağrı, önceki çağrının ayarladığı değeri üzerine yazar veya temizler.
Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin çağrılması gerektiğini unutmayın.
Söz dizimi
setResponseHeader(name, value);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
name |
string | Üstbilgi adı. HTTP üst bilgisi adları büyük/küçük harfe duyarlı olmadığından üst bilgi adı küçük harfli olur. |
value |
string undefined | Başlık değeri. Null veya tanımsız ise bu, döndürülecek yanıttan adlandırılmış başlığı temizler. |
İlişkili izinler
access_response izni gerektirir. İzin, en azından şunlara erişim izni verecek şekilde yapılandırılmalıdır:
headers
setResponseStatus
Döndürülecek yanıtın HTTP durum kodunu ayarlar.
Yanıtın istemciye geri gönderilmesi için returnResponse'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 gerektirir. İzin, en azından şunlara erişim izni 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 olarak kodlanmış özetle bir geri çağırma işlevi çağırı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 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 olarak kodlanmış sonuç özetiyle ç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şin base64 olarak kodlanmış 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 |
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şim yöntemlerini içeren bir nesne döndürür. Şablon veri depolama alanı, verilerin tek bir şablonun yürütmeleri arasında paylaşılmasına olanak tanır. Şablon veri deposunda 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 veri depolama alanında saklanması, sonraki her isteğin verilere erişebileceğini garanti etmez.
"templateDataStorage" adındaki "data" (veri) kelimesi, 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'si aracılığıyla 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.
Genel işaretle oluşturulan bir normal ifade durum bilgisine sahiptir. 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
|
boole | Doğru ise sonuç, base64url biçimi kullanılarak kodlanır. |
1.0.0 |
Örnek
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
İlişkili izinler
Yok.
BigQuery
BigQuery iş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ırın 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ı ile 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ı parametre ve iki zorunlu parametre vardır:
|
rows |
Array | Tabloya eklenecek satırlar. |
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler: ignoreUnknownValues ve skipInvalidRows. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.) |
| Parametre | Tür | Açıklama |
|---|---|---|
ignoreUnknownValues |
boole | true olarak ayarlanırsa şemayla eşleşmeyen değerler içeren satırlar kabul edilir. Bilinmeyen değerler yoksayılır. Varsayılan değer false'dir. |
skipInvalidRows |
boole | true olarak ayarlanırsa geçersiz satırlar olsa bile bir isteğin tüm geçerli satırları eklenir. Varsayılan değer false'dir. |
Modül bulunamadı hatası, sunucu kapsayıcınızın muhtemelen BigQuery modülünü henüz içermeyen eski bir sürümünü çalıştırdığı anlamına gelir. Lütfen dağıtım komut dosyamızı kullanarak sunucu kapsayıcınızı aynı ayarlarla yeniden dağıtın. İşlem tamamlandığında modül otomatik olarak eklenir.
Ekleme dışı bir hatada genellikle reason anahtarına sahip bir hata nesnesi bulunur:
[{reason: 'invalid'}]
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 eklenirken alınan 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, Datastore modunda Firestore'u değil, yalnızca yerel modda Firestore'u destekler. Ayrıca API yalnızca varsayılan veritabanının kullanılmasını destekler.
Firestore.read
Firestore.read işlevi, bir Firestore belgesindeki verileri okur ve id ile data olmak üzere iki anahtar içeren bir nesneye çözümlenen bir promise döndürür. Belge mevcut değilse promise, 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. Atlanırsa proje kimliği için access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak belirlendiği 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 ayarlanır. |
disableCache |
boole | İ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 belgesine veya koleksiyonuna yazar. Yol bir koleksiyona aitse rastgele oluşturulmuş bir kimlikle belge oluşturulur. Yol bir belgeye aitse ve mevcut değilse oluşturulur. Bu API, eklenen veya değiştirilen belgenin kimliğine çözümlenen bir promise 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 | Dokümana yazılacak değer. Birleştirme seçeneği ayarlanırsa API, girişteki anahtarları dokümanla 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. Atlanırsa proje kimliği için access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak belirlendiği 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ış olur. |
merge |
boole | İ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ının dizisine çözümlenen bir promise 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 promise boş bir diziye çözümlenir.
Söz dizimi
Firestore.query(collection, queryConditions[, options]);
| Parametre | Tür | Açıklama |
|---|---|---|
collection |
string | Koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir. |
queryConditions |
Array | Sorgu koşulları dizisi. Her sorgu, üç değer içeren bir dizi biçimindedir: key, operator ve expectedValue. Örneğin:
[[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]]. Sorgu sonucunu oluşturmak için koşullar birlikte VE'lenir. Uyumlu sorgu operatörlerinin listesi için lütfen Firestore'un sorgu operatörleri bölümüne bakın. |
options |
object | İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: projectId, disableCache, limit ve transaction. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.) |
| Parametre | Tür | Açıklama |
|---|---|---|
projectId |
string | İsteğe bağlı. Google Cloud Platform proje kimliği. Atlanırsa proje kimliğinin access_firestore izin seti ayarı * veya GOOGLE_CLOUD_PROJECT olarak belirlendiği 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ış demektir. |
disableCache |
boole | İsteğe bağlı. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma varsayılan olarak etkindir. Bu, sonuçları isteğin 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 yapmasına olanak tanır. Eşzamanlı yazma işlemi veya başka bir işlem çakışması gerçekleşirse işlem en fazla iki kez yeniden denenir. Toplam üç denemeden sonra başarısız olursa API, hata vererek isteği 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 çağırma. İş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. Desteklenen tek seçenek projectId'dir. 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. Atlanırsa proje kimliği için access_firestore izni ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId, ortam değişkeninden GOOGLE_CLOUD_PROJECT olarak alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış olur. |
Örnek
const Firestore = require('Firestore');
const path = 'collection/document';
const projectId = 'gcp-cloud-project-id';
Firestore.runTransaction((transaction) => {
const transactionOptions = {
projectId: projectId,
transaction: transaction,
};
// Must return a promise.
return Firestore.read(path, transactionOptions).then((result) => {
const newInputCount = result.data.inputCount + 1;
const input = {key1: 'value1', inputCount: newInputCount};
return Firestore.write(path, input, transactionOptions);
});
}, {
projectId: projectId
}).then((ids) => {
data.gtmOnSuccess();
}, data.gtmOnFailure);
Her Firestore işlevinde bulunan hatalar, reason anahtarı içeren bir nesneyle reddedilir:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
Hata nedenleri, Firestore REST API hata kodlarını içerebilir ancak bunlarla sınırlı değildir.
İlişkili izinler
JSON
JSON işlevleri sağlayan bir nesne döndürür.
parse() işlevi, dize tarafından açıklanan değeri veya nesneyi oluşturmak için bir JSON dizesini ayrıştırır. Değer ayrıştırılamazsa (ör. hatalı biçimlendirilmiş JSON) işlev undefined değerini döndürür. Giriş değeri dize değilse dizeye dönüştürülür.
stringify() işlevi, girişi bir JSON dizesine dönüştürür. Değer ayrıştırılamazsa (ör. nesnede döngü varsa) yöntem undefined değerini döndürür.
Örnek
const JSON = require('JSON');
// The JSON input string is converted to an object.
const object = JSON.parse('{"foo":"bar"}');
// The input object is converted to a JSON string.
const str = JSON.stringify({foo: 'bar'});
Söz dizimi
JSON.parse(stringInput);
JSON.stringify(value);
İlişkili izinler
Yok.
Math
Math işlevlerini 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 bir türdeki mesajları dinleyen bir işlev ekler. Bu tür bir ileti sendMessage API'si kullanılarak (genellikle bir etiket tarafından) gönderildiğinde 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 işlevinin yalnızca belirli bir etkinlikten mesaj alması gerekiyorsa runContainer API'sinin onStart işlevinde bindToEvent kullanarak bu API'yi etkinliğe bağlayın. Örneği inceleyin.
Söz dizimi
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
messageType |
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 gerektirir. İzin, en azından aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
Usage,listenveyalisten_and_sendiçeren bir mesaj türü.
hasMessageListener
Belirli bir mesaj türü için mesaj dinleyici eklenmişse true değerini döndürür. Aksi takdirde false değerini döndürür.
Söz dizimi
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
İlişkili izinler
Yok.
sendMessage
Kayıtlı bir dinleyiciye belirtilen türde bir mesaj gönderir. Bu, bir etiketten kapsayıcıyı çalıştıran istemciye mesaj göndermek için kullanılabilir.
Söz dizimi
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
messageType |
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 şey yapmaz. |
İlişkili izinler
use_message izni gerektirir. İzin, en azından aşağıdakilere izin verecek şekilde yapılandırılmalıdır:
Usagedeğerilisten_and_sendveyasendolan 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 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ğerlerinin dizisini, for...in... döngüsünün döndüreceği 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. Bu yöntem, belirli bir nesnenin kendi numaralandırılabilir özellik-değer çiftlerini
[key, value], 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.
freeze() yöntemi, Standart Kitaplık Object.freeze() davranışını sağlar. Dondurulmuş bir nesne artık değiştirilemez. Bir nesneyi dondurmak, nesneye yeni özellikler eklenmesini, mevcut özelliklerin kaldırılmasını ve mevcut özelliklerin değerlerinin değiştirilmesini engeller. freeze(), iletilen nesnenin aynısını 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ü davranışını sağlar. Nesne dondurulmamışsa belirtilen anahtarı nesneden kaldırır.
Standart Kitaplık silme operatörü gibi, ilk giriş değeri (objectInput) dondurulmamış bir nesneyse ikinci giriş değeri (keyToDelete) mevcut olmayan bir anahtarı belirtse bile true değerini döndürür. Diğer tüm durumlarda false döndürülür. Ancak aşağıdaki yönlerden Standart Kitaplık'taki silme operatöründen farklıdır:
keyToDelete, iç içe yerleştirilmiş bir anahtarı belirten, noktayla ayrılmış bir dize olamaz.delete(), bir dizideki öğeleri kaldırmak için kullanılamaz.delete(), global kapsamdaki mülkleri kaldırmak için kullanılamaz.
Söz dizimi
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
Parametreler
Object.keys
| Parametre | Tür | Açıklama |
|---|---|---|
| objectInput | any | 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 | any | 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 | any | Anahtar/değer çiftlerinin numaralandırılacağı nesne. Giriş bir nesne değilse nesne olmaya zorlanır. |
Object.freeze
| Parametre | Tür | Açıklama |
|---|---|---|
| objectInput | any | Dondurulacak nesne. Giriş bir nesne değilse dondurulmuş nesne olarak değerlendirilir. |
Object.delete
| Parametre | Tür | Açıklama |
|---|---|---|
| objectInput | any | Silinecek nesnenin anahtarı. |
| keyToDelete | string | Silinecek en ü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
Promise'lerle etkileşim kurma yöntemleri sağlayan bir nesne döndürür.
Promise'ler, işlevsel olarak JavaScript promise'leriyle aynıdır. Her örnekte, bir Promise döndüren üç yöntem vardır. Bu yöntemler, Promise çözüldüğünde daha fazla işlem yapılmasına olanak tanır:
.then(): Çözüme ulaştırılan ve reddedilen destek kayıtlarını işler. Parametre olarak iki geri çağırma alır: biri başarı durumu, diğeri ise hata durumu için..catch(): Yalnızca reddedilen destek kayıtlarını 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.
Promise döndüren bir değişken, promise'in çözümlenen değerine veya promise 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 promise değilse bir promise'in çö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
İşlevsel olarak bir JavaScript sözüne eşdeğer bir söz oluşturur.
Söz dizimi
Promise.create(resolver);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
resolver |
function | İki işlevle (resolve ve reject) çağrılan bir işlev. Döndürülen promise, 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ş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].
assertApi
Belirli bir API hakkında akıcı bir şekilde iddialarda bulunmak 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() işlevine 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, Google'ın [Truth] kitaplığı temel alınarak tasarlanmıştır. Bir ö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. Ancak bir testteki hata diğer test durumlarını etkilemez.
Söz dizimi
assertThat(actual, opt_message)
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
actual |
any | Akıcı kontrollerde kullanılacak değer. |
opt_message |
string | 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 onaylar. |
isDefined() |
Öznenin undefined olmadığını belirtir. |
isNull() |
Konunun null olduğunu onaylar. |
isNotNull() |
Öznenin null olmadığını iddia ediyor. |
isFalse() |
Öznenin false olduğunu iddia eder. |
isTrue() |
Konunun true olduğunu onaylar. |
isFalsy() |
Öznenin yanlış olduğunu iddia eder. Yanlış değerler şunlardır:
undefined, null, false,
NaN, 0 ve "" (boş dize). |
isTruthy() |
Öznenin doğru olduğunu onaylar. Yanlış değerler şunlardır:
undefined, null, false,
NaN, 0 ve '' (boş dize). |
isNaN() |
Öznenin NaN değeri olduğunu onaylar. |
isNotNaN() |
Öznenin 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 bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isNotEqualTo(expected) |
Öznenin, verilen değere eşit olmadığını belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isAnyOf(...expected) |
Konunun, verilen değerlerden birine eşit olduğunu 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. |
isNoneOf(...expected) |
Öznenin, verilen değerlerin hiçbirine eşit olmadığını belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır. |
isStrictlyEqualTo(expected) |
Öznenin, 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) |
Sıralı bir karşılaştırmada, öznenin verilen değerden büyük (>) olduğunu belirtir. |
isGreaterThanOrEqualTo(expected) |
Sıralı bir karşılaştırmada, öznenin verilen değerden büyük veya bu değere eşit (>=) olduğunu onaylar. |
isLessThan(expected) |
Sıralı bir karşılaştırmada öznenin, verilen değerden küçük (<) olduğunu onaylar. |
isLessThanOrEqualTo(expected) |
Sıralı bir karşılaştırmada, öznenin verilen değerden küçük veya bu değere eşit (<=) olduğunu iddia eder. |
contains(...expected) |
Öznenin, verilen tüm değerleri herhangi bir sırada içeren bir dizi veya dize olduğunu 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. |
doesNotContain(...expected) |
Öznenin, verilen değerlerin hiçbirini içermeyen bir dizi veya dize olduğunu 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. |
containsExactly(...expected) |
Öznenin, verilen tüm değerleri herhangi bir sırada içeren ve başka değer içermeyen bir dizi olduğunu 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. |
doesNotContainExactly(...expected) |
Öznenin, verilen değerlerden farklı bir değer kümesini herhangi bir sırada içeren bir dizi olduğunu 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) |
Öznenin, 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 (uzunluk = 0) olduğunu onaylar. Değer bir dizi veya dize değilse onay her zaman başarısız olur. |
isNotEmpty() |
Öznenin boş olmayan bir dizi veya dize olduğunu (uzunluk > 0) onaylar. Değer bir dizi veya dize değilse onay her zaman başarısız olur. |
isArray() |
Öznenin türünün bir dizi olduğunu belirtir. |
isBoolean() |
Öznenin türünün Boole olduğunu onaylar. |
isFunction() |
Öznenin türünün bir işlev olduğunu onaylar. |
isNumber() |
Öznenin türünün sayı olduğunu onaylar. |
isObject() |
Öznenin türünün bir nesne olduğunu belirtir. |
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
Mevcut testi hemen başarısız kılar ve varsa verilen mesajı 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. Sahte API'nin şablon kodunda kullanımı güvenlidir ancak yalnızca test modunda çalışır.
Taklitler, her test çalıştırılmadan önce sıfırlanır.
Söz dizimi
mock(apiName, returnValue);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
apiName |
string | Taklit edilecek API'nin adı; require() öğesine iletilen dizeyle aynıdır. |
returnValue |
any | 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. Taklitler, her test çalıştırılmadan önce sıfırlanır.
Söz dizimi
mockObject(apiName, objectMock);
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
apiName |
string | Taklit edilecek 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ş verileri nesnesiyle çalıştırır.
Söz dizimi
runCode(data)
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
data |
object | Testte kullanılacak veri nesnesi. |
Döndürülen Değer
Değişken şablonları için bir değişkenin değerini döndürür; diğer tüm şablon türleri için undefined döndürür.
Örnek
runCode({field1: 123, field2: 'value'});