Sunucu tarafı etiketleme API'leri

Bu dokümanda, sunucu tarafı etiketleme için API'ler özetlenmektedir.


addEventCallback

Bir etkinliğin sonunda çağrılacak bir geri çağırma işlevi kaydeder. Geri çağırma, etkinlikle ilgili tüm etiketler yürütüldüğünde çağrılır. Geri çağırma iki değer iletir: işlevi çağıran container'ı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şleviyle belirli bir etkinliğe bağlı olmalıdır. Daha fazla bilgi için örneğe bakın.

Söz dizimi

const addEventCallback = require('addEventCallback');

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

Parametreler

Parametre Tür Açıklama
callback 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 verisi nesneleri dizisi. Etkinlik sırasında tetiklenen her etiket bu dizide bir girişe sahip olacaktır. Etiket veri nesnesi, etiketin kimliğini (id), yürütme durumunu (status) ve yürütme süresini (executionTime) içerir. Etiket verileri, etikette yapılandırılmış ek etiket meta verilerini de içerir.

İstemcide:

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

claimRequest();

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

Bir etikette:

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, geçerli kod döndürüldükten sonra çağrılı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 bu API'yi bir istemcide kullanın. Bir istek talep edildikten sonra, container ek istemcileri çalıştırmaz.

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

Bir istemci, runContainer API'yi çağırmadan önce bu API'yi kullanarak isteği talep etmelidir.

Örnek

const claimRequest = require('claimRequest');

claimRequest();

Söz dizimi

claimRequest();

İlişkilendirilmiş izinler

Yok.


computeEffectiveTldPlusOne

