Sunucu tarafı etiketleme API'leri

Bu dokümanda, sunucu tarafı etiketlemeyle ilgili API'ler ana hatlarıyla açıklanmaktadır.


addEventCallback

Bir etkinliğin sonunda çağrılacak bir geri çağırma işlevi kaydeder. Geri çağırma işlevi, etkinliğe ait tüm etiketler yürütüldüğünde çağrılır. Geri çağırma işlevine iki değer iletilir: işlevi çağıran kapsayıcının kimliği ve etkinlikle ilgili bilgileri içeren bir nesne.

Bu API bir etikette kullanıldığında geçerli etkinlikle ilişkilendirilir. Bu API bir istemcide kullanıldığında, runContainer API'nin bindToEvent işlevi kullanılarak belirli bir etkinliğe bağlanmalıdır. Daha fazla ayrıntı için örneğe bakın.

Söz dizimi

const addEventCallback = require('addEventCallback');

addEventCallback((containerId, eventData) => {
  // Take some action based on the event data.
});

Parametreler

Parametre Tür Açıklama
callback function Etkinliğin sonunda çağrılacak işlev.

eventData nesnesi aşağıdaki verileri içerir:

Anahtar Adı Tür Açıklama
tags Dizi Etiket veri nesneleri dizisi. Etkinlik sırasında tetiklenen her etiketin bu dizgede bir girişi olur. Etiket verileri nesnesi, etiketin kimliğini (id), yürütme durumunu (status) ve yürütme zamanını (executionTime) içerir. Etiket verileri, etikette yapılandırılmış ek etiket meta verilerini de içerir.

Örnek

İstemcide:

const addEventCallback = require('addEventCallback');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const logToConsole = require('logToConsole');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');

claimRequest();

const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((evt, i) => {
  runContainer(evt, /* onComplete= */ (bindToEvent) => {
    bindToEvent(addEventCallback)((containerId, eventData) => {
      logToConsole('Event Number: ' + i);
      eventData.tags.forEach((tag) => {
        logToConsole('Tag ID: ' + tag.id);
        logToConsole('Tag Status: ' + tag.status);
        logToConsole('Tag Execution Time: ' + tag.executionTime);
      });
    });
    if (events.length === ++eventsCompleted) {
      returnResponse();
    }
  });
});

Etiketlerde:

const addEventCallback = require('addEventCallback');

addEventCallback((containerId, eventData) => {
  // This will be called at the end of the current event.
});

İlişkili izinler

read_event_metadata


callLater

Bir işleve ait çağrının eşzamansız olarak gerçekleşmesini planlar. İşlev, mevcut kod döndürüldükten sonra çağrılır. Bu, setTimeout(<function>, 0) değerine eşdeğerdir.

Örnek

const callLater = require('callLater');
const logToConsole = require('logToConsole');

callLater(() => {
  logToConsole('Logged asynchronously');
});

Söz dizimi

callLater(function)

Parametreler

Parametre Tür Açıklama
function function Çağırılacak işlev.

İlişkili izinler

Yok.


claimRequest

İsteği almak için istemcide bu API'yi kullanın. Bir istek için hak talebinde bulunulduğunda kapsayıcı ek istemci çalıştırmaz.

Bu API, bir etikette veya değişkende çağrılırsa istisna oluşturur. Bu API, istemci döndükten sonra çağrılırsa (ör. callLater veya runContainer onComplete işlevinde olduğu gibi bir asynkron geri çağırma işlevinde çağrılırsa) bir istisna atar.

İstemci, runContainer API'yi çağırmadan önce bu API'yi kullanarak istek için hak talebinde bulunmalıdır.

Örnek

const claimRequest = require('claimRequest');

claimRequest();

Söz dizimi

claimRequest();

İlişkili izinler

Yok.


computeEffectiveTldPlusOne

Belirtilen alan adının veya URL'nin etkili üst düzey alan adı + 1'i (eTLD+1) döndürür. eTLD+1, alan adı Genel Son Ek Listesi kurallarına göre değerlendirilerek hesaplanır. eTLD+1, genellikle çerez ayarlayabileceğiniz en üst düzey alan adıdır.

Bağımsız değişken null veya tanımlanmamışsa bağımsız değişken değeri değiştirilmeden döndürülür. Aksi takdirde bağımsız değişken bir dizeye zorlanacaktır. Parametre geçerli bir alan veya URL değilse boş bir dize döndürülür. Sunucu, herkese açık son ek listesini getiremezse bağımsız değişken değeri değiştirilmeden döndürülür.

Örnek

const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');

// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');

// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');

Söz dizimi

computeEffectiveTldPlusOne(domainOrUrl);

Parametreler

Parametre Tür Açıklama
domainOrUrl dize eTLD+1'in hesaplanacağı bir alan veya URL.

İlişkili izinler

Yok.


createRegex

Yeni bir normal ifade örneği oluşturur ve bunu bir nesneye sarmalayarak döndürür. Normal ifadeye doğrudan erişemezsiniz. Ancak bu bilgileri testRegex API'ye, String.replace(), String.match() ve String.search()'a iletebilirsiniz.

Normal ifade geçersizse veya Re2 sunucu üzerinde kullanılamıyorsa null döndürür.

Bu API, Re2 uygulaması kullanır. Sunucu Docker resmi 2.0.0 veya sonraki bir sürümde olmalıdır.

Örnek

const createRegex = require('createRegex');

const domainRegex = createRegex('\\w+\\.com', 'i');

// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');

Söz dizimi

createRegex(pattern, flags);

Parametreler

Parametre Tür Açıklama
pattern dize Normal ifadenin metni.
flags dize Oluşturulan normal ifadenin işaretlerini içeren isteğe bağlı bir dize. "g" (genel) ve "i" (büyük/küçük harfe duyarlı değil) desteklenir. Diğer tüm karakterler sessizce yoksayılır.

İlişkili izinler

Yok.

Minimum resim sürümü

2.0.0


decodeUri

Sağlanan URI'deki kodlanmış karakterlerin kodunu çözer. Kodu çözülmüş URI'yi temsil eden bir dize döndürür. Geçersiz giriş sağlandığında undefined döndürür.

Örnek

const decodeUri = require('decodeUri');

const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
  // ...
}

Söz dizimi

decodeUri(encoded_uri);

Parametreler

Parametre Tür Açıklama
encoded_uri dize encodeUri() veya başka yöntemlerle kodlanmış bir URI.

İlişkili izinler

Yok.


decodeUriComponent

Sağlanan URI bileşenindeki kodlanmış karakterlerin kodunu çözer. Kodu çözülmüş URI bileşenini temsil eden bir dize döndürür. Geçersiz giriş verildiğinde undefined döndürür.

Örnek

const decodeUriComponent = require('decodeUriComponent');

const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
  // ...
}

Söz dizimi

decodeUriComponent(encoded_uri_component);

Parametreler

Parametre Tür Açıklama
encoded_uri_component dize encodeUriComponent() veya başka yöntemlerle kodlanmış bir URI bileşeni.

İlişkili izinler

Yok.


encodeUri

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

Örnek

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

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

Söz dizimi

encodeUri(uri);

Parametreler

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

İlişkili izinler

Yok.


encodeUriComponent

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

Örnek

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

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

Söz dizimi

encodeUriComponent(str);

Parametreler

Parametre Tür Açıklama
str dize URI bileşeni.

İlişkili izinler

Yok.


extractEventsFromMpv1

Gelen bir Measurement Protocol V1 isteğini Unified Schema biçiminde bir etkinlik listesine dönüştürür. Ayıklanan etkinliklerin listesini döndürür. İstek doğru biçimde değilse hata verir.

Örnek

const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const isRequestMpv1 = require('isRequestMpv1');

if (isRequestMpv1()) {
  const events = extractEventsFromMpv1();
  for (let i = 0; i < events.length; ++i) {
    const event = events[i];
    // Process event.
  }
}

Söz dizimi

extractEventsFromMpv1();

İlişkili izinler

read_request izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:

  • body
  • query parameters

extractEventsFromMpv2

Gelen bir Measurement Protocol V2 isteğini Unified Schema biçiminde bir etkinlik listesine dönüştürür. Ayıklanan etkinliklerin listesini döndürür. İstek doğru biçimde değilse hata verir.

Örnek

const extractEventsFromMpv2 = require('extractEventsFromMpv2');
const isRequestMpv2 = require('isRequestMpv2');

if (isRequestMpv2()) {
  const events = extractEventsFromMpv2();
  for (let i = 0; i < events.length; ++i) {
    const event = events[i];
    // Process event.
  }
}

Söz dizimi

extractEventsFromMpv2();

İlişkili izinler

read_request izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:

  • body
  • query parameters

fromBase64

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

Söz dizimi

fromBase64(base64EncodedString);

Parametreler

