Sunucu tarafı etiketleme API'leri

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.

Örnek

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

read_event_metadata


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 Aranacak 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 ayarlayabileceğ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, herkese açık 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ü

2.0.0


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. 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ısı (URI) döndürür. URI olarak kodlanmış, sağlanan dizeyi temsil eden bir dize döndürür.

Örnek

const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');

sendHttpGet('https://www.example.com/' + encodeUri(pathInput));

Söz dizimi

encodeUri(uri);

Parametreler

Parametre Tür Açıklama
uri string Tam bir URI.

İlişkili izinler

Yok.


encodeUriComponent

Özel karakterlerden kaçarak kodlanmış bir Tekdüzen Kaynak Tanımlayıcısı (URI) döndürür. URI olarak kodlanmış, sağlanan dizeyi temsil eden bir dize döndürür.

Örnek

const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');

sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));

Söz dizimi

encodeUriComponent(str);

Parametreler

Parametre Tür Açıklama
str string Bir URI'nin 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:

  • body
  • query parameters

extractEventsFromMpv2

Gelen bir Measurement Protocol V2 isteğini, Birleştirilmiş Şema 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:

  • body
  • query parameters

fromBase64

Base64 kodlu bir dizenin kodunu çözer. Giriş geçersizse undefined değerini döndürür.

Söz dizimi

fromBase64(base64EncodedString);

Parametreler

Parametre Tür Açıklama
base64EncodedString 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 olası maksimum değeri (dahil).

İlişkili izinler

Yok.


getAllEventData

Etkinlik verilerinin bir kopyasını döndürür.

Söz dizimi

getAllEventData();

İlişkili izinler

read_event_data


getClientName

Geçerli istemcinin adını içeren bir dize döndürür.

Söz dizimi

getClientName();

İlişkili izinler

read_container_data


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

read_container_data


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 kodları çözülmez. Varsayılan olarak false değerine ayarlanır.

İlişkili izinler

get_cookies


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 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

read_event_data


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 dönüşür. İstek başarısız olursa söz, reason anahtarıyla reddedilir.

metadata nesnesi, kaynak yanıt üst bilgilerine göre aşağıdaki önbelleğe alma meta verilerini içerir. Her alan yalnızca karşılık gelen üst bilgi kaynak yanıtında mevcutsa 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 İ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 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, Forwarded ve X-Forwarded-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 yapar ancak 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 Forwarded ve X-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

read_request


getRequestHeader

Adlandırılmış istek üstbilgisinin 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

read_request


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 ise 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

read_request


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

read_request


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

read_request


getRequestQueryString

İstek sorgusunu, başında 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

read_request


getTimestamp

Kullanımdan kaldırıldı. getTimestampMillis tercih edilir.

Date.now() tarafından döndürüldüğü gibi, Unix sıfır zamanından bu yana geçen milisaniye cinsinden geçerli zamanı temsil eden bir sayı döndürür.

Söz dizimi

getTimestamp();

İlişkili izinler

Yok.


getTimestampMillis

Date.now() tarafından döndürüldüğü gibi, Unix sıfır zamanından bu yana geçen milisaniye cinsinden geçerli zamanı temsil eden bir sayı döndürür.

Söz dizimi

getTimestampMillis();

İlişkili izinler

Yok.


getType

Belirtilen değerin türünü açıklayan bir dize döndürür.

Giriş Türü Döndürülen Değer
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ş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 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

use_custom_private_keys

Minimum resim sürümü

1.0.0


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

logging


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'}
]

Harita:

{
  '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

return_response


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.

Örnek

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.
onStart function Etiketler tetiklenmeye başlamadan hemen önce çağrılan geri çağırma işlevi.

İlişkili izinler

run_container


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 4, 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ç, statusCode, headers ve body olmak üzere üç anahtar içeren bir nesnedir. İstek başarısız olursa (ör. geçersiz URL, ana makineye giden yol yok, SSL anlaşması başarısızlığı vb.) söz şu hata koduyla reddedilir: {reason: 'failed'}. 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 başlıkları.
timeout number İsteğin iptal edilmeden önceki zaman aşımı süresi (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır.
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

send_http


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ç, statusCode, headers ve body olmak üzere üç anahtar içeren bir nesnedir. İstek başarısız olursa (ör. geçersiz URL, ana makineye giden yol yok, SSL anlaşması başarısızlığı vb.) söz şu hata koduyla reddedilir: {reason: 'failed'}. 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 başlıkları.
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 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

send_http


sendPixelFromBrowser

Tarayıcıya, sağlanan URL'yi <img> etiketi olarak yüklemesi için bir komut gönderir. Bu komut protokolü, GA4 için Google etiketi ve Google Analytics: GA Etkinliği web etiketlerinde desteklenir. Sunucu kapsayıcı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

send_pixel_from_browser


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.

Seçenekler

  • 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 değeri.
    • Varsa X-Forwarded-Host üstbilgisinin eTLD+1 değeri.
    • Host üstbilgisinin eTLD+1'i.
  • 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 expires hem de max-age ayarlanırsa max-age öncelikli olur.

  • httpOnly: true ise 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 expires hem de max-age ayarlanırsa max-age öncelikli olur.

  • path: İstenen URL'de bulunması gereken bir yol. Aksi takdirde tarayıcı, çerez üst bilgisini göndermez.

  • secure: true olarak ayarlanırsa çerez yalnızca https: uç noktasından istek yapıldığında sunucuya gönderilir.

  • sameSite: Çerezin, kaynaklar arası isteklerle gönderilmemesi gerektiğini onaylar. 'strict', 'lax' veya 'none' olmalıdır.

İlişkili izinler

set_cookie


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 verilmelidir
    • content-type
    • cache-control
    • expires
    • pragma
  • body
  • status

setResponseBody

Yanıt gövdesini bağımsız değişkene ayarlar.

Yanıtın istemciye geri gönderilmesi için returnResponse'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ış üstbilgiyi 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ç özetinin kullanıldığı çağ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 ile 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ş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 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 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

access_template_storage


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 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 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ı ile ilgili belgelerine bakın.

Söz dizimi

BigQuery.insert(connectionInfo, rows[, options]);

Parametreler

Parametre Tür Açıklama
connectionInfo object BigQuery tablosuna bağlanmak için gereken bilgileri tanımlar. Bir isteğe bağlı parametre ve iki zorunlu parametre vardır:
  • projectId - İsteğe bağlı Google Cloud Platform proje kimliği. Belirtilmezse, proje kimliği için access_bigquery izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId, GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış demektir.
  • datasetId - BigQuery veri kümesi kimliği.
  • tableId - BigQuery tablosu kimliği.
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.)

Seçenekler

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 yok sayı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.

Hata Örnekleri

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 hatada genellikle reason anahtarlı bir hata nesnesi bulunur:

[{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 eklendiği bir hata yanıtı örneği verilmiştir:

[
  {
    "errors": [
      {
        "reason":"invalid"
      }
    ],
    "row": {
      "string_col":"otherString",
      "number_col":-3,
      "bool_col":3
    }
  },
  {
    "errors": [
      {
        "reason":"stopped"
      }
    ],
    "row": {
      "string_col":"stringValue",
      "number_col":5,
      "bool_col:false
    }
  }
]

Örnek

const BigQuery = require('BigQuery');

const connectionInfo = {
  'projectId': 'gcp-cloud-project-id',
  'datasetId': 'destination-dataset',
  'tableId': 'destination-table',
};

const rows = [{
  'column1': 'String1',
  'column2': 1234,
}];

const options = {
  'ignoreUnknownValues': true,
  'skipInvalidRows': false,
};

BigQuery.insert(connectionInfo, rows, options)
  .then(data.gtmOnSuccess, data.gtmOnFailure);

İlişkili izinler

access_bigquery


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]);

Parametreler

Parametre Tür Açıklama
path string Belgenin veya koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir.
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.)