Belirli bir alan adının veya URL'nin geçerli üst düzey alan adı + 1'ini (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 null veya tanımsız ise 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 sonek 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 adı veya URL.

İlişkilendirilmiş izinler

Yok.


createRegex

Yeni bir normal ifade örneği oluşturur ve bunu bir nesneye sarmalanmış olarak döndürür. Normal ifadeye doğrudan erişemezsiniz. Ancak bunu testRegex API, String.replace(), String.match() ve String.search()'e aktarabilirsiniz.

Normal ifade geçersizse veya Re2 sunucuda 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 ifade için işaretleri içeren isteğe bağlı bir dize. "g" (global) ve "i" (büyük/küçük harfe duyarlı değil)" desteklenir. Diğer tüm karakterler sessizce yoksayılır.

İlişkilendirilmiş izinler

Yok.

Minimum görüntü sürümü

2.0.0


decodeUri

Sağlanan URI'daki kodlanmış karakterlerin kodunu çözer. Kodu çözülmüş URI'yı temsil eden bir dize değerini 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 yollarla 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 yollarla kodlanmış bir URI bileşeni.

İlişkilendirilmiş izinler

Yok.


encodeUri

Özel karakterlere çıkış yaparak 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 URI.

İlişkilendirilmiş izinler

Yok.


encodeUriComponent

Özel karakterlere çıkış yaparak 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'nın bir bileşeni.

İlişkilendirilmiş izinler

Yok.


extractEventsFromMpv1

Gelen Measurement Protocol V1 isteğini, Birleşik Şema biçimindeki 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şkilendirilmiş izinler

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

  • body
  • query parameters

extractEventsFromMpv2

Gelen Measurement Protocol V2 isteğini, Birleşik Şema biçimindeki 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şkilendirilmiş izinler

read_request izni gerektirir. Bu izin, 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 olarak kodlanmış dize.

Örnek

const fromBase64 = require('fromBase64');

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

İlişkilendirilmiş izinler

Yok.


generateRandom

Belirli bir aralık içinde 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 sayı Döndürülen tam sayının minimum potansiyel değeri (bu değerler dahil).
max sayı Döndürülen tam sayının maksimum potansiyel değeri (bu değerler 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ıyla ilgili verileri içeren bir nesne döndürür. Döndürülen nesne aşağıdaki alanları içerir:

{
  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 çözü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 biri Yol bileşenlerinin noktalarla ayrıldığı anahtar yolu. Yol bileşenleri, nesnelere ait anahtarlar veya dizilerdeki dizinler olabilir. keyPath bir dize değilse dize haline getirilir.

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çerecek bir yetkilendirme nesnesi döndürür. Bu API, sunucu ortamından kimlik bilgilerini otomatik olarak bulmak için Uygulama Varsayılan Kimlik Bilgilerini 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 istenecek 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ı kümesinden bir kaynak alır, komut dosyası ve ilişkili önbelleğe alma meta verileriyle birlikte bir vaat döndürür.

Söz konusu eylem, şu 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 dayalı olarak aşağıdaki önbelleğe alma meta verilerini içerir. Her alan, yalnızca karşılık gelen başlık kaynak yanıtında 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ı. 'ANALYTICS', 'GTAG' ve 'GTM' komut dosyaları desteklenir.

'ANALYTICS' seçeneği, https://www.google-analytics.com/analytics.js kaynağından Google Analytics komut dosyasını 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, https://www.googletagmanager.com/gtm.js kaynağından Google Etiket Yöneticisi komut dosyasını getirir.
options 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' (ör. GTM-XXXX) ile uyumludur.
debug herhangi biri Doğru değerine ayarlanırsa ölçüm komut dosyasının hata ayıklama sürümünü ister ve döndürür.
timeout sayı Milisaniye cinsinden istek zaman aşımı; pozitif olmayan değerler yoksayılır. İ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 tuşları yoksayılır.

İlişkilendirilmiş izinler

send_http izni gerektirir. Bu izin, en az şunlara erişim izni verecek şekilde yapılandırılmalıdır:

  • Google alan adlarına izin ver

getRemoteAddress

Yönlendirilen ve X-Yönlendirilen-For gibi istek başlıklarını okuyarak, isteğin kaynaklandığı IP adresinin dize gösterimini (ör. IPv4 için 12.345.67.890 veya IPv6 için 2001:0db8:85a3:0:0:8a2e:0370:7334) döndürür. Not: Bu API, kaynak IP'yi bulmak için her türlü çabayı gösterse de sonucun doğru olacağını garanti edemez.

Söz dizimi

getRemoteAddress();

İlişkilendirilmiş izinler

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

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

getRequestBody

İstek gövdesini dize (mevcutsa) veya undefined (varsa) olarak döndürür.

Söz dizimi

getRequestBody();

İlişkilendirilmiş izinler

read_request


getRequestHeader

Varsa adlandırılmış istek başlığının değerini dize olarak veya varsa undefined olarak döndürür. Üst bilgi 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') bir 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

Sorgu dizesi olmadan istek yolunu döndürür. Örneğin, URL '/foo?id=123' ise '/foo' değerini döndürür. Sunucu kapsayıcısı URL'si ön ekini yoldan otomatik olarak çıkarır. Örneğin, Sunucu kapsayıcı URL'si https://example.com/analytics ve istek yolu '/analytics/foo' ise bu işlem '/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şkilendirilmiş 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 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şleştiren 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 olarak 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'i tercih edin.

Date.now() tarafından döndürülen, Unix döneminden bu yana geçen geçerli zamanı milisaniye cinsinden temsil eden sayı değerini döndürür.

Söz dizimi

getTimestamp();

İlişkilendirilmiş izinler

Yok.


getTimestampMillis

Date.now() tarafından döndürülen, Unix döneminden bu yana geçen geçerli zamanı milisaniye cinsinden temsil eden sayı değerini döndürür.

Söz dizimi

getTimestampMillis();

İlişkilendirilmiş 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'
sayı '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 biri Giriş değeri.

İlişkilendirilmiş izinler

Yok.


hmacSha256

SHA-256 ile Karma Tabanlı İleti Kimlik Doğrulama Kodu (HMAC) kullanarak kodlanmış imzayı hesaplar. Varsayılan olarak base64url kodlaması kullanılır.

Bu API'yi kullanmak için sunucudaki SGTM_CREDENTIALS ortam değişkenini aşağıdaki biçime sahip UTF-8 kodlamalı 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 JSON anahtar dosyasında bulunan ve kullanılacak anahtarı ifade eden anahtar kimliği.
options nesne İsteğe bağlı API yapılandırması. (Aşağıdaki Seçenekleri inceleyin.)

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 görüntü sürümü

1.0.0


isRequestMpv1

Gelen istek bir Measurement Protocol V1 isteğiyse true değerini, 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şkilendirilmiş izinler

Yok.


isRequestMpv2

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

Örnek

const isRequestMpv2 = require('isRequestMpv2');

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

Söz dizimi

isRequestMpv2();

İlişkilendirilmiş 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'nden 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, gerekirse her biri bir dizeye dönüştürülen ve konsolda günlüğe kaydedilen bir veya daha fazla bağımsız değişken alır.

İlişkilendirilmiş izinler

logging


makeInteger

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

Söz dizimi

makeInteger(value);

Parametreler

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

İliş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, iki sütunlu bir SIMPLE_TABLE şablon alanını daha kolay idare edilebilir 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'}
]

aşağıdakileri yapabilirsiniz:

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

Nesne döndürür: Anahtar/değer çiftlerinin dönüştürülen Map değeri bu nesneye eklenmiştir veya null eklenmemiştir.

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 haritalar listesidir. Bir satır nesnesindeki her bir özellik adı sütun adıdır. Özellik değeri ise 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 içinde değer haline gelecek sütunun adı.

İlişkilendirilmiş izinler

Yok.


parseUrl

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

Bu API, hatalı oluşturulmuş URL'ler için undefined değerini döndürür. Doğru biçimlendirilmiş URL'ler için URL dizesinde bulunmayan alanlar, boş dize değerine veya searchParams olması durumunda boş nesne değerine sahip olur.

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

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

Örnek

const parseUrl = require('parseUrl');

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

Söz dizimi

parseUrl(url);

Parametreler

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

İlişkilendirilmiş izinler

Yok.


returnResponse

setCookie, setPixelResponse, setResponseBody, setResponseHeader ve setResponseStatus dahil olmak üzere yanıtı değiştiren API'leri kullanarak diğer şablonlar tarafından daha önce ayarlanmış yanıtı temizler. Varsayılan olarak HTTP durum kodu 200, boş gövde ve başlık yoktur.

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

Söz dizimi

returnResponse();

Örnek

runContainer örneğini inceleyin.

İlişkilendirilmiş izinler

return_response


runContainer

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

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

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

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

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

Söz dizimi

runContainer(event, onComplete, onStart);

Parametreler

Parametre Tür Açıklama
event nesne Etkinlik parametreleri.
onComplete işlev Tüm etiketlerin etkinleşmesi 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ıyla bir nesneye çözümlenen veya reason anahtarı olan bir nesneyi reddedilen söz döndürür. Universal Analytics veya Google Analytics 4 hedefi, etkinlik verilerindeki ölçüm kimliğini temel alır.

Varsa location alanı location başlığına 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 nesne Birleşik Şema biçimindeki etkinlik.

İlişkilendirilmiş izinler

send_http izni gerektirir. Bu izin, en az şunlara erişim izni verecek şekilde yapılandırılmalıdır:

  • Google alan adlarına izin ver

sendHttpGet

Belirtilen URL'ye bir HTTP GET isteği gönderir ve istek tamamlandığında ya da zaman aşımına uğradığında sonuçla çözümlenen bir taahhüt 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, ana makine yolu yok, SSL iletişim hatası vb.) taahhüt reddedilir: {reason: 'failed'}. timeout seçeneği ayarlanmışsa ve istek zaman aşımına uğradıysa taahhüt şu şekilde 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 nesne İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekleri inceleyin.)

Seçenekler

Option Tür Açıklama
headers dize Ek istek başlıkları.
timeout sayı İstek iptal edilmeden önceki zaman aşımı (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır.
authorization nesne googleapis.com için istekte bulunurken yetkilendirme üstbilgilerinin dahil edilmesi amacıyla 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, ana makine yolu yok, SSL iletişim hatası vb.) taahhüt reddedilir: {reason: 'failed'}. timeout seçeneği ayarlanmışsa ve istek zaman aşımına uğradıysa taahhüt şu şekilde 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 nesne İsteğe bağlı istek seçenekleri. (Aşağıdaki Seçenekleri inceleyin.)
body dize İsteğe bağlı istek gövdesi.

Seçenekler

Option Tür Açıklama
headers dize Ek istek başlıkları.
method nesne İstek yöntemi. Varsayılan olarak GET değerine ayarlanır.
timeout sayı İstek iptal edilmeden önceki zaman aşımı (milisaniye cinsinden). Varsayılan olarak 15000 değerine ayarlanır.
authorization nesne googleapis.com için istekte bulunurken yetkilendirme üstbilgilerinin dahil edilmesi amacıyla 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üklemesi 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. 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 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 alan adına sahip bir çerez ayarlanmalı ve bu çereze geçmişte olan bir geçerlilik süresi değeri (ör. "Thu, 01 Jan 1970 00:00:00 GMT") atanmalıdır.

Yanıtın istemciye geri gönderilmesi için returnResponse değerinin ç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 nesne İsteğe bağlı çerez özellikleri:domain, expires, fallbackDomain,httpOnly, max- age, path, secure vesameSite. (Aşağıdaki Seçenekler bölümünü inceleyin.)
noEncode boolean True (doğru) 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:

    • Varsa Forwarded başlığının eTLD+1'i.
    • Varsa X-Forwarded-Host başlığının eTLD+1'i.
    • Host başlığının eTLD+1'i.
  • expires: Çerezin maksimum ömrü. Bu değer, UTC biçiminde bir tarih dizesi olmalıdır; ör. "26 Ekim 1985, Cmt 1985 08:21:00 GMT". Hem expires hem de max-age ayarlanırsa max-age öncelikli olur.

  • httpOnly: true olduğunda JavaScript'in çereze erişimini engeller.

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

  • path: İstenen URL'de bulunması gereken bir yol. Aksi takdirde tarayıcı, Çerez başlığını 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, kaynaklar arası isteklerle 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 olarak ayarlar, Content-Type başlığını "image/gif" olarak ayarlar, kullanıcı aracılarının yanıtı önbelleğe almayacağı şekilde önbelleğe alma üst bilgileri ayarlar ve yanıt durumunu 200 olarak ayarlar.

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

Söz dizimi

setPixelResponse();

İlişkilendirilmiş izinler

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

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

setResponseBody

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

Yanıtın istemciye geri gönderilmesi için returnResponse değerinin ç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, en az aşağıdakilere erişim izni verecek şekilde yapılandırılmalıdır:

  • body

setResponseHeader

Yanıtta, döndürülecek bir üstbilgi ayarlar. Bu API tarafından daha önce bu ada sahip bir üst bilgi (büyük/küçük harfe duyarlı değil) ayarlanmışsa sonraki çağrı, önceki çağrı tarafından ayarlanan değerin üzerine yazar veya silinir.

Yanıtın istemciye geri gönderilmesi için returnResponse değerinin ç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 dize undefined Başlık değeri. Null veya tanımlanmamışsa adlandırılmış üstbilgi, döndürülecek yanıttan temizlenir.

İlişkilendirilmiş izinler

access_response izni gerektirir. Bu izin, 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 değerinin çağrılması gerektiğini unutmayın.

Söz dizimi

setResponseStatus(statusCode);

Parametreler

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

İlişkilendirilmiş izinler

access_response izni gerektirir. Bu izin, 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 base64'te kodlanmış özetle bir geri çağırma ç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 kodlar 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ı belirtmedikçe, base64 olarak kodlanmış olan sonuç özetiyle çağrılır.
options nesne Çıkış kodlamasını belirtmek için kullanılan İsteğe bağlı seçenekler nesnesi. Belirtilirse nesne, base64 veya hex değerine sahip outputEncoding anahtarını içermelidir.

İlişkilendirilmiş izinler

Yok.


sha256Sync

options nesnesi farklı bir çıkış kodlaması belirtmedikçe girişin base64'te kodlanan 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 nesne Çıkış kodlamasını belirtmek için kullanılan İsteğe bağlı seçenekler nesnesi. Belirtilirse nesne, base64 veya hex değerine sahip outputEncoding anahtarını içermelidir.

İlişkilendirilmiş izinler

Yok.


templateDataStorage

Şablon veri depolamasına erişim yöntemleri içeren bir nesneyi döndürür. Şablon veri depolaması, verilerin tek bir şablon yürütmelerinde paylaşılmasını sağlar. Şablon veri depolama alanında depolanan veriler, container'ı çalıştıran sunucuda kalır. Çoğu durumda container'ı çalıştıran birden fazla sunucu olur. Bu nedenle, verileri şablon veri depolama alanında depolamak, sonraki her isteğin verilere erişeceğini garanti etmez.

"templateDataStorage" adındaki "veriler", bu API kullanılarak yalnızca sade, işlev dışı veri türlerinin depolanabileceğini ifade eder. API'ye iletilen işlevler veya işlevlere verilen 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şkilendirilmiş izinler

access_template_storage


testRegex

Bir dizeyi, createRegex API'si aracılığıyla oluşturulan bir normal ifade ile 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 flag ile oluşturulan normal ifade durum bilgilidir. Ayrıntılar için RegExp belgelerine bakın.

Örnek

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

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

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

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

Söz dizimi

testRegex(regex, string);

Parametreler

Parametre Tür Açıklama
regex Nesne createRegex API'den döndürülen 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ı kullanılır.

Söz dizimi

toBase64(input, options);

Parametreler

Parametre Tür Açıklama
input dize Kodlanacak dize.
options nesne İsteğe bağlı API yapılandırması. (Aşağıdaki Seçenekleri inceleyin.)

Seçenekler

Option Tür Açıklama Minimum sürüm
urlEncoding boolean Doğru değerine ayarlanırsa 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 nesneyi döndürür.

BigQuery.insert işlevi, BigQuery tablosuna veri yazmaya olanak tanır. Başarılı bir ekleme sonrasında çözümlenen veya bir hata olduğunda reddedilen bir taahhüt döndürür.

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

Ekleme başarısız olduğunda taahhüt, hata nedenini içeren nesnelerin bir listesiyle ve bir hata oluşursa muhtemelen satır nesnesiyle reddedilir. İsteğin bir bölümünün başarıyla tamamlanması, diğer kısımlarının ise tamamlanmaması mümkündür. Bu durumda, hangi satırların eklendiğinin ayırt edilmesine yardımcı olmak için satır nesnesi içeren her satır için bir hata listesi eklenerek sözler reddedilir (Aşağıdaki Hata Örneklerine bakın). Daha fazla bilgi için hata mesajları ile ilgili BigQuery belgelerine bakın.

Söz dizimi

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

Parametre Tür Açıklama
connectionInfo 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 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, zaten Google Cloud projesinin kimliğine ayarlanır.
  • datasetId - BigQuery Veri Kümesi Kimliği.
  • tableId - BigQuery Tablo Kimliği.
rows Dizi Tabloya eklenecek satırlar.
options nesne İsteğe bağlı istek seçenekleri. Desteklenen seçenekler şunlardır: ignoreUnknownValues ve skip InvalidRows. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümünü inceleyin.)

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 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 muhtemelen henüz BigQuery modülünü içermeyen, görüntümüzün 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 anahtarına sahip bir hata nesnesi içerir:

[{reason: 'invalid'}]

Ekleme hatası, errors dizisi ve row nesnesine sahip birden fazla hata nesnesi içerebilir. Aşağıda, yalnızca bir satırda hata bulunan 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 nesneyi döndürür.

Bu API yalnızca Yerel modda Firestore'u destekler, Datastore modunda Firestore'u desteklemez. Ayrıca, API yalnızca varsayılan veritabanının kullanılmasını destekler.

Firestore.read

Firestore.read işlevi, bir Firestore belgesindeki verileri okur ve iki anahtar içeren bir nesneye dönüşen bir sözleşme döndürür: id ve data. Belge mevcut değilse taahhüt, not_found öğesine eşit bir reason anahtarı içeren nesneyle reddedilir.

Söz dizimi

Firestore.read(path[, options]);

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

Parametre Tür Açıklama
projectId dize Optional. 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 zaten Google Cloud projesinin kimliğine ayarlanı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 sayede, istek süresince sonuçlar önbelleğe alınır.
transaction dize Optional. Firestore.runTransaction() üzerinden alınan değer. Bir işlemde 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 giderse belge, rastgele oluşturulan bir kimlikle oluşturulur. Yol bir dokümana aitse ve dosya mevcut değilse doküman 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 taahhüt döndürür ancak yazmalar 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 Doküman veya koleksiyonun yolu. "/" ile başlamamalı veya bitmemelidir.
input nesne Dokümana yazılacak değer. Birleştirme seçeneği ayarlanırsa API, girişteki anahtarları dokümanla birleştirir.
options 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ünü inceleyin.)