Parametre Tür Açıklama
base64EncodedString dize Base64 kodlu dize.

Örnek

const fromBase64 = require('fromBase64');

const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
  // ...
}

İlişkili izinler

Yok.


generateRandom

Belirtilen aralıktaki rastgele bir sayı (tam sayı) döndürür.

Örnek

const generateRandom = require('generateRandom');

const randomValue = generateRandom(0, 10000000);

Söz dizimi

generateRandom(min, max);

Parametreler

Parametre Tür Açıklama
min number Döndürülen tam sayının minimum olası değeri (dahil).
max number Döndürülen tam sayının maksimum potansiyel değeri (dahil).

İlişkili izinler

Yok.


getAllEventData

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

Söz dizimi

getAllEventData();

İlişkili izinler

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 dize Çerezin adı.
noDecode boole true ise çerez değerleri döndürülmeden önce kodları çözülmez. Varsayılan olarak false değerine ayarlanır.

İlişkili izinler

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 değerini döndürür.

Örnek

const getEventData = require('getEventData');

const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');

Parametreler

Parametre Tür Açıklama
keyPath herhangi bir Yol bileşenlerinin noktalarla ayrıldığı anahtar yolu. Yol bileşenleri, nesnelere ait anahtarlar veya dizilerdeki dizinler olabilir. keyPath bir dize değilse dize biçimine dönüştürülür.

Söz dizimi

getEventData(keyPath);

İlişkili izinler

read_event_data


getGoogleAuth

sendHttpGet veya sendHttpRequest ile birlikte kullanıldığında Google Cloud API'leri için bir yetkilendirme üstbilgisi içeren bir yetkilendirme nesnesi döndürür. Bu API, sunucu ortamındaki kimlik bilgilerini otomatik olarak bulmak için Uygulama Varsayılan Kimlik Bilgileri'ni kullanır.

Örnek

const getGoogleAuth = require('getGoogleAuth');
const logToConsole = require('logToConsole');
const sendHttpGet = require('sendHttpGet');

const auth = getGoogleAuth({
  scopes: ['https://www.googleapis.com/auth/datastore']
});

sendHttpGet(
  'https://firestore.googleapis.com/v1/projects/my-project/databases/(default)/documents/collection/document',
  {authorization: auth}
).then((result) => {
  if (result.statusCode >= 200 && result.statusCode < 300) {
    logToConsole('Result: ' + result.body);
    data.gtmOnSuccess();
  } else {
    data.gtmOnFailure();
  }
});

Söz dizimi

getGoogleAuth(scopes);

Parametreler

Parametre Tür Açıklama
scopes Dizi Erişim isteğinde bulunulacak OAuth 2.0 Google API kapsamları dizisi.

İlişkili izinler

use_google_credentials izni gerekir. İzin, izin verilen bir veya daha fazla kapsamla yapılandırılmalıdır.


getGoogleScript

Önceden belirlenmiş bir Google komut dosyası grubundan bir kaynak alır ve komut dosyasını ve ilişkili önbelleğe alma meta verilerini içeren bir promise döndürür.

Sözleşme, script ve metadata olmak üzere iki anahtar içeren bir nesneye çözülür. İstek başarısız olursa söz, reason anahtarıyla reddedilir.

metadata nesnesi, kaynak yanıt üst bilgilerine göre aşağıdaki önbelleğe alma meta verilerini içerir. Her alan yalnızca kaynak yanıtında ilgili üstbilgi varsa mevcut olur.

{
  'cache-control': string,
  'expires': string,
  'last-modified': string,
}

Örnek

const getGoogleScript = require('getGoogleScript');

getGoogleScript('ANALYTICS').then((result) => {
  // Operate on result.script and result.metadata here.
});

Söz dizimi

getGoogleScript(script[, options]);

Parametreler

Parametre Tür Açıklama
script dize Komut dosyasının adı. Desteklenen komut dosyaları şunlardır: 'ANALYTICS', 'GTAG' ve 'GTM'.

'ANALYTICS' seçeneği, Google Analytics komut dosyasını https://www.google-analytics.com/analytics.js adresinden alır.

'GTAG' seçeneği, global site etiketi (gtag.js) komut dosyasını https://www.googletagmanager.com/gtag/js adresinden getirir.

'GTM' seçeneği, Google Etiket Yöneticisi komut dosyasını https://www.googletagmanager.com/gtm.js adresinden alır.
options object İsteğe bağlı istek seçenekleri. Desteklenen seçenekleri aşağıda bulabilirsiniz.

Seçenekler

Option Tür Açıklama
id dize gtag ölçüm kimliğiyle 'GTAG' ve web kapsayıcı kimliğiyle 'GTM' için geçerlidir (ör. GTM-XXXX).
debug herhangi bir Doğru ise ölçüm komut dosyasının hata ayıklama sürümünü ister ve döndürür.
timeout number İsteğin milisaniye cinsinden zaman aşımı. Pozitif olmayan değerler yok sayılır. İstek zaman aşımına uğrarsa geri çağırma işlevi, komut dosyası değeri için undefined ve meta veri nesnesi için {} ile çağrılır.

Tanınmayan seçenek anahtarları yoksayılır.

İlişkili izinler

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

  • Google alan adlarına izin ver

getRemoteAddress

Forwarded ve X-Forwarded-For gibi istek başlıklarını okuyarak isteğin kaynağı olan IP adresinin dize temsilini döndürür (ör. IPv4 için 12.345.67.890 veya IPv6 için 2001:0db8:85a3:0:0:8a2e:0370:7334). Not: Bu API, kaynak IP'yi bulmak için elinden geleni yapar ancak sonucun doğruluğunu garanti edemez.

Söz dizimi

getRemoteAddress();

İlişkili izinler

read_request izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:

  • Forwarded ve X-Forwarded-For başlıkları
  • Uzak IP Adresi

getRequestBody

Varsa istek gövdesini dize olarak, aksi takdirde undefined olarak döndürür.

Söz dizimi

getRequestBody();

İlişkili izinler

read_request


getRequestHeader

Varsa adlandırılmış istek üstbilgisinin değerini dize olarak, aksi takdirde undefined değerini döndürür. Başlık tekrarlanırsa döndürülen değerler ', ' ile birleştirilir.

Örnek

const getRequestHeader = require('getRequestHeader');

const host = getRequestHeader('host');

Söz dizimi

getRequestHeader(headerName);

Parametreler

Parametre Tür Açıklama
headerName dize Üstbilgi adı. Bu değer büyük/küçük harfe duyarlı değildir.

İlişkili izinler

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 '/foo' döndürülür. Sunucu kapsayıcı URL ön ekini yoldan otomatik olarak kaldırır. Örneğin, sunucu kapsayıcısı URL'si https://example.com/analytics ve istek yolu '/analytics/foo' ise bu işlev '/foo' değerini döndürür.

Örnek

const getRequestPath = require('getRequestPath');

const requestPath = getRequestPath();
if (requestPath === '/') {
  // Handle a request for the root path.
}

Söz dizimi

getRequestPath();

İlişkili izinler

read_request


getRequestQueryParameter

Adlandırılmış sorgu dizesi parametresinin kodu çözülmüş değerini dize olarak veya parametre yoksa undefined olarak döndürür. Parametre sorgu dizesinde tekrarlanırsa sorgu dizesinde görünen ilk değer döndürülür.

Örnek

const getRequestQueryParameter = require('getRequestQueryParameter');

const query = getRequestQueryParameter('query');
if (query) {
  // Process query here.
}

Söz dizimi

getRequestQueryParameter(name);

Parametreler

Parametre Tür Açıklama
name dize Sorgu parametresi adı.

İlişkili izinler

read_request


getRequestQueryParameters

Gelen HTTP isteğinin sorgu parametrelerini, sorgu parametresi adlarını ilgili değer veya değerlerle eşleyen bir nesne olarak döndürür. Parametre adları ve değerlerinin kodu çözülür.

Örnek

const getRequestQueryParameters = require('getRequestQueryParameters');

const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
  // Handle the search query here.
  const maxResults = queryParameters['max_results'];
}

Söz dizimi

getRequestQueryParameters();

İlişkili izinler

read_request


getRequestQueryString

İstek sorgusunu, soru işareti olmadan dize olarak döndürür veya istek URL'sinde sorgu dizesi yoksa boş dize döndürür.

Örnek

const getRequestQueryString = require('getRequestQueryString');

const queryString = getRequestQueryString();
if (queryString !== '') {
  // Handle the query string.
}

Söz dizimi

getRequestQueryString();

İlişkili izinler

read_request


getTimestamp

Kullanımdan kaldırıldı. getTimestampMillis işlevini tercih edin.

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

Söz dizimi

getTimestamp();

İlişkili izinler

Yok.


getTimestampMillis

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

Söz dizimi

getTimestampMillis();

