Sunucu tarafı etiketleme API'leri

Bu belgede, sunucu tarafı etiketleme için kullanılan API'ler açıklanmaktadır.


addEventCallback

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

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

Söz dizimi

const addEventCallback = require('addEventCallback');

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

Parametreler

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

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

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

Bir istemcide:

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

claimRequest();

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

Etiket içinde:

const addEventCallback = require('addEventCallback');

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

İlişkilendirilmiş izinler

read_event_metadata


callLater

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

Örnek

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

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

Söz dizimi

callLater(function)

Parametreler

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

İlişkilendirilmiş izinler

Yok.


claimRequest

İsteği talep etmek için bir istemcide bu API'yi kullanın. Bir istek talep edildiğinde, container ek istemciler çalıştırmaz.

Bu API, bir etiket veya değişkende çağrılırsa istisna oluşturur. Bu API, istemci döndürüldükten sonra çağrılırsa (ör. callLater veya runContainer onComplete işlevinde olduğu gibi eşzamansız bir geri çağırmayla) çağrılırsa istisna oluşturur.

İstemcilerin runContainer API'yi çağırmadan önce bu API'yi kullanarak isteği talep etmesi gerekir.

Örnek

const claimRequest = require('claimRequest');

claimRequest();

Söz dizimi

claimRequest();

İlişkilendirilmiş izinler

Yok.


computeEffectiveTldPlusOne

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

Bağımsız değişken boş veya tanımsızsa bağımsız değişken değeri değiştirilmeden döndürülür. Aksi takdirde, bağımsız değişken bir dizeye zorlanır. Bağımsız değişken geçerli bir alan adı veya URL değilse boş bir dize döndürülür. Sunucu genel son ek listesini getiremezse bağımsız değişken değeri değiştirilmeden döndürülür.

Örnek

const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');

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

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

Söz dizimi

computeEffectiveTldPlusOne(domainOrUrl);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


createRegex

Yeni bir normal ifade örneği oluşturur ve bunu bir nesne içine sarmalanmış halde döndürür. Normal ifadeye doğrudan erişemezsiniz. Ancak bunu testRegex API, String.replace(), String.match() ve String.search() içine geçirebilirsiniz.

Normal ifade geçersizse veya sunucuda Re2 kullanılamıyorsa null değerini döndürür.

Bu API bir Re2 uygulaması kullanır. Sunucu Docker görüntüsü, 2.0.0 veya sonraki sürümlerde olmalıdır.

Örnek

const createRegex = require('createRegex');

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

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

Söz dizimi

createRegex(pattern, flags);

Parametreler

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

İlişkilendirilmiş izinler

Yok.

Minimum resim sürümü

2.0.0


decodeUri

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

Örnek

const decodeUri = require('decodeUri');

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

Söz dizimi

decodeUri(encoded_uri);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


decodeUriComponent

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

Örnek

const decodeUriComponent = require('decodeUriComponent');

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

Söz dizimi

decodeUriComponent(encoded_uri_component);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


encodeUri

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

Örnek

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

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

Söz dizimi

encodeUri(uri);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


encodeUriComponent

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

Örnek

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

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

Söz dizimi

encodeUriComponent(str);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


extractEventsFromMpv1

Gelen bir Measurement Protocol V1 isteğini, Birleştirilmiş Şema biçimindeki etkinlikler listesine dönüştürür. Ayıklanan etkinliklerin listesini döndürür. İstek doğru biçimde değilse hata verir.

Örnek

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

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

Söz dizimi

extractEventsFromMpv1();

İlişkilendirilmiş izinler

read_request izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:

  • body
  • query parameters

extractEventsFromMpv2

Gelen bir Measurement Protocol V2 isteğini, Birleştirilmiş Şema biçimindeki etkinlikler listesine dönüştürür. Ayıklanan etkinliklerin listesini döndürür. İstek doğru biçimde değilse hata verir.

Örnek

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

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

Söz dizimi

extractEventsFromMpv2();

İlişkilendirilmiş izinler

read_request izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:

  • body
  • query parameters

fromBase64

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

Söz dizimi

fromBase64(base64EncodedString);

Parametreler

Parametre Tür Açıklama
base64EncodedString dize Base64 olarak kodlanmış dize.

Örnek

const fromBase64 = require('fromBase64');

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

İlişkilendirilmiş izinler

Yok.


generateRandom

Belirli bir aralık dahilinde rastgele bir sayı (tam sayı) döndürür.

Örnek

const generateRandom = require('generateRandom');

const randomValue = generateRandom(0, 10000000);

Söz dizimi

generateRandom(min, max);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


getAllEventData

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

Söz dizimi

getAllEventData();

İlişkilendirilmiş izinler

read_event_data


getClientName

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

Söz dizimi

getClientName();

İlişkilendirilmiş izinler

read_container_data


getContainerVersion

Geçerli kapsayıcı hakkında veriler içeren bir nesne döndürür. Döndürülen nesne aşağıdaki alanlara sahip olur:

{
  containerId: string,
  debugMode: boolean,
  environmentName: string,
  environmentMode: boolean,
  previewMode: boolean,
  version: string,
}

Örnek

const getContainerVersion = require('getContainerVersion');

const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];

Söz dizimi

getContainerVersion();

İlişkilendirilmiş izinler

read_container_data


getCookieValues

Belirtilen ada sahip tüm çerezlerin değerlerini içeren bir diziyi döndürür.