Parametre Tür Açıklama
projectId dize Optional. 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 zaten Google Cloud projesinin kimliğine ayarlanır.
merge boolean Optional. true olarak ayarlanırsa girişteki tuşları dokümanla birleştirin. Aksi takdirde bu yöntem, dokümanın tamamını geçersiz kılar. Varsayılan olarak false değerine ayarlanır.
transaction dize Optional. Firestore.runTransaction() üzerinden alınan değer. Bir işlemde 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, verilen koleksiyonu sorgular ve sorgu koşullarıyla eşleşen bir Firestore belgeleri dizisine dönüşen 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ğere sahip bir dizi biçiminde gelir: key, operator ve expectedValue. E.g.: [[‘id’, ‘<’, ‘5’], [‘eyalet’, ‘==’, ‘CA’]].

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

Parametre Tür Açıklama
projectId dize Optional. 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 zaten Google Cloud projesinin kimliğine ayarlanı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 sayede, istek süresince sonuçlar önbelleğe alınır.
limit sayı Optional. Sorgu tarafından döndürülen maksimum sonuç sayısını değiştirir. Varsayılan olarak 5 olur.
transaction dize Optional. Firestore.runTransaction() üzerinden alınan değer. Bir işlemde 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 otomatik olarak okuma ve yazmasına olanak tanır. Eşzamanlı yazma 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 belge kimliği dizisine çözümlenen bir taahhüt döndürür ve başarısız olursa hatayla reddeder.