İlişkili izinler

Yok.


getType

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

Giriş Türü Döndürülen Değer
dize 'string'
number 'number'
boole 'boolean'
null 'null'
undefined 'undefined'
Dizi 'array'
Nesne 'object'
İşlev 'function'

Örnek

const getType = require('getType');

const type = getType(value);
if (type === 'string') {
  // Handle string input.
} else if (type === 'number') {
  // Handle numeric input.
} else {
  logToConsole('Unsupported input type: ', type);
}

Söz dizimi

getType(value);

Parametreler

Parametre Tür Açıklama
value herhangi bir Giriş değeri.

İlişkili izinler

Yok.


hmacSha256

SHA-256 ile Karma Tabanlı Mesaj Doğrulama Kodu (HMAC) kullanılarak kodlanmış bir imza hesaplar. Varsayılan olarak base64url kodlamasına ayarlanır.

Bu API'yi kullanmak için sunucudaki SGTM_CREDENTIALS ortam değişkenini, aşağıdaki biçime sahip UTF-8 kodlu bir JSON anahtar dosyasının yoluna ayarlayın:

{
  "keys": {
    "key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
    "key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
    ...
  }
}

Değerler, base64 kodlu HMAC anahtarlardır. JSON metni, bayt sırası işaretçisiyle başlamamalıdır.

Örnek

const hmacSha256 = require('hmacSha256');
const toBase64 = require('toBase64');

const header = toBase64('{"alg":"HS256","typ":"JWT"}', {urlEncoding: true});
const claim = toBase64('{"sub":"1234567890","iat":1698164946}', {urlEncoding: true});
const signature = hmacSha256(header + '.' + claim, 'key1');

const jwt = header + "." + claim + '.' + signature;

Söz dizimi

hmacSha256(data, keyId, options)

Parametreler

Parametre Tür Açıklama
data dize HMAC değerini hesaplamak için kullanılacak veriler.
keyId dize JSON anahtar dosyasında, kullanılacak anahtarı belirten bir anahtar kimliği.
options object İsteğe bağlı API yapılandırması. (Aşağıdaki Seçenekler bölümüne bakın.)

Seçenekler

Option Tür Açıklama
outputEncoding dize Döndürülen değerin kodlama biçimini belirtir. Desteklenen biçimler hex, base64 veya base64url'dir. Belirtilmezse varsayılan olarak base64url olur.

İlişkili izinler

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 döndürür.

Örnek

const isRequestMpv2 = require('isRequestMpv2');

if (isRequestMpv2()) {
  // Handle Measurement Protocol V2 request.
  const events = extractEventsFromMpv2();
}

Söz dizimi

isRequestMpv2();

İlişkili izinler

Yok.


logToConsole

Bağımsız değişkenlerini konsola kaydeder.

Bu günlükler, Google Cloud Console'daki Günlük Gezgini'nde görülebilir. Bu API tarafından oluşturulan günlük girişlerini görmek için Günlük Gezgini'nde logName =~ "stdout" sorgusunu çalıştırın.

Örnek

const logToConsole = require('logToConsole');

const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);

Söz dizimi

logToConsole(argument1[, argument2, ...]);

Parametreler

API, bir veya daha fazla bağımsız değişken alır. Bu bağımsız değişkenlerin her biri gerekirse bir dizeye dönüştürülür ve konsola kaydedilir.

İlişkili izinler

logging


makeInteger

Belirtilen değeri sayı (tam sayı) biçimine dönüştürür.

Söz dizimi

makeInteger(value);

Parametreler

Parametre Tür Açıklama
value herhangi bir tür Dönüştürülecek değer.

İlişkili izinler

Yok.


makeNumber

Belirtilen değeri sayıya dönüştürür.

Söz dizimi

makeNumber(value);

Parametreler

Parametre Tür Açıklama
value herhangi bir tür Dönüştürülecek değer.

İlişkili izinler

Yok.


makeString

Verilen değeri dize olarak döndürür.

Söz dizimi

makeString(value);

Parametreler

Parametre Tür Açıklama
value herhangi bir tür Dönüştürülecek değer.

İlişkili izinler

Yok.


makeTableMap

İki sütunlu basit bir tablo nesnesini Map olarak dönüştürür. Bu, iki sütunlu bir SIMPLE_TABLE şablon alanını daha yönetilebilir bir biçime dönüştürmek için kullanılır.

Örneğin, bu işlev bir tablo nesnesini dönüştürebilir:

[
  {'key': 'k1', 'value': 'v1'},
  {'key': 'k2', 'value': 'v2'}
]

Haritaya eklemek için:

{
  'k1': 'v1',
  'k2': 'v2'
}

Bir nesne döndürür: Anahtar/değer çiftlerinin dönüştürülmüş Map değeri buna eklenir veya aksi takdirde null döndürülür.

Söz dizimi

makeTableMap(tableObj, keyColumnName, valueColumnName);

Parametreler

Parametre Tür Açıklama
tableObj Listele Dönüştürülecek tablo nesnesi. Her Map değerinin tablodaki bir satırı temsil ettiği bir eşleme listesi Satır nesnesinde her özellik adı sütun adı, özellik değeri ise satırdaki sütun değeridir.
keyColumnName dize Değerleri dönüştürülen Map'te anahtar olacak sütunun adı.
valueColumnName dize Değerleri, dönüştürülmüş Map'teki değerler olacak sütunun adı.

İlişkili izinler

Yok.


parseUrl

URL nesnesine benzer şekilde, belirli bir URL'nin tüm bileşenlerini içeren bir nesne döndürür.

Bu API, bozuk URL'ler için undefined döndürür. Düzgün biçimlendirilmiş URL'lerde, URL dizesinde bulunmayan alanların değeri boş bir dize veya searchParams durumunda boş bir nesne olur.

Döndürülen nesnede aşağıdaki alanlar bulunur:

{
  href: string,
  origin: string,
  protocol: string,
  username: string,
  password: string,
  host: string,
  hostname: string,
  port: string,
  pathname: string,
  search: string,
  searchParams: Object<string, (string|Array)>,
  hash: string,
}

Örnek

const parseUrl = require('parseUrl');

const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');

Söz dizimi

parseUrl(url);

Parametreler

Parametre Tür Açıklama
url dize Ayrıştırılacak tam URL.

İlişkili izinler

Yok.


returnResponse

setCookie, setPixelResponse, setResponseBody, setResponseHeader ve setResponseStatus gibi yanıtı değiştiren API'leri kullanarak daha önce diğer şablonlar tarafından ayarlanan yanıtı temizler. Varsayılan olarak 200 HTTP durum kodu, boş gövde ve üstbilgi içermez.

Bu API'nin bir istemci şablonundan kullanılması önerilir.

Söz dizimi

returnResponse();

Örnek

runContainer örneğine bakın.

İlişkili izinler

return_response


runContainer

Kapsayıcı mantığını (değişkenler, tetikleyiciler, etiketler) bir etkinlik kapsamında çalıştırır. Bu API, kapsayıcı çalıştırma sırasında çağrılırsa kapsayıcı tekrar çalıştırılır.

onComplete ve onStart geri çağırma işlevleri bindToEvent adlı bir işlev alır. Etkinlik bağlamında API çalıştırmak için bindToEvent öğesini kullanın. Daha fazla bilgi için addEventCallback örneğine göz atın.

Bu API'nin bir istemci şablonundan kullanılması önerilir.

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

İlişkili izinler

run_container


sendEventToGoogleAnalytics

Google Analytics'e Ortak Etkinlik Verileri'ni kullanarak tek bir etkinlik gönderir ve location anahtarına sahip bir nesneye çözümlenen veya reason anahtarına sahip bir nesneyi reddeden bir promise döndürür. Hedef (Google Analytics 4), etkinlik verilerindeki ölçüm kimliğine dayanır.

location alanı, varsa location başlığına ayarlanır.

Örnek

const logToConsole = require('logToConsole');
const sendEventToGoogleAnalytics = require('sendEventToGoogleAnalytics');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');

// Sends an event to Google Analytics and returns failure if the request did not
// succeed. Additionally, if the request resulted in a redirect request, the
// code nominates a redirect response to be returned.
sendEventToGoogleAnalytics(event).then((response) => {
  if (response.location) {
    setResponseHeader('location', response.location);
    setResponseStatus(302);
  } else {
    setResponseStatus(200);
  }
  data.gtmOnSuccess();
}).catch((error) => {
  logToConsole(error.reason);
  setResponseStatus(500);
  data.gtmOnFailure();
});

Söz dizimi

sendEventToGoogleAnalytics(event);

Parametreler

Parametre Tür Açıklama
event object Birleştirilmiş Şema biçiminde etkinlik.

İlişkili izinler

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

  • Google alan adlarına izin ver

sendHttpGet