Örnek

const getCookieValues = require('getCookieValues');

const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
  // ...
}

Söz dizimi

getCookieValues(name[, noDecode]);

Parametreler

Parametre Tür Açıklama
name dize Çerezin adı.
noDecode boolean true ise çerez değerlerinin kodu döndürülmeden önce bu değerler döndürülmez. Varsayılan olarak false değerine ayarlanır.

İlişkilendirilmiş izinler

get_cookies


getEventData

Etkinlik verilerinde belirtilen yoldaki değerin bir kopyasını döndürür. Etkinlik verisi yoksa veya belirtilen yolda bir değer yoksa undefined değerini döndürür.

Örnek

const getEventData = require('getEventData');

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

Parametreler

Parametre Tür Açıklama
keyPath herhangi bir Yol bileşenlerinin noktalarla ayrıldığı anahtar yolu. Yol bileşenleri, bir nesnedeki anahtarlar veya dizideki dizinler olabilir. keyPath dize değilse bir dizeye dönüşür.

Söz dizimi

getEventData(keyPath);

İlişkilendirilmiş izinler

read_event_data


getGoogleAuth

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

Örnek

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

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

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

Söz dizimi

getGoogleAuth(scopes);

Parametreler

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

İlişkilendirilmiş izinler

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


getGoogleScript

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

Vaat, iki anahtar içeren bir nesneye çözümlenir: script ve metadata. İstek başarısız olursa taahhüt bir reason anahtarıyla reddedilir.

metadata nesnesi, kaynak yanıtı başlıklarına bağlı olarak aşağıdaki önbelleğe alma meta verilerini içerir. Her alan, yalnızca ilgili üstbilgi kaynak yanıtında mevcutsa mevcut olur.

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

Örnek

const getGoogleScript = require('getGoogleScript');

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

Söz dizimi

getGoogleScript(script[, options]);

Parametreler

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

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

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

'GTM' seçeneği, Google Etiket Yöneticisi komut dosyasını https://www.googletagmanager.com/gtm.js kaynağından getirir.
options object (nesne) İsteğe bağlı istek seçenekleri. Desteklenen seçenekler için aşağıya bakın.

Seçenekler

Option Tür Açıklama
id dize Gtag ölçüm kimliğine sahip 'GTAG' ve web kapsayıcısı kimliğine sahip 'GTM' için geçerlidir (ör. GTM-XXXX).
debug herhangi bir Doğruysa, ölçüm komut dosyasının hata ayıklama sürümünü ister ve döndürür.
timeout numara Milisaniye cinsinden istek zaman aşımı; pozitif olmayan değerler göz ardı edilir. İstek zaman aşımına uğrarsa geri çağırma, komut dosyası değeri için undefined ve meta veri nesnesi için {} ile çağrılır.

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

İlişkilendirilmiş izinler

send_http izni gerektirir. Bu izin, aşağıdakilerin en azından erişimine izin verecek şekilde yapılandırılmalıdır:

  • Google alan adlarına izin ver

getRemoteAddress

Forwarded ve X-Forwarded-For gibi istek başlıklarını okuyarak isteğin geldiği IP adresinin dize gösterimini döndürür (ör. IPv4 için 12.345.67.890 veya IPv6 için 2001:0db8:85a3:0:0:8a2e:0370:7334). Not: Bu API, kaynak IP'yi bulmak için elimizden geleni yapsa da sonucun doğru olduğunu garanti edemez.

Söz dizimi

getRemoteAddress();

İlişkilendirilmiş izinler

read_request izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:

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

getRequestBody

İstek gövdesini (mevcutsa) dize olarak, aksi takdirde undefined olarak döndürür.

Söz dizimi

getRequestBody();

İlişkilendirilmiş izinler

read_request


getRequestHeader

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

Örnek

const getRequestHeader = require('getRequestHeader');

const host = getRequestHeader('host');

Söz dizimi

getRequestHeader(headerName);

Parametreler

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

İlişkilendirilmiş izinler

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şkilendirilmiş izinler

Yok.


getRequestPath

İstek yolunu sorgu dizesi olmadan döndürür. Örneğin, URL '/foo?id=123' ise '/foo' sonucunu döndürür. Sunucu kapsayıcı URL'si önekini yoldan otomatik olarak çıkarır. Örneğin, Sunucu kapsayıcı URL'si https://example.com/analytics ve istek yolu '/analytics/foo' ise '/foo' sonucunu döndürür.

Örnek

const getRequestPath = require('getRequestPath');

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

Söz dizimi

getRequestPath();

İlişkilendirilmiş izinler

read_request


getRequestQueryParameter

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

Örnek

const getRequestQueryParameter = require('getRequestQueryParameter');

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

Söz dizimi

getRequestQueryParameter(name);

Parametreler

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

İlişkilendirilmiş izinler

read_request


getRequestQueryParameters

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

Örnek

const getRequestQueryParameters = require('getRequestQueryParameters');

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

Söz dizimi

getRequestQueryParameters();

İlişkilendirilmiş izinler

read_request


getRequestQueryString

İstek sorgusunu, başında soru işareti olmadan bir dize veya istek URL'si bir sorgu dizesi içermiyorsa boş bir dize olarak döndürür.

Örnek

const getRequestQueryString = require('getRequestQueryString');

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

Söz dizimi

getRequestQueryString();

İlişkilendirilmiş izinler

read_request