Söz dizimi

Firestore.runTransaction(callback[, options]);

Parametreler

Parametre Tür Açıklama
callback 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 iletilebilir. Bu geri çağırma işlevi bir taahhüt döndürmelidir. Geri çağırma, başarısız olmadan önce en fazla üç kez çalıştırılabilir.
options nesne İsteğe bağlı istek seçenekleri. Desteklenen tek seçenek projectId'dir. Bilinmeyen seçenek tuşları yoksayılır. (Aşağıdaki Seçenekler bölümünü inceleyin.)

Parametre Tür Açıklama
projectId dize Optional. 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 zaten Google Cloud projesinin kimliğine ayarlanı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 bir 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şkilendirilmiş izinler

access_firestore


JSON

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

parse() işlevi, dizede açıklanan değeri veya nesneyi oluşturmak için bir JSON dizesini ayrıştırır. Değer ayrıştırılamazsa (ör. bozuk JSON) işlev, undefined değerini döndürür. Girdi değeri dize değilse giriş, dizeye dönüştürülür.

stringify() işlevi, girişi bir JSON dizesine dönüştürür. Değer ayrıştırı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 fonksiyon parametreleri sayılara dönüştürülür.

İlişkilendirilmiş izinler

Yok.


Messages

Aşağıdaki API'ler, mesajların bir container'ın farklı bölümleri arasında iletilmesini sağlamak için birlikte çalışır.