Belirtilen URL'ye HTTP GET isteği gönderir ve istek tamamlandığında veya zaman aşımına uğradığında sonuçla çözülen bir promise döndürür.

Çözüme ulaştırılan sonuç, statusCode, headers ve body olmak üzere üç anahtar içeren bir nesnedir. İstek başarısız olursa (ör. geçersiz URL, ana makineye rota yok, SSL müzakeresi başarısızlığı vb.) söz, {reason: 'failed'} ile reddedilir. timeout seçeneği ayarlandıysa ve istek zaman aşımına uğradıysa söz, şu mesajla reddedilir: {reason: 'timed_out'}

Örnek

const sendHttpGet = require('sendHttpGet');

// Returns the response body as the value for a variable.
return sendHttpGet('https://example.com/item/' + data.itemId, {
  headers: {key: 'value'},
  timeout: 500,
}).then((result) => result.body, () => undefined);

Söz dizimi

sendHttpGet(url[, options]);

Parametreler

Parametre Tür Açıklama
url dize İstenen URL.
options object İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekler bölümüne bakın.)

Seçenekler

Option Tür Açıklama
headers dize Ek istek üst bilgileri.
timeout number İsteğin iptal edilmesinden önceki zaman aşımı (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır.
authorization object googleapis.com'ye istek gönderirken yetkilendirme başlıklarını dahil etmek için getGoogleAuth çağrısından alınan isteğe bağlı yetkilendirme nesnesi.

İlişkili izinler

send_http


sendHttpRequest

Belirtilen URL'ye HTTP isteği gönderir ve istek tamamlandığında veya zaman aşımına uğradığında yanıtla çözülen bir promise döndürür.

Çözüme ulaştırılan sonuç, statusCode, headers ve body olmak üzere üç anahtar içeren bir nesnedir. İstek başarısız olursa (ör. geçersiz URL, ana makineye rota yok, SSL müzakeresi başarısızlığı vb.) söz, {reason: 'failed'} ile reddedilir. timeout seçeneği ayarlandıysa ve istek zaman aşımına uğradıysa söz, şu mesajla reddedilir: {reason: 'timed_out'}

Örnek

const sendHttpRequest = require('sendHttpRequest');
const setResponseBody = require('setResponseBody');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');

const postBody = 'interaction=click&campaign=promotion&medium=email';
// Sends a POST request and nominates response based on the response to the POST
// request.
sendHttpRequest('https://example.com/collect', {
  headers: {key: 'value'},
  method: 'POST',
  timeout: 500,
}, postBody).then((result) => {
  setResponseStatus(result.statusCode);
  setResponseBody(result.body);
  setResponseHeader('cache-control', result.headers['cache-control']);
});

Söz dizimi

sendHttpRequest(url[, options[, body]]);

Parametreler

Parametre Tür Açıklama
url dize İstenen URL.
options object İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekler bölümüne bakın.)
body dize İsteğe bağlı istek içeriği.

Seçenekler

Option Tür Açıklama
headers dize Ek istek üst bilgileri.
method object İstek yöntemi. Varsayılan olarak GET değerine ayarlanır.
timeout number İsteğin iptal edilmesinden önceki zaman aşımı (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır.
authorization object googleapis.com'ye istek gönderirken yetkilendirme başlıklarını dahil etmek için getGoogleAuth çağrısından alınan isteğe bağlı yetkilendirme nesnesi.

İlişkili izinler

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ı URL'sini yapılandırmanız gerekir. Daha fazla bilgi için talimatları inceleyin.

Gelen istek komut protokolünü desteklemiyorsa veya yanıt zaten temizlenmişse bu API false değerini döndürür. Aksi takdirde bu API true döndürür.

Örnek:

const sendPixelFromBrowser = require('sendPixelFromBrowser');

sendPixelFromBrowser('https://example.com/?id=123');

Söz dizimi

sendPixelFromBrowser(url)

Parametreler

Parametre Tür Açıklama
url dize Tarayıcıya gönderilecek URL.

İlişkili izinler

send_pixel_from_browser


setCookie

Belirtilen seçeneklere sahip bir çerez oluşturur veya siler.

Bir çerezi silmek için, çerezin oluşturulduğuyla aynı yol ve alan adında bir çerez ayarlamak ve bu çereze geçmişte olan bir expires değeri (ör. "Thu, 01 Jan 1970 00:00:00 GMT") atamak gerekir.

Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin çağrılması gerektiğini unutmayın.

Örnek

const setCookie = require('setCookie');

// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});

Söz dizimi

setCookie(name, value[, options[, noEncode]]);

Parametreler

Parametre Tür Açıklama
name dize Çerez adı. Ad büyük/küçük harfe duyarlı değildir.
value dize Çerez değeri.
options object İsteğe bağlı çerez özellikleri:domain, expires, fallbackDomain,httpOnly, max- age, path, secure vesameSite. (Aşağıdaki Seçenekler bölümüne bakın.)
noEncode boole Doğru ise çerez değeri kodlanmaz. Varsayılan olarak false değerine ayarlanır.

Seçenekler

  • domain: Çerezin gönderileceği ana makine. "Auto" özel değerine ayarlanırsa ana makine, aşağıdaki strateji kullanılarak otomatik olarak hesaplanır:

    • Forwarded başlığının eTLD+1 değeri (varsa).
    • X-Forwarded-Host başlığının eTLD+1 değeri (varsa).
    • Host başlığının eTLD+1'i.
  • expires: Çerezin maksimum kullanım ömrü. Bu, UTC biçimli bir dosya olmalıdır tarih dizesi, ör. "Cumartesi, 26 Ekim 1985 08:21:00 GMT". Hem expires hem de max-age ayarlanırsa max-age öncelikli olur.

  • httpOnly: true ise JavaScript'in çereze erişmesini yasaklar.

  • max-age: Çerezin geçerlilik süresinin sona ermesine kalan saniye sayısı. Sıfır veya negatif bir sayı, çerezin süresinin hemen dolmasına neden olur. Hem expires hem de max-age ayarlanırsa max-age öncelikli olur.

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

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

  • sameSite: Bir çerezin kaynakta çapraz isteklerle gönderilmemesi gerektiğini belirtir. 'strict', 'lax' veya 'none' olmalıdır.

İlişkili izinler

set_cookie


setPixelResponse

Yanıt gövdesini 1x1 GIF olarak, İçerik Türü başlığını "image/gif" olarak, önbelleğe alma başlıklarını kullanıcı aracılarının yanıtı önbelleğe almayacağı şekilde ve yanıt durumunu 200 olarak ayarlar.

Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin çağrılması gerektiğini unutmayın.

Söz dizimi

setPixelResponse();

İlişkili izinler

access_response izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:

  • headers - Aşağıdaki anahtarlara izin vermelidir
    • 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 işlevinin çağrılması gerektiğini unutmayın.

Söz dizimi

setResponseBody(body[, encoding]);

Parametreler

Parametre Tür Açıklama
body dize Yanıt gövdesi olarak ayarlanacak değer.
encoding dize Yanıt gövdesinin karakter kodlaması (varsayılan olarak 'utf8'). Desteklenen değerler şunlardır: 'ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'latin1', 'binary' ve 'hex'.

İlişkili izinler

access_response izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:

  • body

setResponseHeader

Döndürülecek yanıtta bir başlık ayarlar. Bu ada sahip (büyük/küçük harf duyarlı değildir) bir başlık daha önce bu API tarafından ayarlanmışsa ikinci çağrı, önceki arayan tarafından ayarlanan değerin üzerine yazar veya değeri temizler.

Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin çağrılması gerektiğini unutmayın.

Söz dizimi

setResponseHeader(name, value);

Parametreler

Parametre Tür Açıklama
name dize Üstbilgi adı. HTTP üstbilgi adları büyük/küçük harfe duyarlı olmadığından üstbilgi adı küçük harflerle yazılmalıdır.
value dize undefined Üstbilgi değeri. Null veya tanımlanmamışsa adlandırılmış üstbilgi, döndürülecek yanıttan silinir.

İlişkili izinler

access_response izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:

  • headers

setResponseStatus

Döndürülecek yanıtın HTTP durum kodunu ayarlar.

Yanıtın istemciye geri gönderilmesi için returnResponse işlevinin çağrılması gerektiğini unutmayın.

Söz dizimi

setResponseStatus(statusCode);

Parametreler

Parametre Tür Açıklama
statusCode number Döndürülecek HTTP durum kodu.

İlişkili izinler

access_response izni gerekir. İzin, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:

  • status

sha256

options nesnesi farklı bir çıkış kodlaması belirtmediği sürece girişin SHA-256 özetini hesaplar ve özeti base64 olarak kodlanmış bir geri çağırma işlevi ile çağırır.

Bu API imzası ve davranışı, web kapsayıcıları için sha256 API ile eşleşir. Ancak sunucu kapsayıcılarındaki özel şablonlar, daha basit kod için sha256Sync API'yi kullanmalıdır.

Örnek

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

sha256('inputString', (digest) => {
  sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
});

sha256('inputString', (digest) => {
  sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
}, {outputEncoding: 'hex'});

Söz dizimi

sha256(input, onSuccess, options = undefined);

Parametreler

Parametre Tür Açıklama
input dize Karma oluşturma işlemi uygulanacak dize.
onSuccess function options nesnesi farklı bir çıkış kodlaması belirtmediği sürece, elde edilen özet ile çağrılır. Bu özet, base64 ile kodlanmıştır.
options object Çıkış kodlamasını belirtmek için isteğe bağlı options nesnesi. Belirtilirse nesne, base64 veya hex değerlerinden birine sahip outputEncoding anahtarını içermelidir.

İlişkili izinler

Yok.


sha256Sync

options nesnesi farklı bir çıkış kodlaması belirtmediği sürece, girişin SHA-256 özetini base64 olarak kodlanmış şekilde hesaplar ve döndürür.

Örnek

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

const digestBase64 = sha256Sync('inputString');
const digestHex = sha256Sync('inputString', {outputEncoding: 'hex'});
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestBase64));
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestHex));