getTimestamp

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

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

Söz dizimi

getTimestamp();

İlişkilendirilmiş izinler

Yok.


getTimestampMillis

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

Söz dizimi

getTimestampMillis();

İlişkilendirilmiş izinler

Yok.


getType

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

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

Örnek

const getType = require('getType');

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

Söz dizimi

getType(value);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


hmacSha256

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

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

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

Değerler, base64 kodlu HMAC anahtarlarıdır.

Örnek

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

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

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

Söz dizimi

hmacSha256(data, keyId, options)

Parametreler

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

Seçenekler

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

İlişkilendirilmiş izinler

use_custom_private_keys

Minimum resim sürümü

1.0.0


isRequestMpv1

Gelen istek bir Measurement Protocol V1 isteğiyse true, aksi halde false değerini döndürür.

Örnek

const isRequestMpv1 = require('isRequestMpv1');

if (isRequestMpv1()) {
  // Handle Measurement Protocol V1 request.
  const events = extractEventsFromMpv1();
}

Söz dizimi

isRequestMpv1();

İlişkilendirilmiş izinler

Yok.


isRequestMpv2

Gelen istek bir Measurement Protocol V2 isteğiyse true, aksi halde false değerini döndürür.

Örnek

const isRequestMpv2 = require('isRequestMpv2');

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

Söz dizimi

isRequestMpv2();

İlişkilendirilmiş izinler

Yok.


logToConsole

Bağımsız değişkenlerini konsola günlüğe kaydeder.

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

Örnek

const logToConsole = require('logToConsole');

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

Söz dizimi

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

Parametreler

API bir veya daha fazla bağımsız değişken alır. Gerekirse bu bağımsız değişkenlerin her biri dizeye dönüştürülür ve konsolda günlüğe kaydedilir.

İlişkilendirilmiş izinler

logging


makeInteger

Belirli bir değeri sayıya (tamsayı) dönüştürür.

Söz dizimi

makeInteger(value);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


makeNumber

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

Söz dizimi

makeNumber(value);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


makeString

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

Söz dizimi

makeString(value);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


makeTableMap

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

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

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

içine girer:

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

Bir Nesne döndürür: Dönüştürülen Map anahtar/değer çifti ona eklenir veya null değilse döndürülür.

Söz dizimi

makeTableMap(tableObj, keyColumnName, valueColumnName);

Parametreler

Parametre Tür Açıklama
tableObj Listele Dönüştürülecek tablo nesnesi. Bu, her Map öğesinin tablodaki bir satırı temsil ettiği bir haritalar listesidir. Bir satır nesnesindeki her özellik adı, sütun adıdır ve özellik değeri, satırdaki sütun değeridir.
keyColumnName dize Değerleri dönüştürülen Map içinde anahtar haline gelecek sütunun adı.
valueColumnName dize Değerleri dönüştürülen Map öğesinde değer haline gelecek sütunun adı.

İlişkilendirilmiş izinler

Yok.


parseUrl

URL nesnesine benzer şekilde, belirli bir URL'nin tüm bileşen parçalarını içeren bir nesne döndürür.

Bu API, bozuk URL'ler için undefined değerini döndürür. Doğru şekilde biçimlendirilmiş URL'ler için URL dizesinde bulunmayan alanlar, boş dize değeri veya searchParams durumunda boş nesne değeri içerir.

Döndürülen nesne aşağıdaki alanları içerir:

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

Örnek

const parseUrl = require('parseUrl');

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

Söz dizimi

parseUrl(url);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


returnResponse

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

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

Söz dizimi

returnResponse();

Örnek

runContainer örneğini inceleyin.

İlişkilendirilmiş izinler

return_response


runContainer

Bir etkinlik kapsamında kapsayıcı mantığını (değişkenler, tetikleyiciler, etiketler) çalıştırır. Container yürütme sırasında bu API çağrılırsa container tekrar çalıştırılır.

onComplete ve onStart geri çağırmaları bindToEvent adlı bir işlev alır. Etkinlik bağlamında API çalıştırmak için bindToEvent kullanın. Daha fazla ayrıntı için addEventCallback örneğine bakın.

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

const returnResponse = require('returnResponse');
const runContainer = require('runContainer');

// Runs the container with a simple pageview event and then returns a response.
runContainer({'event_name': 'pageview'}, () => returnResponse());

Söz dizimi

runContainer(event, onComplete, onStart);

Parametreler

Parametre Tür Açıklama
event object (nesne) Etkinlik parametreleri.
onComplete işlev Tüm etiketlerin tetiklenmesi bittikten sonra çağrılan bir geri çağırma.
onStart işlev Etiketler etkinleşmeye başlamadan hemen önce çağrılan bir geri çağırma.

İlişkilendirilmiş izinler

run_container


sendEventToGoogleAnalytics

Ortak Etkinlik Verileri'ni kullanarak Google Analytics'e tek bir etkinlik gönderir ve location anahtarı olan bir nesneye çözümlenen veya reason anahtarı olan bir nesneyi reddeden bir taahhüt döndürür. Universal Analytics veya Google Analytics 4 hedefi, etkinlik verilerindeki ölçüm kimliğini temel alır.

location alanı (varsa) location üstbilgisine ayarlanır.

Örnek

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

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

Söz dizimi

sendEventToGoogleAnalytics(event);

Parametreler

Parametre Tür Açıklama
event object (nesne) Birleştirilmiş Şema biçimindeki etkinlik.