Seçenekler

Parametre Tür Açıklama
projectId string İsteğe bağlı. Google Cloud Platform proje kimliği. Belirtilmezse, proje kimliği için * veya GOOGLE_CLOUD_PROJECT access_firestore izin ayarı yapıldığı 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.
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 doküman 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şlamamalı veya bitmemelidir.
input object Belgeye yazılacak değer. Birleştirme seçeneği ayarlanmışsa 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.)

Seçenekler

Parametre Tür Açıklama
projectId string İsteğe bağlı. Google Cloud Platform proje kimliği. Belirtilmezse, proje kimliği için * veya GOOGLE_CLOUD_PROJECT access_firestore izin ayarı yapıldığı 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 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]);

Parametreler

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ç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.)

Seçenekler

Parametre Tür Açıklama
projectId string İsteğe bağlı. Google Cloud Platform proje kimliği. Belirtilmezse, proje kimliği için * veya GOOGLE_CLOUD_PROJECT access_firestore izin ayarı yapıldığı 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.
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.)

Seçenekler

Parametre Tür Açıklama
projectId string İsteğe bağlı. Google Cloud Platform proje kimliği. Belirtilmezse, proje kimliği için * veya GOOGLE_CLOUD_PROJECT access_firestore izin ayarı yapıldığı 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.

Ö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);

Hata örneği

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

access_firestore


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 mesajı 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:

  1. messageType:string
  2. message: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 işlem yapmaz.

Örnek

const addMessageListener = require('addMessageListener');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');

claimRequest();
addMessageListener('send_pixel', (messageType, message) => {
  // This will be run whenever a tag sends a 'send_pixel' message.
});

const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((event, i) => {
  runContainer(events[i], /* onComplete= */ () => {
    if (events.length === ++eventsCompleted) {
      returnResponse();
    }
  }, /* onStart= */ (bindToEvent) => {
    if (i === 0) {
      bindToEvent(addMessageListener)('send_pixel', (messageType, message) => {
        // This will be called whenever a tag for the first event sends a
        // 'send_pixel' message.
      });
    }
  });
});

İlişkili izinler

use_message izni gerekir. İzin, en azından aşağıdakilere izin verecek şekilde yapılandırılmalıdır:

  • listen veya listen_and_send Usage değerine sahip bir mesaj 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_send veya send Usage değerine sahip bir mesaj 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 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ü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 destek kayıtlarını ele alır. 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 iddialarda bulunmak 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 iddia eder.
isDefined() Konunun undefined olmadığını iddia eder.
isNull() Konunun null olduğunu iddia eder.
isNotNull() Konunun null olmadığını iddia eder.
isFalse() Konunun false olduğunu iddia eder.
isTrue() Konunun true olduğunu iddia eder.
isFalsy() Konunun yanlış olduğunu iddia eder. Yanlış değerler undefined, null, false, NaN, 0 ve "" (boş dize) değerleridir.
isTruthy() Konunun doğru olduğunu iddia eder. Yanlış değerler undefined, null, false, NaN, 0 ve "" (boş dize) değerleridir.
isNaN() Öznenin NaN değeri olduğunu onaylar.
isNotNaN() Konunun NaN dışında herhangi bir değer olduğunu onaylar.
isInfinity() Öznenin 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 yinelemeli 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 hiç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 belirtilen değerden (<=) küçük veya ona eşit olduğunu onaylar.
contains(...expected) Konunun, verilen değerlerin tümünü 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) 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 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ü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() Konunun türünün dizi olduğunu onaylar.
isBoolean() Konunun 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() 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 iletiyi 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 bir 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) belirli bir giriş verisi nesnesiyle mevcut test ortamında çalıştırır.

Söz dizimi

runCode(data)

Parametreler

Parametre Tür Açıklama
data object Testte kullanılacak veri nesnesi.

İade 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'});