Söz dizimi

sha256Sync(input, options = undefined);

Parametreler

Parametre Tür Açıklama
input dize Karma oluşturma işlemi uygulanacak dize.
options object Çıkış kodlamasını belirtmek için isteğe bağlı options nesnesi. Belirtilirse nesne, base64 veya hex değerlerinden birine sahip outputEncoding anahtarını içermelidir.

İlişkili izinler

Yok.


templateDataStorage

Şablon veri depolama alanına erişme yöntemleri içeren bir nesne döndürür. Şablon veri depolama alanı, verilerin tek bir şablonun yürütme işlemleri arasında paylaşılmasına olanak tanır. Şablon veri deposunda depolanan veriler, kapsayıcıyı çalıştıran sunucuda kalır. Çoğu durumda kapsayıcıyı çalıştıran birden fazla sunucu vardır. Bu nedenle, verileri şablon veri deposunda depolamak, sonraki her isteğin verilere erişebileceğini garanti etmez.

"templateDataStorage" adındaki "data", bu API'nin yalnızca işlev olmayan basit veri türlerini depolayabileceğini belirtir. API'ye iletilen işlevler veya işlevlere yapılan referanslar bunun yerine null olarak depolanır.

Söz dizimi

const templateDataStorage = require('templateDataStorage');

// Returns a copy of the value stored for the given key, or null if nothing
// is stored with that key.
templateDataStorage.getItemCopy(key);

// Stores a copy of the value for the given key (or removes the data stored
// for the given key if the input value is null).
templateDataStorage.setItemCopy(key, value);

// Removes the value stored for the given key, if present.
templateDataStorage.removeItem(key);

// Deletes all values stored for the current template.
templateDataStorage.clear();

Örnek

const sendHttpGet = require('sendHttpGet');
const setResponseBody = require('setResponseBody');
const setResponseStatus = require('setResponseStatus');
const templateDataStorage = require('templateDataStorage');

// Check to see if the item is in the cache.
const cachedBody = templateDataStorage.getItemCopy(data.key);
if (cachedBody) {
  setResponseBody(cachedBody);
  data.gtmOnSuccess();
  return;
}

sendHttpGet(data.url).then((result) => {
  if (result.statusCode >= 200 && result.statusCode < 300) {
    setResponseBody(result.body);
    templateDataStorage.setItemCopy(data.key, result.body);
    data.gtmOnSuccess();
  } else {
    data.gtmOnFailure();
  }
  setResponseStatus(result.statusCode);
});

İlişkili izinler

access_template_storage


testRegex

Bir dize, createRegex API aracılığıyla oluşturulan normal ifadeye göre test edilir. Normal ifade eşleşirse true döndürür. Aksi takdirde false döndürülür.

global işaretiyle oluşturulan normal ifade duruma dayalı olur. Ayrıntılar için RegExp dokümanlarına bakın.

Örnek

const createRegex = require('createRegex');
const testRegex = require('testRegex');

const domainRegex = createRegex('\\w+\\.com', 'i');

// createRegex returns null if the regex is invalid or Re2 is not available.
if (domainRegex === null) return;

// Returns true
testRegex(domainRegex, 'example.com/foobar');

Söz dizimi

testRegex(regex, string);

Parametreler

Parametre Tür Açıklama
regex Nesne createRegex API'sinden döndürülen, test edilecek normal ifade.
string dize Test edilecek test dizesi.

İlişkili izinler

Yok.


toBase64

Bir dizeyi base64 veya base64url olarak kodlar. Varsayılan olarak base64 kodlaması kullanılır.

Söz dizimi

toBase64(input, options);

Parametreler

Parametre Tür Açıklama
input dize Kodlanacak dize.
options object İsteğe bağlı API yapılandırması. (Aşağıdaki Seçenekler bölümüne bakın.)

Seçenekler

Option Tür Açıklama Minimum sürüm
urlEncoding boole Doğru ise sonuç base64url biçimi kullanılarak kodlanır. 1.0.0

Örnek

const toBase64 = require('toBase64');

const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});

İlişkili izinler

Yok.


BigQuery

BigQuery işlevleri sağlayan bir nesne döndürür.

BigQuery.insert işlevi, BigQuery tablosuna veri yazmayı sağlar. Başarılı bir kampanya ekleme işleminde çözülen veya hata oluştuğunda reddedilen bir promise döndürür.

Ekleme başarılı olduğunda söz, hiçbir bağımsız değişken olmadan çözülür.

Ekleme başarısız olduğunda, söz, hata nedenini ve hata oluşursa muhtemelen bir satır nesnesini içeren bir nesne listesi ile reddeder. İsteğin bir kısmının başarıyla tamamlanması, diğer kısmının ise tamamlanmaması mümkündür. Bu durumda, hangi satırların eklendiğini ayırt etmeye yardımcı olmak için satır nesnesi içeren her satır için hata listesinin yer aldığı bir söz reddedilirse (Aşağıdaki Hata Örnekleri bölümüne bakın). Daha fazla bilgi için BigQuery'nin hata mesajları ile ilgili belgelerine bakın.

Söz dizimi

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

Parametreler

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:
  • projectId: İsteğe bağlı Google Cloud Platform proje kimliği. Atlanırsa projectId, proje kimliğinin access_bigquery izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış olur.
  • datasetId: BigQuery veri kümesi kimliği.
  • tableId: BigQuery tablosu kimliği.
rows Dizi Tabloya eklenecek satırlar.
options object İsteğe bağlı istek seçenekleri. Desteklenen seçenekler: ignoreUnknownValues ve skipInvalidRows. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.)

Seçenekler

Parametre Tür Açıklama
ignoreUnknownValues boole true olarak ayarlanırsa şemayla eşleşmeyen değerler içeren satırlar kabul edilir. Bilinmeyen değerler yoksayılır. Varsayılan olarak false değerine ayarlanır.
skipInvalidRows boole true olarak ayarlanırsa geçersiz satırlar olsa bile isteğin tüm geçerli satırlarını ekleyin. Varsayılan olarak false değerine ayarlanır.

Hata örnekleri

Modül bulunamadı hatası, sunucu kapsayıcınızın büyük olasılıkla resmimizin henüz BigQuery modülü içermeyen eski bir sürümünü çalıştırdığı anlamına gelir. Lütfen dağıtım komut dosyamızı kullanarak sunucu kapsayıcınızı aynı ayarlarla yeniden dağıtın. İşlem tamamlandığında modül otomatik olarak eklenir.

Ekleme dışı bir hatada genellikle reason anahtarı içeren bir hata nesnesi bulunur:

[{reason: 'invalid'}]

Kampanya siparişi hatası, errors dizisi ve row nesnesi içeren birden fazla hata nesnesi içerebilir. Aşağıda, yalnızca bir satırda hata olan iki satır ekleme işleminden kaynaklanan bir hata yanıtı örneği verilmiştir:

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

Örnek

const BigQuery = require('BigQuery');

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

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

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

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

İlişkili izinler

access_bigquery


Firestore

Firestore işlevleri sağlayan bir nesne döndürür.

Bu API, Datastore modundaki Firestore'u değil, yalnızca yerel moddaki Firestore'u destekler. Ayrıca API yalnızca varsayılan veritabanının kullanılmasını destekler.

Firestore.read

Firestore.read işlevi, bir Firestore dokümanındaki verileri okur ve id ile data olmak üzere iki anahtar içeren bir nesneye çözümlenen bir promise döndürür. Doküman mevcut değilse söz, not_found değerine eşit bir reason anahtarı içeren bir nesneyle reddedilir.