İlişkilendirilmiş izinler

send_http izni gerektirir. Bu izin, aşağıdakilerin en azından erişimine izin verecek şekilde yapılandırılmalıdır:

  • Google alan adlarına izin ver

sendHttpGet

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

Çözümlenen sonuç üç anahtar içeren bir nesnedir: statusCode, headers ve body. İstek başarısız olursa (ör. geçersiz URL, barındırılacak yol yok, SSL anlaşma hatası vb.) taahhüt şu değerle reddedilir: {reason: 'failed'}. timeout seçeneği ayarlandıysa ve istek zaman aşımına uğradıysa söz, şu ifadeyle reddedilir: {reason: 'timed_out'}

Örnek

const sendHttpGet = require('sendHttpGet');

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

Söz dizimi

sendHttpGet(url[, options]);

Parametreler

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

Seçenekler

Option Tür Açıklama
headers dize Ek istek başlıkları.
timeout numara İstek iptal edilmeden önceki milisaniye cinsinden zaman aşımı. Varsayılan olarak 15000 değerine ayarlanır.
authorization object (nesne) googleapis.com'e istekte bulunurken yetkilendirme üstbilgileri eklemek için getGoogleAuth çağrısındaki isteğe bağlı yetkilendirme nesnesi.

İlişkilendirilmiş izinler

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 birlikte çözümlenen bir söz döndürür.

Çözümlenen sonuç üç anahtar içeren bir nesnedir: statusCode, headers ve body. İstek başarısız olursa (ör. geçersiz URL, barındırılacak yol yok, SSL anlaşma hatası vb.) taahhüt şu değerle reddedilir: {reason: 'failed'}. timeout seçeneği ayarlandıysa ve istek zaman aşımına uğradıysa söz, şu ifadeyle reddedilir: {reason: 'timed_out'}

Örnek

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

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

Söz dizimi

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

Parametreler

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

Seçenekler

Option Tür Açıklama
headers dize Ek istek başlıkları.
method object (nesne) İstek yöntemi. Varsayılan olarak GET değerine ayarlanır.
timeout numara İstek iptal edilmeden önceki milisaniye cinsinden zaman aşımı. Varsayılan olarak 15000 değerine ayarlanır.
authorization object (nesne) googleapis.com'e istekte bulunurken yetkilendirme üstbilgileri eklemek için getGoogleAuth çağrısındaki isteğe bağlı yetkilendirme nesnesi.

İlişkilendirilmiş izinler

send_http


sendPixelFromBrowser

Sağlanan URL'yi <img> etiketi olarak yüklemek için tarayıcıya bir komut gönderir. Bu komut protokolü, GA4 için Google Etiketi ve Google Analytics: GA Etkinliği web etiketlerinde desteklenir. Sunucu kapsayıcı URL'sini yapılandırmanız gerekir. Diğer ayrıntılar için talimatları inceleyin.

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

Örnek:

const sendPixelFromBrowser = require('sendPixelFromBrowser');

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

Söz dizimi

sendPixelFromBrowser(url)

Parametreler

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

İlişkilendirilmiş izinler

send_pixel_from_browser


setCookie

Belirtilen seçeneklerle bir çerezi ayarlar veya siler.

Bir çerezi silmek için, çerezin oluşturulduğu yol ve alanla aynı yola ve alana sahip bir çerez ayarlamalı ve çereze geçmişte olan bir geçerlilik süresi (ör. "Thu, 01 Jan 1970 00:00:00 GMT") değeri atanmalıdır.

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

Örnek

const setCookie = require('setCookie');

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

Söz dizimi

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

Parametreler

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

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

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

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

  • max-age: Çerezin kullanım süresi dolana kadar geçen saniye sayısı. Sıfır veya negatif bir sayıysa çerezin kullanım süresi hemen sona erer. Hem expires hem de max-age ayarlanırsa max-age öncelikli olur.

  • path (yol): İstenen URL'de bulunması gereken bir yol, aksi takdirde tarayıcı Çerez üstbilgisini göndermez.

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

  • sameSite: Bir çerezin, kaynaklar arası isteklerle birlikte gönderilmemesi gerektiğini iddia eder. 'strict', 'lax' veya 'none' olmalıdır.

İlişkilendirilmiş izinler

set_cookie


setPixelResponse

Yanıt gövdesini 1x1 GIF'e ayarlar, Content-Type üstbilgisini "image/gif" olarak ayarlar, önbelleğe alma üst bilgilerini kullanıcı aracıları yanıtı önbelleğe almayacak şekilde ayarlar ve yanıt durumunu 200 olarak ayarlar.

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

Söz dizimi

setPixelResponse();

İlişkilendirilmiş izinler

access_response izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:

  • headers - Aşağıdaki anahtarlara izin vermelidir
    • content-type
    • cache-control
    • expires
    • pragma
  • body
  • status

setResponseBody

Bağımsız değişkenin yanıt gövdesini ayarlar.

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

Söz dizimi

setResponseBody(body[, encoding]);

Parametreler

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

İlişkilendirilmiş izinler

access_response izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:

  • body

setResponseHeader

Döndürülecek yanıtta bir üstbilgi ayarlar. Bu API tarafından daha önce bu ada sahip bir başlık (büyük/küçük harfe duyarlı değil) oluşturulmuşsa sonraki çağrı, önceki arayan tarafından ayarlanan değerin üzerine yazar veya değeri siler.

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