addMessageListener

Belirli türdeki mesajları dinleyen bir işlev ekler. sendMessage API (genellikle bir etiket tarafından) kullanılarak 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 mesajları alır. Geri çağırmanın yalnızca belirli bir etkinlikten mesaj alması gerekiyorsa runContainer API'sinin onStart işlevinde bindToEvent kullanarak bu API'yi etkinliğe bağlayın. Örneği inceleyin.

Söz dizimi

const addMessageListener = require('addMessageListener');

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

Parametreler

Parametre Tür Açıklama
messageType dize Dinlenecek mesaj türü. Değer bir dize değilse dizeye dönüştürülür.
callback işlev Geçerli mesaj türünde bir mesaj gönderildiğinde çalıştırılacak geri çağırma. Geri çağırma bir işlev değilse API'nin herhangi bir işlem yapması gerekmez.

Ö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 aşağıdakilere izin verecek şekilde yapılandırılmalıdır:

  • Usage/listen veya listen_and_send içeren mesaj türü.

hasMessageListener

Belirtilen mesaj türü için bir mesaj işleyici 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 dinleyiciye belirtilen türde bir mesaj gönderir. Bu özellik, bir etiketteki mesajları kapsayıcıyı çalıştıran istemciye geri 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 bir dize değilse dizeye dönüştürülür.
message nesne Gönderilecek mesaj. Mesaj bir nesne değilse API'nin herhangi bir işlem yapması gerekmez.