Söz dizimi

Firestore.read(path[, options]);

Parametreler

Parametre Tür Açıklama
path dize Belgenin veya koleksiyonun yolu. "/" ile başlayamaz veya bitemez.
options object İsteğe bağlı istek seçenekleri. Desteklenen seçenekler: projectId, disableCache ve transaction. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.)

Seçenekler

Parametre Tür Açıklama
projectId dize İsteğe bağlı. Google Cloud Platform proje kimliği. Atlanırsa projectId, proje kimliğinin access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış olur.
disableCache boole İsteğe bağlı. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma varsayılan olarak etkindir. Bu durumda, sonuçlar istek süresi boyunca önbelleğe alınır.
transaction dize İsteğe bağlı. Firestore.runTransaction() işlevinden alınan değer. İşlemin bir işlem içinde kullanılacağını işaret eder.

Örnek

const Firestore = require('Firestore');

return Firestore.read('collection/document', {
  projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);

Firestore.write

Firestore.write işlevi, verileri bir Firestore dokümanı veya koleksiyonuna yazar. Yol bir koleksiyona aitse rastgele oluşturulan bir kimliğe sahip bir belge oluşturulur. Yol bir belgeye aitse ve belge mevcut değilse oluşturulur. Bu API, eklenen veya değiştirilen dokümanın kimliğine yönlendiren bir promise döndürür. İşlem seçeneği kullanılırsa API yine bir promise döndürür ancak yazma işlemleri toplu olarak yapıldığından kimliği içermez.

Söz dizimi

Firestore.write(path, input[, options]);

Parametreler

Parametre Tür Açıklama
path dize Belgenin veya koleksiyonun yolu. "/" ile başlayamaz veya bitemez.
input object Belgeye yazılacak değer. Birleştirme seçeneği ayarlanmışsa API, girişteki anahtarları dokümanla birleştirir.
options object İsteğe bağlı istek seçenekleri. Desteklenen seçenekler: projectId, merge ve transaction. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.)

Seçenekler

Parametre Tür Açıklama
projectId dize İsteğe bağlı. Google Cloud Platform proje kimliği. Atlanırsa projectId, proje kimliğinin access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış olur.
merge boole İsteğe bağlı. true olarak ayarlanırsa girişteki anahtarlar dokümana birleştirilir. Aksi takdirde yöntem, dokümanın tamamını geçersiz kılar. Varsayılan olarak false değerine ayarlanır.
transaction dize İsteğe bağlı. Firestore.runTransaction() işlevinden alınan değer. İşlemin bir işlem içinde kullanılacağını işaret eder.

Örnek

const Firestore = require('Firestore');

const input = {key1: 'value1', key2: 12345};

Firestore.write('collection/document', input, {
  projectId: 'gcp-cloud-project-id',
  merge: true,
}).then((id) => {
  data.gtmOnSuccess();
}, data.gtmOnFailure);

Firestore.query

Firestore.query işlevi, belirtilen koleksiyonu sorgulayarak sorgu koşullarını karşılayan bir Firestore dokümanı dizisine çözümlenen bir söz döndürür. Firestore belge nesnesi, yukarıda Firestore.read bölümünde listelenenle aynıdır. Sorgu koşullarıyla eşleşen hiçbir doküman yoksa döndürülen promise boş bir diziye çözülür.

Söz dizimi

Firestore.query(collection, queryConditions[, options]);

Parametreler

Parametre Tür Açıklama
collection dize Koleksiyonun yolu. "/" ile başlayamaz veya bitemez.
queryConditions Dizi Sorgu koşulları dizisi. Her sorgu, anahtar, operatör ve beklenen değer olmak üzere üç değer içeren bir dizi biçimindedir. Örneğin: [[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]].

Sorgu sonucunu oluşturmak için koşullar AND işlevi kullanılarak birleştirilir. Uyumlu sorgu operatörlerinin listesi için lütfen Firestore'un sorgu operatörlerine bakın.
options object İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: projectId, disableCache, limit ve transaction. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.)

Seçenekler

Parametre Tür Açıklama
projectId dize İsteğe bağlı. Google Cloud Platform proje kimliği. Atlanırsa projectId, proje kimliğinin access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış olur.
disableCache boole İsteğe bağlı. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma varsayılan olarak etkindir. Bu durumda, sonuçlar istek süresi boyunca önbelleğe alınır.
limit number İsteğe bağlı. Sorgu tarafından döndürülen maksimum sonuç sayısını değiştirir. Varsayılan değer 5'tir.
transaction dize İsteğe bağlı. Firestore.runTransaction() işlevinden alınan değer. İşlemin bir işlem içinde kullanılacağını işaret eder.

Örnek

const Firestore = require('Firestore');

const queries = const queries = [['id', '==', '5']];

return Firestore.query('collection', queries, {
  projectId: 'gcp-cloud-project-id',
  limit: 1,
}).then((documents) => documents[0].data.key, () => undefined);

Firestore.runTransaction

Firestore.runTransaction işlevi, kullanıcının Firestore'dan atomik olarak okuma ve yazma yapmasına olanak tanır. Eşzamanlı bir yazma veya başka bir işlem çakışması olursa işlem iki kez tekrar denenir. Üç denemeden sonra başarısız olursa API, hatayla reddeder. Bu API, işlem başarılıysa her yazma işlemi için bir belge kimlikleri dizisine çözümlenen bir söz döndürür ve işlem başarısız olursa hatayı reddederek döndürür.

Söz dizimi

Firestore.runTransaction(callback[, options]);

Parametreler

Parametre Tür Açıklama
callback function Dize işlem kimliğiyle çağrılan bir geri çağırma işlevi. İşlem kimliği, okuma/yazma/sorgulama API çağrılarına iletilebilir. Bu geri çağırma işlevi bir promise döndürmelidir. Geri çağırma, başarısız olmadan önce en fazla üç kez çalıştırılabilir.
options object İsteğe bağlı istek seçenekleri. Yalnızca projectId seçeneği desteklenir. Bilinmeyen seçenek anahtarları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.)

Seçenekler

Parametre Tür Açıklama
projectId dize İsteğe bağlı. Google Cloud Platform proje kimliği. Atlanırsa projectId, proje kimliğinin access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış olur.

Örnek

const Firestore = require('Firestore');

const path = 'collection/document';
const projectId = 'gcp-cloud-project-id';

Firestore.runTransaction((transaction) => {
  const transactionOptions = {
    projectId: projectId,
    transaction: transaction,
  };
  // Must return a promise.
  return Firestore.read(path, transactionOptions).then((result) => {
    const newInputCount = result.data.inputCount + 1;
    const input = {key1: 'value1', inputCount: newInputCount};
    return Firestore.write(path, input, transactionOptions);
  });
}, {
  projectId: projectId
}).then((ids) => {
  data.gtmOnSuccess();
}, data.gtmOnFailure);

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ş, dize olarak zorlanacaktır.

stringify() işlevi, girişi JSON dizesi biçiminde dönüştürür. Değer ayrıştırılamazsa (ör. nesnede döngü varsa) yöntem undefined değerini döndürür.

Örnek

const JSON = require('JSON');

// The JSON input string is converted to an object.
const object = JSON.parse('{"foo":"bar"}');

// The input object is converted to a JSON string.
const str = JSON.stringify({foo: 'bar'});

Söz dizimi

JSON.parse(stringInput);
JSON.stringify(value);

İlişkili izinler

Yok.


Math

Math işlevleri sağlayan bir nesne.

Söz dizimi

const Math = require('Math');

// Retrieve the absolute value.
const absolute = Math.abs(-3);

// Round the input down to the nearest integer.
const roundedDown = Math.floor(3.6);

// Round the input up to the nearest integer.
const roundedUp = Math.ceil(2.2);

// Round the input to the nearest integer.
const rounded = Math.round(3.1);

// Return the largest argument.
const biggest = Math.max(1, 3);

// Return the smallest argument.
const smallest = Math.min(3, 5);

// Return the first argument raised to the power of the second argument.
const powerful = Math.pow(3, 1);

// Return the square root of the argument.
const unsquared = Math.sqrt(9);

Parametreler

Matematik işlevi parametreleri sayıya dönüştürülür.

İlişkili izinler

Yok.


Messages

Aşağıdaki API'ler, bir kapsayıcının farklı bölümleri arasında mesaj aktarımına izin vermek için birlikte çalışır.


addMessageListener

Belirli bir türde mesaj dinleyen bir işlev ekler. Bu tür bir mesaj sendMessage API'si kullanılarak (genellikle bir etiket tarafından) gönderildiğinde geri çağırma işlevi eşzamanlı olarak çalıştırılır. Geri çağırma işlevi iki parametreyle çalıştırılır:

  1. messageType:string
  2. message:Object