Söz dizimi

setResponseHeader(name, value);

Parametreler

Parametre Tür Açıklama
name dize Başlık adı. HTTP üst bilgi adları büyük/küçük harfe duyarlı değildir. Bu nedenle başlık adı küçük harfle yazılır.
value string undefined Başlık değeri. Null veya tanımsız olursa bu işlem, adlandırılmış üst bilgiyi döndürülecek yanıttan temizler.

İlişkilendirilmiş izinler

access_response izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:

  • headers

setResponseStatus

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

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

Söz dizimi

setResponseStatus(statusCode);

Parametreler

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

İlişkilendirilmiş izinler

access_response izni gerektirir. Bu izin, aşağıdakilerin en az birine erişime izin verecek şekilde yapılandırılmalıdır:

  • status

sha256

Girişin SHA-256 özetini hesaplar ve options nesnesi farklı bir çıkış kodlaması belirtmedikçe base64'te kodlanmış özetle bir geri çağırma yapar.

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

Örnek

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

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

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

Söz dizimi

sha256(input, onSuccess, options = undefined);

Parametreler

Parametre Tür Açıklama
input dize Karma oluşturma işlemi uygulanacak dize.
onSuccess işlev options nesnesi farklı bir çıkış kodlaması belirtmediği sürece base64'te kodlanmış sonuç özetiyle çağrılır.
options object (nesne) Çıkış kodlamasını belirtmek için Optional options nesnesi. Belirtilirse nesne, base64 veya hex değerlerinden biriyle outputEncoding anahtarını içermelidir.

İlişkilendirilmiş izinler

Yok.


sha256Sync

options nesnesi farklı bir çıkış kodlaması belirtmedikçe, base64 olarak kodlanmış girişin SHA-256 özetini hesaplar ve döndürür.

Örnek

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

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

Söz dizimi

sha256Sync(input, options = undefined);

Parametreler

Parametre Tür Açıklama
input dize Karma oluşturma işlemi uygulanacak dize.
options object (nesne) Çıkış kodlamasını belirtmek için Optional options nesnesi. Belirtilirse nesne, base64 veya hex değerlerinden biriyle outputEncoding anahtarını içermelidir.

İlişkilendirilmiş izinler

Yok.


templateDataStorage

Şablon veri depolamaya erişim yöntemlerine sahip bir nesne döndürür. Şablon verilerinin depolanması, verilerin tek bir şablonun yürütme işlemleri arasında paylaşılmasını sağlar. Şablon veri depolamasında depolanan veriler, container'ı çalıştıran sunucuda kalır. Çoğu durumda, container'ı çalıştıran birden fazla sunucu vardır. Bu nedenle, verilerin şablon veri depolamada depolanması, sonraki her isteğin verilere erişebileceğini garanti etmez.

"templateDataStorage" adındaki "data" ifadesi, bu API kullanılarak yalnızca düz ve işlevsiz veri türlerinin depolanabileceği anlamına gelir. API'ye iletilen işlevler veya işlev referansları null olarak depolanır.

Söz dizimi

const templateDataStorage = require('templateDataStorage');

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

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

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

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

Örnek

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

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

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

İlişkilendirilmiş izinler

access_template_storage


testRegex

Bir dizeyi createRegex API'si aracılığıyla oluşturulan bir normal ifadeyle karşılaştırarak test eder. Normal ifade eşleşirse true değerini döndürür. Aksi takdirde false değerini döndürür.

Global bayrakla oluşturulan bir normal ifade durum bilgilidir. Ayrıntılı bilgi için RegExp dokümanlarına bakın.

Örnek

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

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

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

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

Söz dizimi

testRegex(regex, string);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


toBase64

Bir dizeyi base64 veya base64url olarak kodlar. Varsayılan olarak base64 kodlamasına ayarlanır.

Söz dizimi

toBase64(input, options);

Parametreler

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

Seçenekler

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

Örnek

const toBase64 = require('toBase64');

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

İlişkilendirilmiş izinler

Yok.


BigQuery

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

BigQuery.insert işlevi, BigQuery tablosuna veri yazmaya olanak tanır. Başarılı bir eklemenin ardından çözümlenen veya bir hatayı reddeden bir vaat döndürür.

Ekleme işlemi başarılı olduğunda, söz konusu bağımsız değişken olmadan çözümlenir.

Ekleme başarısız olduğunda, taahhüt, hata nedenini içeren bir nesne listesiyle ve hata oluşursa muhtemelen bir satır nesnesiyle reddedilir. İsteğin bir kısmı başarıyla tamamlanırken diğer kısmı tamamlanmayabilir. Vaat, bu durumda hangi satırların eklendiğini ayırt etmeye yardımcı olmak amacıyla bir satır nesnesi içeren her satırdaki hata listesiyle birlikte reddedilir (Aşağıdaki Hata Örnekleri bölümüne bakın). Daha fazla bilgi için BigQuery'nin hata mesajları ile ilgili belgelerine bakın.

Söz dizimi

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

Parametre Tür Açıklama
connectionInfo object (nesne) BigQuery tablosuna bağlanmak için gereken bilgileri tanımlar. İsteğe bağlı bir parametre ve iki zorunlu parametre vardır:
  • projectId - İsteğe bağlı Google Cloud Platform proje kimliği. Atlanırsa 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ış olacaktır.
  • datasetId - BigQuery Veri Kümesi Kimliği.
  • tableId - BigQuery Tablo Kimliği.