İlişkilendirilmiş izinler

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

  • Usage/listen_and_send veya send içeren mesaj türü.

Object

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

keys() yöntemi, Standart Kitaplık Object.keys() davranışını sağlar. Belirli bir nesnenin kendi numaralanabilir özellik adlarından oluşan bir diziyi, for...in... döngüsüyle aynı sırayla döndürür. Girdi değeri nesne değilse nesne olmaya zorlanır.

values() yöntemi, Standart Kitaplık Object.values() davranışını sağlar. Belirli bir nesnenin kendi numaralanabilir özellik değerleri dizisini, for...in... döngüsüyle aynı sırayla döndürür. Girdi değeri nesne değilse nesne olmaya zorlanır.

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

freeze() yöntemi, Standart Kitaplık Object.freeze() davranışını sağlar. Dondurulan bir nesne artık değiştirilemez. Bir nesnenin dondurulması, nesneye yeni özelliklerin eklenmesini, mevcut özelliklerin kaldırılmasını ve mevcut özelliklerin değerlerinin değiştirilmesini engeller. freeze(), geçirilen aynı nesneyi döndürür. Temel veya null bağımsız değişkenler, donmuş bir nesneymiş 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ü gibi, ilk giriş değeri (objectInput), ikinci giriş değeri (keyToDelete) var olmayan bir anahtarı belirtse bile dondurulmamış bir nesneyse true değerini döndürür. Diğer tüm durumlarda false değerini döndürür. Ancak bu, aşağıdaki yönleriyle Standart Kitaplık silme operatöründen farklıdır:

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