Geri çağırma bir istemciye eklenirse geri çağırma, istemcinin oluşturduğu tüm etkinliklerde mesaj alır. Geri çağırma yalnızca belirli bir etkinlikten mesaj almalıdır. Bu durumda, runContainer API'sinin onStart işlevinde bindToEvent kullanarak bu API'yi etkinliğe bağlayın. Örneği inceleyin.

Söz dizimi

const addMessageListener = require('addMessageListener');

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

Parametreler

Parametre Tür Açıklama
messageType dize Dinlenecek mesaj türü. Değer bir dize değilse dize biçimine getirilir.
callback function Geçerli mesaj türünde bir mesaj gönderildiğinde çalıştırılacak geri çağırma işlevi. Geri çağırma işlevi bir işlev değilse API hiçbir işlem yapmaz.

Örnek

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

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

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

İlişkili izinler

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

  • listen veya listen_and_send değerleri olan bir Usage ileti türü.

hasMessageListener

Belirtilen mesaj türü için bir mesaj dinleyici eklenmişse true değerini döndürür. Aksi takdirde false döndürülür.

Söz dizimi

const hasMessageListener = require('hasMessageListener');

hasMessageListener('send_pixel');

İlişkili izinler

Yok.


sendMessage

Kayıtlı bir dinleyiciye belirtilen türde bir mesaj gönderir. Bu, bir etiketten kapsayıcıyı çalıştıran istemciye mesaj göndermek için kullanılabilir.

Söz dizimi

const sendMessage = require('sendMessage');

sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});

Parametreler

Parametre Tür Açıklama
messageType dize Gönderilecek mesaj türü. Değer bir dize değilse dize biçimine dönüştürülür.
message object Gönderilecek mesaj. Mesaj bir nesne değilse API hiçbir işlem yapmaz.

İlişkili izinler

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

  • listen_and_send veya send değerleri olan bir Usage ileti türü.

Object

Object yöntemleri sağlayan bir nesne döndürür.

keys() yöntemi, Standart Kitaplık Object.keys() davranışını sağlar. Belirli bir nesnenin kendi listelenebilir özellik adlarının dizinini, for...in... döngüsünün döndürdüğü sırayla döndürür. Giriş değeri bir nesne değilse nesneye dönüştürülür.

values() yöntemi, Standart Kitaplık Object.values() davranışını sağlar. Belirli bir nesnenin kendi listelenebilir özellik değerlerinin dizinini, for...in... döngüsünün döndürdüğü sırayla döndürür. Giriş değeri bir nesne değilse bir nesneye dönüştürülür.

entries() yöntemi, Standart Kitaplık Object.entries() davranışını sağlar. Belirli bir nesnenin kendi listelenebilir özellik [key, value] çiftlerinin bir dizisini, for...in... döngüsünün yapacağı sırayla döndürür. Giriş değeri bir nesne değilse nesneye dönüştürülür.

freeze() yöntemi, Standart Kitaplık Object.freeze() davranışını sağlar. Dondurulan nesneler artık değiştirilemez. Dondurulan nesnelere yeni özellik eklenemez, mevcut özellikler kaldırılamaz ve mevcut özelliklerin değerleri değiştirilemez. freeze(), iletilen nesneyi döndürür. Basit veya null bağımsız değişkenler, dondurulmuş nesne gibi değerlendirilir ve döndürülür.

delete() yöntemi, Standart Kitaplık sil operatörünün davranışını sağlar. Nesne dondurulmadığı sürece, belirtilen anahtarı nesneden kaldırır. Standart Kitaplık'taki sil operatörü gibi, ikinci giriş değeri (keyToDelete) var olmayan bir anahtar belirtse bile ilk giriş değeri (objectInput) dondurulmamış bir nesneyse true döndürür. Diğer tüm durumlarda false döndürülür. Ancak Standart Kitaplık'taki sil operatöründen aşağıdaki yönleriyle ayrılır:

  • keyToDelete, iç içe yerleştirilmiş bir anahtarı belirten noktayla ayrılmış bir dize olamaz.
  • delete(), bir dizideki öğeleri kaldırmak için kullanılamaz.
  • delete(), global kapsamdaki mülkleri kaldırmak için kullanılamaz.

Söz dizimi

Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)

Parametreler

Object.keys

Parametre Tür Açıklama
objectInput herhangi bir Anahtarları listelenecek nesne. Giriş bir nesne değilse bir nesneye zorlanacaktır.

Object.values

Parametre Tür Açıklama
objectInput herhangi bir Değerleri listelenecek nesne. Giriş bir nesne değilse bir nesneye zorla dönüştürülür.

Object.entries

Parametre Tür Açıklama
objectInput herhangi bir Anahtar/değer çiftlerinin listeleneceği nesne. Giriş bir nesne değilse zorla nesne haline getirilir.

Object.freeze

Parametre Tür Açıklama
objectInput herhangi bir Dondurulacak nesne. Giriş bir nesne değilse dondurulmuş nesne olarak değerlendirilir.

Object.delete

Parametre Tür Açıklama
objectInput herhangi bir Anahtarı silinecek nesne.
keyToDelete dize Silmek istediğiniz üst düzey anahtar.

Örnek

const Object = require('Object');

// The keys of an object are enumerated in an array.
const keys = Object.keys({foo: 'bar'});

// The values of an object are enumerated in an array.
const values = Object.values({foo: 'bar'});

// The key/value pairs of an object are enumerated in an array.
const entries = Object.entries({foo: 'bar'});

// The input object is frozen.
const frozen = Object.freeze({foo: 'bar'});

// The key is removed from the input object.
const obj1 = {deleteme: 'value'};
Object.delete(obj1, 'deleteme');
// Only a top-level key can be specified as the key to delete.
const obj2 = {nested: {key: 'value'}};
Object.delete(obj2, 'nested.key'); // This has no effect.
Object.delete(obj2.nested, 'key'); // This deletes the nested key.

Promise

Sözlerle etkileşim kurma yöntemleri sağlayan bir nesne döndürür.

Sözler, işlevsel olarak JavaScript sözleriyle aynıdır. Her örneğin, bir Promise gerçekleştiğinde başka işlem yapılmasına olanak tanıyan bir Promise döndüren üç yöntemi vardır:

  • .then(): Hem çözülen hem de reddedilen destek kayıtlarını yönetir. Parametre olarak iki geri çağırma alır: biri başarı durumu, diğeri ise başarısızlık durumu içindir.
  • .catch(): Yalnızca reddedilen destek kayıtlarını işler. Parametre olarak bir geri çağırma alır.
  • .finally(): Söz konusu söz çözülmüş veya reddedilmiş olsun, kodun çalıştırılmasına olanak tanır. Parametre olarak, bağımsız değişken içermeden çağrılan bir geri çağırma işlevi alır.

Sözleşme döndüren bir değişken, sözleşmenin çözülmüş değerine veya sözleşme reddedilirse false değerine eşittir.

Örnek

promise.then((resolvedValue) => {
    // Handles when promise resolves.
  }, (rejectedValue) => {
    // Handles when promise rejects.
  });
promise.catch((rejectedValue) => {
    // Handles when promise rejects.
  });
promise.finally(() => {
    // Runs regardless of whether or not the previous promise resolves or
    // rejects.
  });

Promise.all

Aşağıdakilerden birini yapan bir promise döndürür:

  • Tüm girişler çözüldüğünde çözülür veya
  • girişlerden herhangi biri reddedildiğinde reddeder

Söz dizimi

Promise.all(inputs);

Parametreler

Parametre Tür Açıklama
inputs Dizi Bir değer veya söz dizisi. Bir giriş söz değilse giriş, söz konusu söze ait çözülmüş değermiş gibi iletilir. Giriş bir dizi değilse hata verir.

Örnek

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

return Promise.all(['a', sendHttpGet('https://example.com')])
  .then((results) => {
    // results will equal: ['a', {statusCode: 200, headers: {}, body: ''}]
  });

İlişkili izinler

Yok.

Promise.create

İşlevsel olarak JavaScript vaadiyle eşdeğer bir vaat oluşturur.

Söz dizimi

Promise.create(resolver);

Parametreler

Parametre Tür Açıklama
resolver function Çözümleme ve reddetme olmak üzere iki işlevle çağrılan bir işlev. Döndürülen söz, ilgili parametre çağrıldığında çözülür veya reddedilir. resolver bir işlev değilse hata atar.

Örnek

const Promise = require('Promise');

return Promise.create((resolve, reject) => {
  // Do asynchronous work that eventually calls resolve() or reject()
});

İlişkili izinler

Yok.

Test API&#39;leri

Bu API'ler, Google Etiket Yöneticisi'nde özel şablonlar için test oluşturmak üzere korumalı alan JavaScript testleriyle çalışır. Bu test API'leri için require() beyan gerekmez. [Özel şablon testleri hakkında daha fazla bilgi edinin].