rows Dizi Tabloya eklenecek satırlar.
options object (nesne) İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: ignoreUnknownValues ve skipOverrideRows. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.)

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

Hata Örnekleri

Modül bulunamadı hatası, sunucu kapsayıcınızın muhtemelen görüntümüzün, henüz BigQuery modülünü içermeyen daha eski bir sürümünü çalıştırdığı anlamına gelir. Lütfen dağıtım komut dosyamızı kullanarak sunucu kapsayıcınızı aynı ayarlarla yeniden dağıtın. İşlem tamamlandığında modül otomatik olarak dahil edilir.

Ekleme dışı bir hata genellikle reason anahtarlı bir hata nesnesi içerir:

[{reason: 'invalid'}]

Ekleme hatası, bir errors dizisi ve row nesnesine sahip birden çok hata nesnesi içerebilir. Aşağıda, yalnızca bir satırda hata olan iki satır eklenmesinden kaynaklanan hata yanıtı örneği verilmiştir:

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

Örnek

const BigQuery = require('BigQuery');

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

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

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

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

İlişkilendirilmiş izinler

access_bigquery


Firestore

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

Bu API yalnızca Yerel modda Firestore'u destekler, Datastore modunda Firestore'u desteklemez.

Firestore.read

Firestore.read işlevi, bir Firestore belgesindeki verileri okur ve iki anahtar içeren bir nesneye çözümlenen bir vaat döndürür: id ve data. Belge yoksa taahhüt, not_found öğesine eşit reason anahtarı içeren bir nesneyle reddedilir.

Söz dizimi

Firestore.read(path[, options]);

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

Parametre Tür Açıklama
projectId dize Optional. Google Cloud Platform proje kimliği. Atlanırsa proje kimliği için access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId, GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış olacaktır.
disableCache boolean Optional. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma varsayılan olarak etkindir. Bu özellik, isteğin geçerli olduğu süre boyunca sonuçları önbelleğe alır.
transaction dize Optional. Firestore.runTransaction() işlevinden alınan değer. Bir işlem içinde kullanılacak işlemi işaretler.

Örnek

const Firestore = require('Firestore');

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

Firestore.write

Firestore.write işlevi, bir Firestore belgesine veya koleksiyonuna veri yazar. Yol bir koleksiyona gidiyorsa rastgele oluşturulan kimlikle bir belge oluşturulur. Yol bir dokümana aitse ve doküman yoksa oluşturulur. Bu API, eklenen veya değiştirilen belgenin kimliğine çözümlenen bir taahhüt döndürür. İşlem seçeneği kullanılırsa API yine de bir söz döndürür, ancak yazma işlemleri toplu olarak işlendiği için kimliği içermez.

Söz dizimi

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

Parametreler

Parametre Tür Açıklama
path dize Belge veya koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir.
input object (nesne) Dokümana yazılacak değer. Birleştirme seçeneği ayarlanırsa API, girişteki anahtarları belgeyle birleştirir.
options object (nesne) İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: projectId, merge ve transaction. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümüne bakın.)

Parametre Tür Açıklama
projectId dize Optional. Google Cloud Platform proje kimliği. Atlanırsa proje kimliği için access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId, GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış olacaktır.
merge boolean Optional. true olarak ayarlandıysa girişteki anahtarları dokümanla birleştirin. Aksi takdirde yöntem tüm dokümanı geçersiz kılar. Varsayılan olarak false değerine ayarlanır.
transaction dize Optional. Firestore.runTransaction() işlevinden alınan değer. Bir işlem içinde kullanılacak işlemi işaretler.

Örnek

const Firestore = require('Firestore');

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

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

Firestore.query

Firestore.query işlevi, belirtilen koleksiyonu sorgular ve sorgu koşullarıyla eşleşen bir Firestore belgesi dizisine çözümlenen bir söz döndürür. Firestore belge nesnesi, yukarıdaki Firestore.read bölümünde listelenenle aynıdır. Sorgu koşullarıyla eşleşen belge yoksa döndürülen taahhüt boş bir diziye çözümlenir.

Söz dizimi

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

Parametre Tür Açıklama
collection dize Koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir.
queryConditions Dizi Sorgu koşulları dizisi. Her sorgu, üç değer içeren bir dizi biçiminde gelir: key, operator ve estimatedValue. E.g.: [[‘id’, ‘<’, ‘5’], [‘durum’, ‘==’, ‘CA’]].

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

Parametre Tür Açıklama
projectId dize Optional. Google Cloud Platform proje kimliği. Atlanırsa proje kimliği için access_firestore izin ayarı * veya GOOGLE_CLOUD_PROJECT olarak ayarlandığı sürece projectId, GOOGLE_CLOUD_PROJECT ortam değişkeninden alınır. Sunucu kapsayıcısı Google Cloud'da çalışıyorsa GOOGLE_CLOUD_PROJECT, Google Cloud projesinin kimliğine ayarlanmış olacaktır.
disableCache boolean Optional. Önbelleğin devre dışı bırakılıp bırakılmayacağını belirler. Önbelleğe alma varsayılan olarak etkindir. Bu özellik, isteğin geçerli olduğu süre boyunca sonuçları önbelleğe alır.
limit numara Optional. Sorgu tarafından döndürülen maksimum sonuç sayısını değiştirir ve varsayılan olarak 5 değerini alır.
transaction dize Optional. Firestore.runTransaction() işlevinden alınan değer. Bir işlem içinde kullanılacak işlemi işaretler.