Söz dizimi

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

Parametreler

Object.keys

Parametre Tür Açıklama
objectInput herhangi biri Anahtarlarının numaralandırılacağı nesne. Giriş nesne değilse nesne olmaya zorlanır.

Object.values

Parametre Tür Açıklama
objectInput herhangi biri Değerleri numaralandırılacak nesne. Giriş nesne değilse nesne olmaya zorlanır.

Object.entries

Parametre Tür Açıklama
objectInput herhangi biri Anahtar/değer çiftleri numaralandırılacak nesne. Giriş nesne değilse nesne olmaya zorlanır.

Object.freeze

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

Object.delete

Parametre Tür Açıklama
objectInput herhangi biri 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 nesneyi döndürür.

Vaatler, işlevsel olarak JavaScript'in vaatlerine eşdeğerdir. Her örnekte bir Vaat döndüren ve bir vaat yerine getirildiğinde daha fazla işlem yapılmasına olanak tanıyan üç yöntemi vardır:

  • .then() - Hem çözülmüş hem de reddedilen destek kayıtlarını ele alır. Parametre olarak biri başarılı, diğeri başarısız durum için olmak üzere iki geri çağırma kullanılır.
  • .catch() - Yalnızca reddedilen destek kayıtlarıyla ilgilenir. Parametre olarak bir geri çağırma alır.
  • .finally() - Taahhüdünüz gerçekleşmiş veya reddedilmiş olsa bile kodun çalıştırılması için bir yöntem sunar. Bağımsız değişken olmadan çağrılan bir parametre olarak bir geri çağırma alır.

Bir vaat döndüren değişken, taahhüdün çözümlenen değerine veya vaatin reddedilmesi durumunda 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 içeren bir vaat 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. Girdi bir vaat değilse girdi, bir sözün çözümlenmiş değeriymiş gibi iletilir. Giriş bir dizi değilse hata verir.

Örnek

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

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

İlişkilendirilmiş izinler

Yok.

Promise.create

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

Söz dizimi

Promise.create(resolver);

Parametreler

Parametre Tür Açıklama
resolver işlev İki işlevle çağrılan bir işlev: çözümleme ve reddetme. Karşılık gelen parametre çağrıldığında, döndürülen taahhüt çö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 et

Bu API'ler, Google Etiket Yöneticisi'ndeki ö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 edinin].


assertApi

Belirtilen API hakkında akıcı bir şekilde onay vermek için kullanılabilecek bir eşleştirici nesnesi döndürür.

Söz dizimi

assertApi(apiName)