assertApi

Belirtilen API hakkında akıcı bir şekilde iddiada bulunmak için kullanılabilecek bir eşleyici nesnesi döndürür.

Söz dizimi

assertApi(apiName)

Parametreler

Parametre Tür Açıklama
apiName dize Kontrol edilecek API'nin adı; require() parametresine iletilen diziyle aynıdır.

Eşleyiciler

  • Subject.wasCalled()
  • Subject.wasNotCalled()
  • Subject.wasCalledWith(...expected)
  • Subject.wasNotCalledWith(...expected)

Örnekler

assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');

assertThat

assertThat API'si, Google'ın [Truth] kitaplığından modellenmiştir. Bir öznenin değeri hakkında akıcı bir şekilde iddialarda bulunmak için kullanılabilecek bir nesne döndürür. Bir iddia hatası, testi hemen durdurur ve başarısız olarak işaretler. Ancak bir testin başarısız olması diğer test durumlarını etkilemez.

Söz dizimi

assertThat(actual, opt_message)

Parametreler

Parametre Tür Açıklama
actual herhangi bir Akıcılık kontrollerinde kullanılacak değer.
opt_message dize İddia başarısız olursa yazdırılacak isteğe bağlı mesaj.

Eşleyiciler

Eşleştirici Açıklama
isUndefined() Konunun undefined olduğunu belirtir.
isDefined() Öznenin undefined olmadığını belirtir.
isNull() Konunun null olduğunu belirtir.
isNotNull() Öznenin null olmadığını belirtir.
isFalse() Konunun false olduğunu belirtir.
isTrue() Konunun true olduğunu belirtir.
isFalsy() Konunun yanlış olduğunu belirtir. Yanlış değerler: undefined, null, false, NaN, 0 ve '' (boş dize).
isTruthy() Konunun doğru olduğunu belirtir. Yanlış değerler: undefined, null, false, NaN, 0 ve '' (boş dize).
isNaN() Öznenin NaN değeri olduğunu belirtir.
isNotNaN() Öznenin NaN dışında bir değer olduğunu belirtir.
isInfinity() Öznenin pozitif veya negatif sonsuz olduğunu belirtir.
isNotInfinity() Öznenin pozitif veya negatif sonsuz dışında bir değer olduğunu belirtir.
isEqualTo(expected) Öznenin, belirtilen değere eşit olduğunu belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
isNotEqualTo(expected) Öznenin, belirtilen değere eşit olmadığını belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
isAnyOf(...expected) Öznenin, verilen değerlerden birine eşit olduğunu belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
isNoneOf(...expected) Öznenin, verilen değerlerden hiçbirine eşit olmadığını belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
isStrictlyEqualTo(expected) Öznenin, belirtilen değere tam olarak eşit (===) olduğunu belirtir.
isNotStrictlyEqualTo(expected) Öznenin, belirtilen değere tam olarak eşit (!==) olmadığını belirtir.
isGreaterThan(expected) Sıralı bir karşılaştırmada öznenin, verilen değerden (>) daha büyük olduğunu belirtir.
isGreaterThanOrEqualTo(expected) Sıralı bir karşılaştırmada öznenin, verilen değerden büyük veya bu değere eşit olduğunu (>=) belirtir.
isLessThan(expected) Sıralı bir karşılaştırmada öznenin, verilen değerden (<) küçük olduğunu belirtir.
isLessThanOrEqualTo(expected) Sıralı bir karşılaştırmada öznenin, verilen değerden (<=) küçük veya bu değere eşit olduğunu belirtir.
contains(...expected) Öznenin, verilen tüm değerleri herhangi bir sırada içeren bir dizi veya dize olduğunu belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
doesNotContain(...expected) Öznenin, verilen değerlerden hiçbirini içermeyen bir dizi veya dize olduğunu belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
containsExactly(...expected) Öznenin, verilen tüm değerleri herhangi bir sırada içeren ve başka değer içermeyen bir dizi olduğunu belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
doesNotContainExactly(...expected) Öznenin, verilen değerlerden farklı bir değer grubu içeren bir dizi olduğunu belirtir. Bu, referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
hasLength(expected) Öznenin, belirli uzunlukta bir dizi veya dize olduğunu belirtir. Değer bir dizi veya dize değilse beyan her zaman başarısız olur.
isEmpty() Öznenin boş bir dizi veya dize (uzunluk = 0) olduğunu belirtir. Değer bir dizi veya dize değilse iddia her zaman başarısız olur.
isNotEmpty() Öznenin boş olmayan bir dizi veya dize olduğunu (uzunluk > 0) belirtir. Değer bir dizi veya dize değilse iddia her zaman başarısız olur.
isArray() Konunun türünün dizi olduğunu belirtir.
isBoolean() Öznenin türünün boole olduğunu belirtir.
isFunction() Öznenin türünün bir işlev olduğunu belirtir.
isNumber() Öznenin türünün sayı olduğunu belirtir.
isObject() Konunun türünü nesne olarak belirtir.
isString() Konunun türünü dize olarak belirtir.

Örnekler

assertThat(undefined).isUndefined();
assertThat(id, 'ID must be defined').isDefined();
assertThat(null).isNull();
assertThat(undefined).isNotNull();
assertThat(true).isTrue();
assertThat(false).isFalse();
assertThat(1).isTruthy();
assertThat('').isFalsy();
assertThat(1/0).isInfinity();
assertThat(0).isNotInfinity();
assertThat(-'foo').isNaN();
assertThat(100).isNotNaN();
assertThat(sentUrl).isEqualTo('https://endpoint.example.com/?account=12345');
assertThat(category).isNotEqualTo('premium');
assertThat(5).isAnyOf(1, 2, 3, 4, 5);
assertThat(42).isNoneOf('the question', undefined, 41.9);
assertThat('value').isStrictlyEqualTo('value');
assertThat('4').isNotStrictlyEqualTo(4);
assertThat(['a', 'b', 'c']).contains('a', 'c');
assertThat(['x', 'y', 'z']).doesNotContain('f');
assertThat(['1', '2', '3']).containsExactly('3', '2', '1');
assertThat(['4', '5']).doesNotContainExactly('4');
assertThat('a string').hasLength(8);
assertThat([]).isEmpty();
assertThat('another string').isNotEmpty();

fail

Mevcut testi hemen geçersiz kılar ve sağlanmışsa belirtilen mesajı yazdırır.

Söz dizimi

fail(opt_message);

Parametreler

Parametre Tür Açıklama
opt_message dize İsteğe bağlı hata mesajı metni.

Örnek

fail('This test has failed.');

mock

mock API, korumalı alanlardaki API'lerin davranışını geçersiz kılmanıza olanak tanır. Şablon kodunda sahte API'nin kullanılması güvenlidir ancak yalnızca test modunda çalışır. Sahte veriler her test çalıştırılmadan önce sıfırlanır.

Söz dizimi

mock(apiName, returnValue);

Parametreler

Parametre Tür Açıklama
apiName dize Taklit edilecek API'nin adı; require() parametresine iletilen diziyle aynıdır.
returnValue herhangi bir API için döndürülecek değer veya API yerine çağrılan bir işlev. returnValue bir işlevse korumalı API yerine bu işlev çağrılır; returnValue işlev dışında bir şeyse korumalı API yerine bu değer döndürülür.

Örnekler

mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
    onSuccess();
});

mockObject

mockObject API, nesne döndüren korumalı alan API'lerinin davranışını geçersiz kılmanıza olanak tanır. API'nin şablon kodunda kullanılması güvenlidir ancak yalnızca test modunda çalışır. Sahte veriler her test çalıştırılmadan önce sıfırlanır.

Söz dizimi

mockObject(apiName, objectMock);

Parametreler

Parametre Tür Açıklama
apiName dize Taklit edilecek API'nin adı; require() parametresine iletilen diziyle aynıdır.
objectMock object API için döndürülecek değer veya API yerine çağrılan bir işlev. Nesne olmalıdır.

Örnekler

const storage = {};
let firestoreId = 1;

function asTestPromise(result) {
  return {
    then: (callback) => callback(result)
  };
}

mockObject('Firestore', {
  write: (collection, input) => {
    storage[collection + '/' + (++firestoreId)] = input;
    return asTestPromise(firestoreId);
  },
  read: (document) => asTestPromise({data: storage[document]})
});

runCode

Şablonun kodunu (yani Kod sekmesinin içeriğini) mevcut test ortamında belirli bir giriş verisi nesnesi ile çalıştırır.

Söz dizimi

runCode(data)

Parametreler

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

Döndürülen Değer

Değişken şablonlar için bir değişkenin değerini döndürür; diğer tüm şablon türleri için undefined döndürür.

Örnek

runCode({field1: 123, field2: 'value'});