Örnek

const Firestore = require('Firestore');

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

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

Firestore.runTransaction

Firestore.runTransaction işlevi, kullanıcının Firestore'dan atomik olarak okuma ve yazmasına imkan tanır. Eşzamanlı bir yazma işlemi veya başka bir işlem çakışması olursa işlem en fazla iki kez yeniden denenir. Toplam üç denemeden sonra başarısız olursa API bir hatayla reddeder. Bu API, işlem başarılı olursa her yazma işlemi için bir dizi belge kimliği dizisine çözümlenen bir söz döndürür. İşlem başarılı olursa hatayla birlikte reddedilir.

Söz dizimi

Firestore.runTransaction(callback[, options]);

Parametreler

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

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

Örnek

const Firestore = require('Firestore');

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

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

Hata Örneği

Her Firestore işlevinde bulunan hatalar, reason anahtarı içeren bir nesne ile reddedilir:

Firestore.read(...).then(onSuccess, (error) => {
  if (error.reason === 'unknown') {
    // Handle the unknown error here.
  }
});

Hata nedenleri, Firestore REST API Hata Kodlarını içerebilir ancak bunlarla sınırlı değildir.

İlişkilendirilmiş izinler

access_firestore


JSON

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

parse() işlevi, dizeyle açıklanan değeri veya nesneyi oluşturmak için bir JSON dizesini ayrıştırır. Değer ayrıştırılamazsa (ör. hatalı biçimlendirilmiş JSON) işlev, undefined değerini döndürür. Girdi değeri dize değilse giriş dize olmaya zorlanır.

stringify() işlevi, girişi bir JSON dizesine dönüştürür. Değer ayrıştırılamazsa (ör. nesnenin bir döngüsü varsa) yöntem undefined değerini döndürür.

Örnek

const JSON = require('JSON');

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

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

Söz dizimi

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

İlişkilendirilmiş izinler

Yok.


Math

Math işlevleri sağlayan bir nesne.

Söz dizimi

const Math = require('Math');

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

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

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

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

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

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

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

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

Parametreler

Matematiksel işlev parametreleri sayılara dönüştürülür.

İlişkilendirilmiş izinler

Yok.


Messages

Aşağıdaki API'ler, mesajların bir kapsayıcının farklı bölümleri arasında aktarılmasına olanak tanımak için birlikte çalışır.


addMessageListener

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

  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ğırmanın yalnızca belirli bir etkinlikten mesaj alması gerekiyorsa bu API'yi, runContainer API'sinin onStart işlevindeki bindToEvent öğesini kullanarak etkinliğe bağlayın. Örneği inceleyin.

Söz dizimi

const addMessageListener = require('addMessageListener');

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

Parametreler

Parametre Tür Açıklama
messageType dize Dinlenecek mesaj türüdür. Değer bir dize değilse dize olmaya zorlanır.
callback işlev Uygun mesaj türünde bir mesaj gönderildiğinde çalıştırılacak geri çağırma. Geri çağırma bir işlev değilse API hiçbir şey yapmaz.

Örnek

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

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

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

İlişkilendirilmiş izinler

use_message izni gerektirir. Bu izin en azından aşağıdakilere izin verecek şekilde yapılandırılmalıdır:

  • listen veya listen_and_send arasından Usage olan bir mesaj türü.

hasMessageListener

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

Söz dizimi

const hasMessageListener = require('hasMessageListener');

hasMessageListener('send_pixel');

İlişkilendirilmiş izinler

Yok.


sendMessage

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

Söz dizimi

const sendMessage = require('sendMessage');

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

Parametreler

Parametre Tür Açıklama
messageType dize Gönderilecek mesajın türü. Değer, dize değilse dize olmaya zorlanır.
message object (nesne) Gönderilecek ileti. Mesaj bir nesne değilse API hiçbir şey yapmaz.

İlişkilendirilmiş izinler

use_message izni gerektirir. Bu izin en azından aşağıdakilere izin verecek şekilde yapılandırılmalıdır:

  • listen_and_send veya send arasından Usage olan bir mesaj türü.

Object

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

keys() yöntemi, Standart Kitaplık Object.keys() davranışını sağlar. Belirli bir nesnenin kendi numaralandırılabilir özellik adlarının bir dizisini, bir for...in... döngüsünün yapacağı sırayla döndürür. Giriş değeri nesne değilse bir nesne olmaya zorlanır.

values() yöntemi, Standart Kitaplık Object.values() davranışını sağlar. Belirli bir nesnenin kendi numaralandırılabilir özellik değerlerinin bir dizisini, bir for...in... döngüsüyle aynı sırada döndürür. Giriş değeri nesne değilse bir nesneye zorlanır.

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

freeze() yöntemi, Standart Kitaplık Object.freeze() davranışını sağlar. Dondurulmuş bir nesne artık değiştirilemez. Bir nesnenin dondurması, yeni özelliklerin bu nesneye eklenmesini, mevcut özelliklerin kaldırılmasını ve mevcut özelliklerin değerlerinin değiştirilmesini engeller. freeze(), aktarılan nesneyi döndürür. Temel veya null bağımsız değişken, donmuş bir nesne gibi değerlendirilir ve döndürülür.