Parametreler

Parametre Tür Açıklama
apiName dize Kontrol edilecek API'nin adı; require() öğesine iletilen dizeyle aynı.

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. Bir öznenin değeri hakkında akıcı bir şekilde iddiada bulunmak için kullanılabilecek bir nesne döndürür. Onaylama hatası, testi anında durdurur ve başarısız olarak işaretler. Ancak 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 biri 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 eder.
isDefined() Konunun undefined olmadığını iddia eder.
isNull() Konunun null olduğunu iddia eder.
isNotNull() Konunun null olmadığını iddia eder.
isFalse() Konunun false olduğunu iddia eder.
isTrue() Konunun true olduğunu iddia eder.
isFalsy() Konunun yanlış olduğunu iddia eder. Hatalı değerler şunlardır: undefined, null, false, NaN, 0 ve "" (boş dize).
isTruthy() Konunun doğru olduğunu iddia ediyor. Hatalı değerler şunlardır: undefined, null, false, NaN, 0 ve "" (boş dize).
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 Sonsuzluk olduğunu iddia eder.
isNotInfinity() Konunun, pozitif veya negatif Sonsuzluk dışında herhangi bir değer olduğunu iddia eder.
isEqualTo(expected) Öznenin verilen değere eşit olduğunu iddia eder. Bu bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
isNotEqualTo(expected) Öznenin verilen değere eşit olmadığını iddia eder. Bu bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
isAnyOf(...expected) Öznenin, verilen değerlerden birine eşit olduğunu iddia eder. Bu bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
isNoneOf(...expected) Konunun, verilen değerlerin herhangi birine eşit olmadığını iddia eder. Bu bir referans karşılaştırması değil, değer karşılaştırmasıdır. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
isStrictlyEqualTo(expected) Öznenin, verilen değere kesinlikle eşit (===) olduğunu iddia eder.
isNotStrictlyEqualTo(expected) Öznenin, 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ırmadaki 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ırmadaki 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, 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, 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 ve başka hiçbir değeri içermeyen bir dizi olduğunu iddia eder. Bu bir 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) Konunun, belirtilen değerlerden herhangi bir sırada farklı bir değer grubu içeren bir dizi olduğunu iddia eder. Bu bir değer karşılaştırmasıdır, referans karşılaştırması değildir. Nesnelerin ve dizilerin içerikleri yinelemeli olarak karşılaştırılır.
hasLength(expected) Konunun belirtilen uzunlukta bir dizi veya dize olduğunu iddia eder. Değer bir dizi veya dize değilse onay her zaman başarısız olur.
isEmpty() Konunun boş bir dizi veya dize (uzunluk = 0) olduğunu iddia eder. Değer bir dizi veya dize değilse onay her zaman başarısız olur.
isNotEmpty() Konunun boş olmayan bir dizi veya dize (uzunluk > 0) olduğunu iddia eder. Değer bir dizi veya dize değilse onay her zaman başarısız olur.
isArray() Konu türünün bir dizi olduğunu iddia eder.
isBoolean() Konu türünün boole olduğunu iddia eder.
isFunction() Özne türünün bir fonksiyon olduğunu iddia eder.
isNumber() Özne türünün bir sayı olduğunu iddia eder.
isObject() Özne türünün bir 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 verilen 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. Taklit API, şablon kodunda güvenle kullanılabilir. Ancak test modunda değilken çalışmaz. Her test çalıştırılmadan önce örnekler sıfırlanır.

Söz dizimi

mock(apiName, returnValue);

Parametreler

Parametre Tür Açıklama
apiName dize Örneklendirilecek API'nin adı; require() öğesine iletilen dizenin aynısı
returnValue herhangi biri API veya API'nin yerine çağrılan bir işlev için döndürülecek değer. returnValue bir işlevse bu işlev, Korumalı Alana Sahip API yerine çağrılır. returnValue işlevden başka herhangi bir şeyse bu değer, Korumalı Alan API'sinin yerine döndürülür.

Örnekler

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

runCode

Şablonun kodunu (ör. Kod sekmesinin içeriği), belirli bir giriş veri nesnesiyle geçerli test ortamında çalıştırır.

Söz dizimi

runCode(data)

Parametreler

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

Döndürülen Değer

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

Örnek

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