delete() yöntemi, Standart Kitaplık silme operatörü davranışını sağlar. Nesne donmadığı sürece belirtilen anahtarı nesneden kaldırır. Standart Kitaplık silme operatöründe olduğu gibi, ilk giriş değeri (objectInput) ikinci giriş değeri (keyToDelete) var olmayan bir anahtarı belirtse bile dondurulmayan bir nesneyse true değerini döndürür. Diğer tüm durumlarda false değerini döndürür. Ancak bu yöntem, Standart Kitaplık silme operatöründen aşağıdaki yönleriyle farklıdır:

  • keyToDelete, iç içe yerleştirilmiş bir anahtar belirten noktayla ayrılmış bir dize olamaz.
  • delete(), bir diziden öğe kaldırmak için kullanılamaz.
  • delete(), genel kapsamdan herhangi bir mülkü kaldırmak için kullanılamaz.

Söz dizimi

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

Parametreler

Object.keys

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

Object.values

Parametre Tür Açıklama
objectInput herhangi bir Değerleri numaralanacak nesne. Giriş bir nesne değilse bir nesneye zorlanır.

Object.entries

Parametre Tür Açıklama
objectInput herhangi bir Anahtar/değer çiftleri numaralanacak nesne. Giriş bir nesne değilse bir nesneye zorlanır.

Object.freeze

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

Object.delete

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

Örnek

const Object = require('Object');

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

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

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

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

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

Promise

Vaatlerle etkileşim için yöntemler sağlayan bir nesne döndürür.

Vaatler işlevsel olarak JavaScript vaatleriyle eşdeğerdir. Her örneğin, bir Promise döndüren ve söz konusu gerçekleştiğinde başka işlem yapılmasına olanak tanıyan üç yöntem vardır:

  • .then() - Hem çözülen hem de reddedilen destek yazışmalarını ele alır. Biri başarı durumu, diğeri hata durumu için olmak üzere, parametre olarak iki geri çağırma işlemi kullanılır.
  • .catch() - Yalnızca reddedilen destek yazışmalarını ele alır. Parametre olarak bir geri çağırma alır.
  • .finally() - Vaatin sonuçlandırılmış veya reddedilmiş olmasına bakılmaksızın kodun çalıştırılması için bir yol sağlar. Bir geri çağırmayı, bağımsız değişken olmadan çağrılan bir parametre olarak alır.

Vaat döndüren bir değişken, vaadin çözümlenmiş değerine eşit olur veya söz reddedilirse false bu değere eşit olur.

Örnek

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

Promise.all

Aşağıdakilerden birinin sözünü döndürür:

  • tüm girişler çözümlendiğinde çözümlenir veya
  • girişlerden herhangi biri reddedildiğinde reddeder

Söz dizimi

Promise.all(inputs);

Parametreler

Parametre Tür Açıklama
inputs Dizi Değerler veya vaatler dizisi. Bir giriş, vaat edilen bir değer değilse sözünün çözümlenmiş değeriymiş gibi aktarılır. Giriş bir dizi değilse hata verir.

Örnek

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

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

İlişkilendirilmiş izinler

Yok.

Promise.create

JavaScript vaadiyle işlevsel olarak eşdeğer bir söz oluşturur.

Söz dizimi

Promise.create(resolver);

Parametreler

Parametre Tür Açıklama
resolver işlev Çözümle ve reddet şeklinde iki işlevle çağrılan bir işlev. Döndürülen söz, ilgili parametre çağrıldığında çözümlenir veya reddedilir. Çözümleyici bir işlev değilse hata verir.

Örnek

const Promise = require('Promise');

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

İlişkilendirilmiş izinler

Yok.

API'leri test etme

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


assertApi

Belirli bir API hakkında akıcı şekilde iddialarda bulunmak için kullanılabilecek bir eşleştirici nesne döndürür.

Söz dizimi

assertApi(apiName)

Parametreler

Parametre Tür Açıklama
apiName dize Kontrol edilecek API'nin adı; require() işlevine iletilen dize.

Eşleştiriciler

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

Örnekler

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

assertThat

assertThat API, Google'ın [Truth] kitaplığına göre modellenmiştir. Öznenin değeri hakkında akıcı bir şekilde iddialarda bulunmak için kullanılabilecek bir nesne döndürür. Onaylama hatası, testi hemen durdurur ve başarısız olarak işaretler. Bununla birlikte, bir testteki başarısızlık diğer test durumlarını etkilemez.

Söz dizimi

assertThat(actual, opt_message)

Parametreler

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

Eşleştiriciler

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

Örnekler

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

fail

Geçerli test hemen başarısız olur ve sağlanmışsa, belirtilen iletiyi yazdırır.

Söz dizimi

fail(opt_message);

Parametreler

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

Örnek

fail('This test has failed.');

mock

mock API, Korumalı Alana Sahip API'lerin davranışını geçersiz kılmanıza olanak tanır. Örnek API, şablon kodunda güvenle kullanılabilir ancak test modunda değilken çalışmaz. Her test yürütülmeden önce örnekler sıfırlanır.

Söz dizimi

mock(apiName, returnValue);

Parametreler

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

Örnekler

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

runCode

Belirli bir giriş veri nesnesiyle geçerli test ortamında şablon için kodu (yani, Kod sekmesinin içeriğini) çalıştırır.

Söz dizimi

runCode(data)

Parametreler

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

Dönüş Değeri

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

Örnek

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