API های اصلی
این APIها با جاوا اسکریپتِ سندباکسشده کار میکنند تا قالبهای سفارشی را در گوگل تگ منیجر بسازند. هر API با یک دستور require() اضافه میشود، مثلاً:
const myAPI = require('myAPI');
addConsentListener
یک تابع شنونده (listener) ثبت میکند تا زمانی که وضعیت نوع رضایت مشخص شده تغییر کند، اجرا شود.
شنوندهی داده شده هر بار که وضعیت نوع رضایت مشخص شده از رد شده به اعطا شده یا از اعطا شده به رد شده تغییر کند، فراخوانی میشود. نوع رضایتی که هیچ وضعیتی نداشته باشد، اعطا شده در نظر گرفته میشود، بنابراین اگر نوع رضایتی که تنظیم نشده است به اعطا شده بهروزرسانی شود، شنونده فراخوانی نخواهد شد. توابع شنونده مسئول اطمینان از اجرای کد خود به تعداد دفعات مناسب هستند.
مثال:
const isConsentGranted = require('isConsentGranted');
const addConsentListener = require('addConsentListener');
if (!isConsentGranted('ad_storage')) {
let wasCalled = false;
addConsentListener('ad_storage', (consentType, granted) => {
if (wasCalled) return;
wasCalled = true;
const cookies = getMyCookies();
sendFullPixel(cookies);
});
}
نحو
addConsentListener(consentType, listener)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
consentType | رشته | نوع رضایتی که باید به تغییرات وضعیت آن گوش دهید. |
listener | تابع | تابعی که هنگام تغییر وضعیت نوع رضایت مشخص شده، اجرا میشود. |
وقتی یک شنونده فراخوانی میشود، نوع رضایتی که تغییر میکند و مقدار جدید آن نوع رضایت به آن ارسال میشود:
| پارامتر | نوع | توضیحات |
|---|---|---|
consentType | رشته | نوع رضایتی که در حال تغییر است. |
granted | بولی | یک مقدار بولی که اگر نوع رضایت مشخص شده به اعطا شده تغییر کند، مقدار آن درست (true) است. |
مجوزهای مرتبط
مجوز access_consent به همراه دسترسی خواندن برای نوع رضایت.
addEventCallback
API addEventCallback به شما امکان میدهد یک تابع فراخوانی ثبت کنید که در پایان یک رویداد فراخوانی میشود. این فراخوانی زمانی فراخوانی میشود که تمام تگهای رویداد اجرا شده باشند، یا اگر زمان انقضای رویداد در صفحه فرا رسیده باشد. به این فراخوانی دو مقدار ارسال میشود، یکی شناسهی کانتینری که تابع را فراخوانی میکند و دیگری یک شیء که حاوی اطلاعاتی در مورد رویداد است.
نحو
addEventCallback(callback)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
callback | تابع | تابعی که قرار است در پایان رویداد فراخوانی شود. |
شیء eventData شامل دادههای زیر است:
| نام کلید | نوع | توضیحات |
|---|---|---|
tags | آرایه | آرایهای از اشیاء داده تگ. هر تگی که در طول رویداد اجرا شود، یک ورودی در این آرایه خواهد داشت. شیء داده تگ شامل شناسه تگ ( id )، وضعیت اجرای آن ( status ) و زمان اجرای آن ( executionTime ) است. دادههای تگ همچنین شامل فرادادههای اضافی تگ که روی تگ پیکربندی شدهاند، خواهد بود. |
مثال
addEventCallback(function(ctid, eventData) {
logToConsole('Tag count for container ' + ctid + ': ' + eventData['tags'].length);
});
مجوزهای مرتبط
aliasInWindow
API aliasInWindow به شما امکان میدهد یک نام مستعار ایجاد کنید (مثلاً window.foo = window.bar )، که به پشتیبانی از تگهای خاصی که نیاز به نام مستعار دارند کمک میکند. مقداری را که در شیء window در fromPath یافت میشود، به کلید شیء window در toPath اختصاص میدهد. در صورت موفقیت، true و در غیر این صورت false را برمیگرداند.
نحو
aliasInWindow(toPath, fromPath)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
toPath | رشته | یک مسیر جدا شده با نقطه به درون شیء window که یک مقدار باید در آن کپی شود. تمام اجزای موجود در مسیر تا آخرین جزء باید از قبل در شیء window وجود داشته باشند. |
fromPath | رشته | یک مسیر جدا شده با نقطه به window که مقداری را برای کپی کردن نشان میدهد. اگر مقدار وجود نداشته باشد، عملیات با شکست مواجه خواهد شد. |
مثال
aliasInWindow('foo.bar', 'baz.qux')
مجوزهای مرتبط
access_globals هم برای toPath و هم برای fromPath ضروری است؛ toPath نیاز به دسترسی نوشتن و fromPath نیاز به دسترسی خواندن دارد.
callInWindow
به شما امکان میدهد توابع را از مسیری خارج از شیء window ، به روشی که توسط سیاست کنترل میشود، فراخوانی کنید. تابع را در مسیر داده شده در window با آرگومانهای داده شده فراخوانی میکند و مقدار را برمیگرداند. اگر نوع بازگشتی را نتوان مستقیماً به نوعی که در جاوا اسکریپت sandboxed پشتیبانی میشود، نگاشت کرد، مقدار undefined برگردانده میشود. هشت نوع پشتیبانی شده در جاوا اسکریپت sandboxed عبارتند از null ، undefined ، boolean ، number ، string ، Array ، Object و function . اگر مسیر داده شده وجود نداشته باشد یا به تابعی ارجاع ندهد، undefined برگردانده میشود.
نحو
callInWindow(pathToFunction, argument [, argument2,... argumentN])
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
pathToFunction | رشته | مسیری که با نقطه از هم جدا شده و به تابعی در window که قرار است فراخوانی شود، اشاره دارد. |
args | * | آرگومانهایی که باید به تابع ارسال شوند. |
مجوزهای مرتبط
access_globals با مجوز execute فعال.
callLater
فراخوانی یک تابع را به صورت غیرهمزمان برنامهریزی میکند. تابع پس از بازگشت کد فعلی فراخوانی میشود. این معادل setTimeout(<function>, 0) است.
نحو
callLater(function)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
function | تابع | تابعی که باید فراخوانی شود. |
copyFromDataLayer
مقداری که در حال حاضر به کلید داده شده در لایه داده اختصاص داده شده است را برمیگرداند: مقداری که در کلید داده شده یافت میشود اگر یک نوع داده اولیه، تابع یا شیء تحتاللفظی باشد، و در غیر این صورت undefined .
نحو
copyFromDataLayer(key[, dataLayerVersion])
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
key | رشته | کلید با فرمت "abc". |
dataLayerVersion | شماره | نسخه لایه داده اختیاری. مقدار پیشفرض ۲ است. استفاده از مقدار ۱ اکیداً توصیه نمیشود. |
مجوزهای مرتبط
copyFromWindow
یک متغیر را از شیء window کپی میکند. اگر مقدار موجود در window نتواند مستقیماً به نوعی که در جاوا اسکریپت sandboxed پشتیبانی میشود، نگاشت شود، مقدار undefined برگردانده میشود. هشت نوع دادهای که در جاوا اسکریپت sandboxed پشتیبانی میشوند عبارتند از null ، undefined ، boolean ، number ، string ، Array ، Object و function . مقدار واکشی شده (و اجباری) را برمیگرداند.
نحو
copyFromWindow(key)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
key | رشته | کلید موجود در window برای کپی کردن مقدار. |
مجوزهای مرتبط
createArgumentsQueue
صفی ایجاد میکند که با اشیاء آرگومان پر شده است، تا از راهحلهای برچسبگذاری که به آن نیاز دارند، پشتیبانی کند.
با استفاده از آرگومان fnKey (همان معنای createQueue ) یک تابع در محدوده سراسری (مثلاً window ) ایجاد میکند. پس از ایجاد تابع، این API سپس با استفاده از آرگومان arrayKey یک آرایه در window (اگر از قبل وجود نداشته باشد) ایجاد میکند.
وقتی تابعی که تحت fnKey ایجاد شده است فراخوانی میشود، شیء آرگومانهای خود را به آرایهای که تحت arrayKey ایجاد شده است، ارسال میکند. مقدار بازگشتی API، تابعی است که تحت fnKey ایجاد شده است.
این تابع نیاز به تنظیمات خواندن و نوشتن برای fnKey و arrayKey در مجوز access_globals دارد.
مثال:
const gtag = createArgumentsQueue('gtag', 'dataLayer');
gtag('set', {'currency': 'USD'});
نحو
createArgumentsQueue(fnKey, arrayKey)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
fnKey | رشته | مسیر در window که تابع در آن تنظیم شده است، اگر از قبل وجود نداشته باشد. این آرگومان از نمادگذاری نقطه استاندارد پشتیبانی میکند. اگر مسیر کلید وجود نداشته باشد، یک استثنا ایجاد میشود. یعنی اگر fnKey برابر با 'one.two' باشد، یک استثنا ایجاد میشود. |
arrayKey | رشته | مسیر در window که آرایه در آن تنظیم شده است، اگر از قبل وجود نداشته باشد. این آرگومان از نمادگذاری نقطه استاندارد پشتیبانی میکند. اگر مسیر کلید وجود نداشته باشد، یک استثنا ایجاد میشود. یعنی اگر arrayKey برابر با 'one.two' باشد و هیچ شیء سراسری به نام 'one' وجود نداشته باشد، یک استثنا ایجاد میشود. |
مجوزهای مرتبط
createQueue
یک آرایه در window ایجاد میکند (اگر از قبل وجود نداشته باشد) و تابعی را برمیگرداند که مقادیر را به آن آرایه ارسال میکند.
این تابع به تنظیمات خواندن و نوشتن برای arrayKey در سطح دسترسی access_globals نیاز دارد.
مثال:
const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});
نحو
createQueue(arrayKey)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
arrayKey | رشته | کلید موجود در window که آرایه در آن تنظیم شده است، اگر از قبل وجود نداشته باشد. این آرگومان از نمادگذاری نقطه استاندارد پشتیبانی میکند. اگر مسیر کلید وجود نداشته باشد، یک استثنا ایجاد میشود. برای مثال، اگر arrayKey برابر با 'one.two' باشد و هیچ شیء سراسری به نام 'one' وجود نداشته باشد، یک استثنا ایجاد میشود. |
مجوزهای مرتبط
decodeUri
هر کاراکتر رمزگذاری شده در URI ارائه شده را رمزگشایی میکند. رشتهای را برمیگرداند که نشان دهنده URI رمزگشایی شده است. در صورت ارائه ورودی نامعتبر، undefined را برمیگرداند.
مثال:
const decode = require('decodeUri');
const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
// ...
}
نحو
decodeUri(encoded_uri)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
encoded_uri | رشته | یک URI که توسط encodeUri() یا به روشهای دیگر کدگذاری شده است. |
مجوزهای مرتبط
هیچ کدام.
decodeUriComponent
هر کاراکتر رمزگذاری شده در مؤلفه URI ارائه شده را رمزگشایی میکند. رشتهای را برمیگرداند که نشان دهنده مؤلفه URI رمزگشایی شده است. در صورت ارائه ورودی نامعتبر undefined را برمیگرداند.
مثال:
const decode = require('decodeUriComponent');
const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
// ...
}
نحو
decodeUriComponent(encoded_uri_component)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
encoded_uri_component | رشته | یک کامپوننت URI که توسط encodeUriComponent() یا به روشهای دیگر کدگذاری شده است. |
مجوزهای مرتبط
هیچ کدام.
encodeUri
با حذف کاراکترهای خاص، یک شناسه منبع یکسان (URI) کدگذاری شده را برمیگرداند. رشتهای را برمیگرداند که نشان دهنده رشته ارائه شده کدگذاری شده به عنوان یک URI است. در صورت ارائه ورودی نامعتبر (یک جایگزین تنها)، undefined برمیگرداند.
مثال:
sendPixel('https://www.example.com/' + encodeUri(pathInput));
نحو
encodeUri(uri)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
uri | رشته | یک URI کامل. |
مجوزهای مرتبط
هیچ کدام.
encodeUriComponent
با حذف کاراکترهای خاص، یک شناسه منبع یکسان (URI) کدگذاری شده را برمیگرداند. رشتهای را برمیگرداند که نشان دهنده رشته ارائه شده کدگذاری شده به عنوان یک URI است. در صورت ارائه ورودی نامعتبر (یک جایگزین تنها)، undefined برمیگرداند.
مثال:
sendPixel('https://www.example.com/?' + encodeUriComponent(queryInput));
نحو
encodeUriComponent(str)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
str | رشته | یک جزء از یک URI. |
مجوزهای مرتبط
هیچ کدام.
fromBase64
رابط برنامهنویسی کاربردی fromBase64 به شما امکان میدهد رشتهها را از نمایش base64 آنها رمزگشایی کنید. در صورت ارائه ورودی نامعتبر undefined را برمیگرداند.
نحو
fromBase64(base64EncodedString)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
base64EncodedString | رشته | رشته کدگذاری شده با Base64. |
مثال
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
مجوزهای مرتبط
هیچکدام
generateRandom
یک عدد تصادفی (عدد صحیح) را در محدوده داده شده برمیگرداند.
نحو
generateRandom(min, max)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
min | شماره | حداقل مقدار بالقوه عدد صحیح برگردانده شده. |
max | شماره | حداکثر مقدار بالقوه عدد صحیح برگردانده شده. |
مجوزهای مرتبط
هیچ کدام.
getContainerVersion
یک شیء حاوی دادههای مربوط به کانتینر فعلی را برمیگرداند. شیء برگردانده شده دارای فیلدهای زیر است:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
مثال
const getContainerVersion = require('getContainerVersion');
const sendPixel = require('sendPixel');
if (query('read_container_data')) {
const cv = getContainerVersion();
const pixelUrl = 'https://pixel.com/' +
'?version=' + cv.version +
'&envName=' + cv.environmentName +
'&ctid=' + cv.containerId +
'&debugMode=' + cv.debugMode +
'&previewMode=' + cv.previewMode;
if (query('send_pixel', pixelUrl)) {
sendPixel(pixelUrl);
}
}
نحو
getContainerVersion();
مجوزهای مرتبط
getCookieValues
مقادیر همه کوکیها با نام داده شده را برمیگرداند.
نحو
getCookieValues(name[, decode])
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
name | رشته | نام کوکی. |
decode | بولی | کنترل میکند که آیا مقادیر کوکی با decodeURIComponent() جاوا اسکریپت رمزگشایی شوند یا خیر. مقدار پیشفرض true است. |
مجوزهای مرتبط
getQueryParameters
اولین یا تمام پارامترهای queryKey آدرس فعلی را برمیگرداند. اولین مقدار را از queryKey یا آرایهای از مقادیر را از queryKey برمیگرداند.
نحو
getQueryParameters(queryKey[, retrieveAll])
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
queryKey | رشته | کلید خواندن از پارامترهای پرس و جو. |
retrieveAll | بولی | آیا همه مقادیر بازیابی شوند یا خیر. |
برای مثال، اگر آدرس اینترنتی فعلی https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo باشد، آنگاه:
-
getQueryParameters('var') == 'foo' -
getQueryParameters('var', false) == 'foo' -
getQueryParameters('var', null) == 'foo' -
getQueryParameters('var', true) == ['foo', 'foo2', 'foo']
مجوزهای مرتبط
get_url باید کامپوننت query را مجاز بداند، و باید queryKey در کلیدهای پرسوجوی مجاز مشخص کند (یا هر کلید پرسوجویی را مجاز بداند.)
getReferrerQueryParameters
API getReferrerQueryParameters همانند getQueryParameters عمل میکند، با این تفاوت که به جای URL فعلی، روی ارجاعدهنده عمل میکند. اولین یا تمام پارامترهای queryKey ارجاعدهنده داده شده را برمیگرداند. اولین مقدار را از queryKey یا آرایهای از مقادیر را از queryKey برمیگرداند.
نحو
getReferrerQueryParameters(queryKey[, retrieveAll])
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
queryKey | رشته | کلید خواندن از پارامترهای پرس و جو. |
retrieveAll | بولی | آیا همه مقادیر بازیابی شوند یا خیر. |
برای مثال، اگر آدرس اینترنتی ارجاعدهنده https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo باشد، آنگاه:
-
getReferrerQueryParameters('var') == 'foo' -
getReferrerQueryParameters('var', false) == 'foo' -
getReferrerQueryParameters('var', null) == 'foo' -
getReferrerQueryParameters('var', true) == ['foo', 'foo2', 'foo']
مجوزهای مرتبط
get_referrer باید کامپوننت query را مجاز بداند، و باید queryKey در کلیدهای پرسوجوی مجاز مشخص کند (یا هر کلید پرسوجویی را مجاز بداند.)
getReferrerUrl
با توجه به نوع کامپوننت، API شیء سند مربوط به ارجاعدهنده را میخواند و رشتهای را برمیگرداند که نشاندهنده بخشی از ارجاعدهنده است. اگر هیچ کامپوننتی مشخص نشده باشد، URL کامل ارجاعدهنده بازگردانده میشود.
نحو
getReferrerUrl([component])
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
component | رشته | کامپوننتی که از URL برگردانده میشود. میتواند یکی از موارد زیر باشد: protocol ، host ، port ، path ، query ، extension . اگر component undefined ، null باشد یا با یکی از این کامپوننتها مطابقت نداشته باشد، کل URL برگردانده میشود. |
مجوزهای مرتبط
get_referrer باید کامپوننت query را مجاز بداند، و باید queryKey در کلیدهای پرسوجوی مجاز مشخص کند (یا هر کلید پرسوجویی را مجاز بداند.)
getTimestamp
منسوخ شده. getTimestampMillis را ترجیح دهید.
عددی را برمیگرداند که زمان فعلی را بر حسب میلیثانیه از زمان آغاز یونیکس نشان میدهد، همانطور که توسط Date.now() برگردانده میشود.
نحو
getTimestamp();
مجوزهای مرتبط
هیچ کدام.
getTimestampMillis
عددی را برمیگرداند که زمان فعلی را بر حسب میلیثانیه از زمان آغاز یونیکس نشان میدهد، همانطور که توسط Date.now() برگردانده میشود.
نحو
getTimestampMillis();
مجوزهای مرتبط
هیچ کدام.
getType
رشتهای را برمیگرداند که نوع مقدار داده شده را توصیف میکند. برخلاف typeof ، getType بین array و object تفاوت قائل میشود.
نحو
getType(data.someField)
یادداشتها
جدول زیر رشتههای برگردانده شده برای هر مقدار ورودی را فهرست میکند.
| مقدار ورودی | نتیجه |
|---|---|
undefined | 'تعریف نشده' |
null | 'تهی' |
true | 'بولی' |
12 | 'شماره' |
'string' | 'رشته' |
{ a: 3 } | 'شی' |
[ 1, 3 ] | 'آرایه' |
(x) => x + 1 | «تابع» |
مجوزهای مرتبط
هیچ کدام.
getUrl
رشتهای را برمیگرداند که نشاندهندهی تمام یا بخشی از URL فعلی است، با توجه به نوع کامپوننت و برخی پارامترهای پیکربندی.
نحو
getUrl(component)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
component | رشته | کامپوننتی که قرار است از URL برگردانده شود. باید یکی از موارد زیر باشد: protocol ، host ، port ، path ، query ، extension ، fragment . اگر کامپوننت undefined ، null باشد یا با یکی از این کامپوننتها مطابقت نداشته باشد، کل مقدار href برگردانده خواهد شد. |
مجوزهای مرتبط
gtagSet
دستور gtag set را به لایه داده ارسال میکند تا در اسرع وقت پس از اتمام پردازش رویداد فعلی و هر تگی که فعال شده است (یا رسیدن به زمان پایان پردازش تگ) پردازش شود. تضمین میشود که بهروزرسانی در این کانتینر قبل از هر آیتم صفبندی شده در صف لایه داده پردازش شود.
برای مثال، اگر توسط تگی که در Consent Initialization فعال شده است فراخوانی شود، بهروزرسانی قبل از پردازش رویداد Initialization اعمال خواهد شد. برای مثال میتوان به تنظیم ads_data_redaction روی true یا false یا تنظیم url_passthrough روی true یا false اشاره کرد.
مثالها:
const gtagSet = require('gtagSet');
gtagSet({
'ads_data_redaction': true,
'url_passthrough': true,
});
نحو
gtagSet(object)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
Object | شیء | شیءای که وضعیت سراسری (global state) را برای ویژگیهای (property) حاوی خود بهروزرسانی میکند. |
مجوزهای مرتبط
تابع write_data_layer مجوز نوشتن در dataLayer را برای تمام کلیدهای مشخص شده بررسی میکند. اگر ورودی به gtagSet یک شیء ساده باشد، API مجوز نوشتن در تمام کلیدهای مسطح شده درون آن شیء را بررسی میکند، به عنوان مثال برای gtagSet({foo: {bar: 'baz'}}) ، API مجوز نوشتن در foo.bar را بررسی میکند.
اگر ورودی gtagSet یک کلید و مقداری غیرساده از شیء باشد، API مجوز نوشتن روی آن کلید را بررسی میکند، مثلاً برای gtagSet('abc', true) ، API مجوز نوشتن روی 'abc' را بررسی میکند.
توجه داشته باشید که اگر در شیء ورودی چرخهای وجود داشته باشد، فقط کلیدهایی قبل از رسیدن به همان شیء بررسی میشوند.
injectHiddenIframe
یک iframe نامرئی به صفحه اضافه میکند.
فراخوانیهای برگشتی به عنوان نمونههای تابع ارائه میشوند و در توابع جاوا اسکریپتی که آنها را فراخوانی میکنند، قرار میگیرند.
نحو
injectHiddenIframe(url, onSuccess)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
url | رشته | آدرس اینترنتی (URL) که قرار است به عنوان مقدار ویژگی src مربوط به iframe استفاده شود. |
onSuccess | تابع | زمانی که فریم با موفقیت بارگذاری شود، فراخوانی میشود. |
مجوزهای مرتبط
injectScript
یک تگ اسکریپت به صفحه اضافه میکند تا URL داده شده را به صورت غیرهمزمان بارگذاری کند. فراخوانیهای برگشتی به عنوان نمونههای تابع ارائه میشوند و در توابع جاوا اسکریپتی که آنها را فراخوانی میکنند، قرار میگیرند.
نحو
injectScript(url, onSuccess, onFailure[, cacheToken])
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
url | رشته | آدرس اسکریپتی که قرار است تزریق شود. |
onSuccess | تابع | زمانی که اسکریپت با موفقیت بارگذاری شود، فراخوانی میشود. |
onFailure | تابع | زمانی فراخوانی میشود که اسکریپت بارگذاری نشود. |
cacheToken | رشته | رشتهی اختیاری که برای نشان دادن ذخیره شدن URL داده شده استفاده میشود. اگر این مقدار مشخص شود، فقط یک عنصر اسکریپت برای درخواست جاوا اسکریپت ایجاد میشود. هرگونه تلاش اضافی برای بارگذاری منجر به قرار گرفتن متدهای onSuccess و onFailure داده شده تا زمان بارگذاری اسکریپت در صف میشود. |
مجوزهای مرتبط
isConsentGranted
اگر نوع رضایت مشخص شده اعطا شود، مقدار true را برمیگرداند.
رضایت برای یک نوع رضایت خاص، در صورتی اعطا شده تلقی میشود که نوع رضایت روی «اعطا شده» تنظیم شده باشد یا اصلاً تنظیم نشده باشد. اگر نوع رضایت روی هر مقدار دیگری تنظیم شده باشد، رضایت اعطا نشده تلقی خواهد شد.
رابط کاربری Tag Manager برای تنظیمات تگ، گزینهای برای فعال بودن همیشگی تگ ارائه میدهد. اگر تگی با فعال بودن همیشگی از این API استفاده کند، صرف نظر از وضعیت واقعی رضایت، رضایت اعطا شده تلقی شده و true برگردانده میشود.
مثال:
const isConsentGranted = require('isConsentGranted');
if (isConsentGranted('ad_storage')) {
sendFullPixel();
} else {
sendPixelWithoutCookies();
}
نحو
isConsentGranted(consentType)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
consentType | رشته | نوع رضایت برای بررسی وضعیت. |
مجوزهای مرتبط
مجوز access_consent به همراه دسترسی خواندن برای نوع رضایت.
JSON
یک شیء را برمیگرداند که توابع JSON را ارائه میدهد.
تابع parse() parse یک رشته JSON را تجزیه میکند تا مقدار یا شیء توصیف شده توسط رشته را بسازد. اگر مقدار قابل تجزیه نباشد (مثلاً JSON ناقص باشد)، تابع مقدار undefined برمیگرداند. اگر مقدار ورودی رشته نباشد، ورودی به یک رشته تبدیل میشود.
تابع stringify() ورودی را به یک رشته JSON تبدیل میکند. اگر مقدار قابل تجزیه نباشد (مثلاً شیء دارای یک چرخه باشد)، متد مقدار undefined برمیگرداند.
نحو
JSON.parse(stringInput)
JSON.stringify(value);
پارامترها
تجزیه JSON
| پارامتر | نوع | توضیحات |
|---|---|---|
| ورودی رشتهای | هر | مقداری که باید تبدیل شود. اگر مقدار رشته نباشد، ورودی به اجبار به یک رشته تبدیل میشود. |
رشتهایسازی JSON
| پارامتر | نوع | توضیحات |
|---|---|---|
| ارزش | هر | مقداری که باید تبدیل شود. |
مثال
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'});
localStorage
یک شیء با متدهایی برای دسترسی به فضای ذخیرهسازی محلی برمیگرداند.
نحو
const localStorage = require('localStorage');
// Requires read access for the key. Returns null if the key does not exist.
localStorage.getItem(key);
// Requires write access for the key. Returns true if successful.
localStorage.setItem(key, value);
// Requires write access for the key.
localStorage.removeItem(key);
مجوزهای مرتبط
مثال
const localStorage = require('localStorage');
if (localStorage) {
const value = localStorage.getItem('my_key');
if (value) {
const success = localStorage.setItem('my_key', 'new_value');
if (success) {
localStorage.removeItem('my_key');
}
}
}
logToConsole
آرگومانها را در کنسول مرورگر ثبت میکند.
نحو
logToConsole(obj1 [, obj2,... objN])
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
obj1 [, obj2,... objN] | هر | استدلالها |
مجوزهای مرتبط
makeInteger
مقدار داده شده را به یک عدد (عدد صحیح) تبدیل میکند.
نحو
makeInteger(value)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
value | هر | مقداری که باید تبدیل شود. |
مجوزهای مرتبط
هیچ کدام.
makeNumber
مقدار داده شده را به عدد تبدیل میکند.
نحو
makeNumber(value)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
value | هر | مقداری که باید تبدیل شود. |
مجوزهای مرتبط
هیچ کدام.
makeString
مقدار داده شده را به صورت یک رشته برمیگرداند.
نحو
makeString(value)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
value | هر | مقداری که باید تبدیل شود. |
مجوزهای مرتبط
هیچ کدام.
makeTableMap
یک شیء جدول ساده با دو ستون را به یک Map تبدیل میکند. این برای تغییر یک فیلد قالب SIMPLE_TABLE با دو ستون به قالبی قابل مدیریتتر استفاده میشود.
برای مثال، این تابع میتواند یک شیء جدول را تبدیل کند:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
به یک نقشه:
{
'k1': 'v1',
'k2': 'v2'
}
یک شیء را برمیگرداند: اگر جفتهای کلید-مقدار به Map تبدیل شده اضافه شده باشند، و در غیر این صورت null .
نحو
makeTableMap(tableObj, keyColumnName, valueColumnName)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
tableObj | فهرست | شیء جدول برای تبدیل. این فهرستی از نقشهها است که در آن هر Map نشان دهنده یک ردیف در جدول است. نام هر ویژگی در یک شیء ردیف، نام ستون است و مقدار ویژگی، مقدار ستون در ردیف است. |
keyColumnName | رشته | نام ستونی که مقادیر آن در Map تبدیلشده به کلید تبدیل خواهند شد. |
valueColumnName | رشته | نام ستونی که مقادیر آن به مقادیر موجود در Map تبدیل شده تبدیل خواهند شد. |
مجوزهای مرتبط
هیچ کدام.
Math
یک شیء که توابع Math را ارائه میدهد.
نحو
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);
پارامترها
پارامترهای توابع ریاضی به اعداد تبدیل میشوند.
مجوزهای مرتبط
هیچ کدام.
Object
یک شیء را برمیگرداند که متدهای Object methods) را ارائه میدهد.
متد keys() رفتار کتابخانه استاندارد Object.keys() را ارائه میدهد. این متد آرایهای از نامهای ویژگیهای قابل شمارش یک شیء داده شده را به همان ترتیبی که یک حلقه for...in... برمیگرداند، برمیگرداند. اگر مقدار ورودی یک شیء نباشد، به یک شیء منتقل میشود.
متد values() رفتار کتابخانه استاندارد Object.values() را ارائه میدهد. این متد آرایهای از مقادیر ویژگیهای قابل شمارش یک شیء داده شده را به همان ترتیبی که یک حلقه for...in... برمیگرداند، برمیگرداند. اگر مقدار ورودی یک شیء نباشد، به یک شیء منتقل میشود.
متد entries() رفتار کتابخانه استاندارد Object.entries() را ارائه میدهد. این متد آرایهای از جفتهای ویژگی قابل شمارش [key, value] یک شیء داده شده را به همان ترتیبی که یک حلقه for...in... انجام میدهد، برمیگرداند. اگر مقدار ورودی یک شیء نباشد، به یک شیء منتقل میشود.
متد freeze() رفتار کتابخانه استاندارد Object.freeze() را ارائه میدهد. یک شیء منجمد دیگر قابل تغییر نیست؛ منجمد کردن یک شیء از اضافه شدن ویژگیهای جدید به آن، حذف ویژگیهای موجود و تغییر مقادیر ویژگیهای موجود جلوگیری میکند. freeze() همان شیء ارسال شده را برمیگرداند. یک آرگومان اولیه یا تهی مانند یک شیء منجمد رفتار میشود و بازگردانده میشود.
متد delete() رفتار عملگر حذف کتابخانه استاندارد را ارائه میدهد. این متد کلید داده شده را از شیء حذف میکند، مگر اینکه شیء فریز شده باشد. مانند عملگر حذف کتابخانه استاندارد، اگر مقدار ورودی اول ( objectInput ) شیءای باشد که فریز نشده باشد، حتی اگر مقدار ورودی دوم ( keyToDelete ) کلیدی را مشخص کند که وجود ندارد، true true را برمیگرداند. در سایر موارد مقدار false را برمیگرداند. با این حال، این متد از جهات زیر با عملگر حذف کتابخانه استاندارد متفاوت است:
-
keyToDeleteنمیتواند یک رشتهی جدا شده با نقطه باشد که یک کلید تو در تو را مشخص میکند. -
delete()نمیتوان برای حذف عناصر از یک آرایه استفاده کرد. -
delete()cannot be used to remove any properties from the global scope.
نحو
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
پارامترها
کلیدهای شیء
| پارامتر | نوع | توضیحات |
|---|---|---|
| ورودی شیء | هر | شیءای که کلیدهای آن شمارش میشوند. اگر ورودی یک شیء نباشد، به یک شیء تحمیل میشود. |
مقادیر شیء
| پارامتر | نوع | توضیحات |
|---|---|---|
| ورودی شیء | هر | شیءای که مقادیر آن شمارش میشوند. اگر ورودی یک شیء نباشد، به یک شیء تحمیل میشود. |
ورودیهای شیء
| پارامتر | نوع | توضیحات |
|---|---|---|
| ورودی شیء | هر | شیء که جفتهای کلید/مقدار آن برای شمارش استفاده میشوند. اگر ورودی یک شیء نباشد، به یک شیء تحمیل میشود. |
شیء.متوقف کردن
| پارامتر | نوع | توضیحات |
|---|---|---|
| ورودی شیء | هر | شیء مورد نظر برای فریز کردن. اگر ورودی یک شیء نباشد، به عنوان یک شیء فریز شده در نظر گرفته میشود. |
حذف شیء
| پارامتر | نوع | توضیحات |
|---|---|---|
| ورودی شیء | هر | شیء که کلید آن حذف میشود. |
| کلید برای حذف | رشته | کلید سطح بالا برای حذف. |
مثال
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.
parseUrl
شیءای را برمیگرداند که شامل تمام اجزای یک URL مشخص است، مشابه شیء URL .
این API برای هر URL ناقص، undefined برمیگرداند. برای URLهای با فرمت صحیح، فیلدهایی که در رشته URL وجود ندارند، مقدار یک رشته خالی یا در مورد searchParams ، یک شیء خالی خواهند داشت.
شیء برگشتی فیلدهای زیر را خواهد داشت:
{
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,
}
مثال
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
نحو
parseUrl(url);
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
url | رشته | آدرس اینترنتی کاملی که تجزیه و تحلیل خواهد شد. |
مجوزهای مرتبط
هیچ کدام.
queryPermission
پرس و جو در مورد مجوزهای مجاز و محدود شده. یک مقدار بولی برمیگرداند: اگر مجوزی اعطا شده باشد، true و در غیر این صورت false .
نحو
queryPermission(permission, functionArgs*)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
permission | رشته | نام مجوز. |
functionArgs | هر | آرگومانهای تابع بر اساس مجوزی که درخواست میشود متفاوت هستند. به آرگومانهای تابع در زیر مراجعه کنید. |
آرگومانهای تابع
sendPixel ، injectScript ، injectHiddenIframe : پارامتر دوم باید یک رشته URL باشد.
writeGlobals , readGlobals : پارامتر دوم باید کلیدی باشد که نوشته یا خوانده میشود.
readUrl : برای بررسی اینکه آیا کل URL قابل خواندن است یا خیر، هیچ آرگومان اضافی لازم نیست. برای بررسی اینکه آیا یک کامپوننت مشخص قابل خواندن است یا خیر، نام کامپوننت را به عنوان آرگومان دوم ارسال کنید:
if (queryPermission('readUrl','port')) {
// read the port
}
برای بررسی اینکه آیا یک کلید پرسوجوی خاص قابل خواندن است یا خیر، کلید پرسوجو را به عنوان پارامتر سوم ارسال کنید:
if (queryPermission('readUrl','query','key')) {
getUrlComponent(...);
}
مجوزهای مرتبط
هیچ کدام.
readAnalyticsStorage
دادههای ذخیره شده برای تجزیه و تحلیل را بازیابی میکند و یک شیء با client_id و sessions را برمیگرداند.
-
client_id: رشتهای که نشاندهندهی شناسهی کلاینت مورد استفاده برای تجزیه و تحلیل است. -
sessions: آرایهای از اشیاء که حاوی اطلاعاتی در مورد sessionهای فعلی هستند. هر شیء شامل موارد زیر است:-
measurement_id: رشتهای که نشاندهندهی شناسهی اندازهگیریِ Analytics Destination است. -
session_id: رشتهای که نشاندهندهی مهر زمانی است که جلسهی فعلی را مشخص میکند. -
session_number: عددی که تعداد جلساتی را که کاربر تا جلسه فعلی شروع کرده است، نشان میدهد.
-
نحو
const readAnalyticsStorage = require('readAnalyticsStorage');
const cookieOptions = {
cookie_prefix: "xyz",
cookie_domain: "google.com",
cookie_path: "/",
};
readAnalyticsStorage(cookieOptions);
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
cookieOptions | شیء | گزینههای اختیاری برای خواندن کوکیها با cookie_prefix ، cookie_domain یا cookie_path خاص. |
مجوزهای مرتبط
مثال
const readAnalyticsStorage = require('readAnalyticsStorage');
const analyticsStorageData = readAnalyticsStorage();
sendOfflineEvent(analyticsStorageData.client_id, "tutorial_begin");
readCharacterSet
مقدار document.characterSet را برمیگرداند.
نحو
readCharacterSet()
پارامترها
هیچ کدام.
مجوزهای مرتبط
readTitle
مقدار document.title را برمیگرداند.
نحو
readTitle()
پارامترها
هیچ کدام.
مجوزهای مرتبط
require
یک تابع داخلی را با نام وارد میکند. یک تابع یا شیء را که میتواند از برنامه شما فراخوانی شود، برمیگرداند. وقتی مرورگر از تابع داخلی پشتیبانی نمیکند، مقدار undefined را برمیگرداند.
نحو
require(name)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
name | رشته | نام تابعی که قرار است وارد شود. |
مثال
const getUrl = require('getUrl');
const url = getUrl();
مجوزهای مرتبط
هیچ کدام.
sendPixel
یک درخواست GET به یک نقطه انتهایی URL مشخص شده ارسال میکند.
نحو
sendPixel(url, onSuccess, onFailure)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
url | رشته | پیکسل را به کجا ارسال کنیم. |
onSuccess | تابع | وقتی پیکسل با موفقیت بارگذاری میشود، فراخوانی میشود. توجه: حتی اگر درخواست با موفقیت ارسال شود، مرورگرها ممکن است برای اجرای onSuccess به یک پاسخ تصویر معتبر نیاز داشته باشند. |
onFailure | تابع | زمانی فراخوانی میشود که پیکسل بارگذاری نشود. توجه: حتی اگر درخواست با موفقیت ارسال شود، اگر سرور پاسخ معتبری برای تصویر برنگرداند، ممکن است onFailure اجرا شود. |
مجوزهای مرتبط
setCookie
کوکی را با نام، مقدار و گزینههای مشخص شده تنظیم یا حذف میکند.
نحو
setCookie(name, value[, options, encode])
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
name | رشته | نام کوکی. |
value | رشته | ارزش کوکی. |
options | شیء | ویژگیهای دامنه (Domain)، مسیر (Path)، انقضا (Expires)، حداکثر سن (Max-Age)، امن (Secure) و سایت مشابه (SameSite ) را مشخص میکند. (به بخش گزینهها (Options) در زیر مراجعه کنید.) |
encode | بولی | کنترل میکند که آیا مقدار کوکی با encodeURIComponent() جاوااسکریپت کدگذاری شود یا خیر. مقدار پیشفرض true است. |
- دامنه: در صورت وجود، توسط ویژگی
options['domain']تنظیم میشود. این مقدار را روی'auto'تنظیم کنید تا سعی کند کوکی را با استفاده از وسیعترین دامنه ممکن، بر اساس مکان سند، بنویسد. اگر این کار ناموفق باشد، زیردامنههای باریکتر را امتحان میکند. اگر همه آنها ناموفق باشند، سعی میکند کوکی را بدون دامنه بنویسد. اگر مقداری تنظیم نشود، این دستور سعی میکند کوکی را بدون دامنه مشخص شده بنویسد. توجه: وقتی یک کوکی بدون دامنه مشخص شده درdocument.cookieنوشته میشود، عامل کاربر دامنه کوکی را به طور پیشفرض روی میزبان مکان سند فعلی قرار میدهد. - مسیر: در صورت وجود، توسط
options['path']تنظیم میشود. وقتی یک کوکی بدون مسیر مشخص شده درdocument.cookieنوشته میشود، عامل کاربر مسیر کوکی را به طور پیشفرض به مسیر محل سند فعلی تغییر میدهد. - حداکثر سن: در صورت وجود، توسط
options['max-age']تنظیم میشود. - تاریخ انقضا: در صورت وجود، توسط
options['expires']تنظیم میشود. در صورت وجود، این باید یک رشته تاریخ با فرمت UTC باشد. میتوان ازDate.toUTCString()برای قالببندیDateبرای این پارامتر استفاده کرد. - امن: در صورت وجود، توسط
options['secure']تنظیم میشود. - SameSite: در صورت وجود، توسط
options['samesite']تنظیم میشود.
مجوزهای مرتبط
setDefaultConsentState
یک بهروزرسانی پیشفرض رضایتنامه را به لایه داده ارسال میکند تا در اسرع وقت پس از اتمام پردازش رویداد فعلی و هر تگی که فعال شده است (یا رسیدن به زمان پایان پردازش تگ) پردازش شود. تضمین میشود که بهروزرسانی در این کانتینر قبل از هر آیتم صفبندی شده در لایه داده پردازش شود. درباره رضایتنامه بیشتر بدانید .
مثال:
const setDefaultConsentState = require('setDefaultConsentState');
setDefaultConsentState({
'ad_storage': 'denied',
'analytics_storage': 'granted',
'third_party_storage': 'denied',
'region': ['US-CA'],
'wait_for_update': 500
});
نحو
setDefaultConsentState(consentSettings)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
consentSettings | شیء | شیءای که حالت پیشفرض را برای انواع رضایت مشخصشده تعریف میکند. |
شیء consentSettings نگاشتی از رشتههای نوع رضایت دلخواه به یکی از 'granted' یا 'denied' است. این شیء از مقادیر زیر پشتیبانی میکند:
| نام کلید | نوع | توضیحات |
|---|---|---|
consentType | رشته | مقدار هر نوع رضایت را میتوان روی «اعطا شده» یا «رد شده» تنظیم کرد. هر مقداری غیر از «اعطا شده» به عنوان «رد شده» در نظر گرفته میشود. تنظیم مقدار روی «تعریف نشده» هیچ تاثیری روی مقدار قبلی آن نخواهد داشت. |
region | آرایه | یک آرایه اختیاری از کدهای منطقهای که مشخص میکند تنظیمات رضایتنامه برای کدام منطقه اعمال میشود. کدهای منطقهای با استفاده از کشور و/یا تقسیمات کشوری در قالب ISO 3166-2 بیان میشوند. |
wait_for_update | شماره | مقداری در میلیثانیه برای کنترل مدت زمان انتظار قبل از ارسال دادهها مشخص میکند. با ابزارهای رضایت که به صورت ناهمزمان بارگذاری میشوند، استفاده میشود. |
مجوزهای مرتبط
access_consent permission with write access for all consent types in the consentSettings object.
setInWindow
مقدار داده شده در window را در کلید داده شده تنظیم میکند. به طور پیشفرض، اگر مقداری از قبل در پنجره وجود داشته باشد، این متد مقدار را در window تنظیم نمیکند. overrideExisting را روی true تنظیم کنید تا مقدار در window صرف نظر از وجود مقدار موجود تنظیم شود. یک مقدار بولی برمیگرداند: اگر مقدار با موفقیت تنظیم شده باشد، true و در غیر این صورت false .
نحو
setInWindow(key, value, overrideExisting)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
key | رشته | کلید موجود در window برای قرار دادن مقدار در آن. |
value | * | مقداری که باید در window تنظیم شود. |
overrideExisting | بولی | پرچمی که نشان میدهد آن مقدار باید در window تنظیم شود، صرف نظر از اینکه مقداری در آنجا وجود دارد یا خیر. |
مجوزهای مرتبط
sha256
خلاصه SHA-256 ورودی را محاسبه میکند و یک فراخوانی برگشتی با خلاصه کدگذاری شده در base64 فراخوانی میکند، مگر اینکه شیء options کدگذاری خروجی متفاوتی را مشخص کند.
مثال:
sha256('inputString', (digest) => {
sendPixel('https://example.com/collect?id=' + digest);
data.gtmOnSuccess();
}, data.gtmOnFailure);
sha256('inputString', (digest) => {
sendPixel('https://example.com/collect?id=' + digest);
data.gtmOnSuccess();
}, data.gtmOnFailure, {outputEncoding: 'hex'});
نحو
sha256(input, onSuccess, onFailure = undefined, options = undefined)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
input | رشته | رشتهای که هش برای آن محاسبه میشود. |
onSuccess | تابع | با خلاصهی حاصل که با base64 کدگذاری شده است، فراخوانی میشود، مگر اینکه شیء options کدگذاری خروجی متفاوتی را مشخص کند. |
onFailure | تابع | اگر هنگام محاسبه خلاصه خطا خطایی رخ دهد، یا اگر مرورگر پشتیبانی بومی از sha256 نداشته باشد، فراخوانی میشود. تابع فراخوانی با یک شیء حاوی نام خطا و پیام فراخوانی میشود. |
options | شیء | گزینههای اختیاری شیء برای مشخص کردن کدگذاری خروجی. در صورت مشخص شدن، شیء باید حاوی کلید outputEncoding با مقدار یکی از base64 یا hex باشد. |
مجوزهای مرتبط
هیچ کدام.
templateStorage
یک شیء با متدهایی برای دسترسی به فضای ذخیرهسازی الگو برمیگرداند. فضای ذخیرهسازی الگو امکان اشتراکگذاری دادهها را در طول اجرای یک الگوی واحد فراهم میکند. دادههای ذخیرهشده در فضای ذخیرهسازی الگو در طول عمر صفحه باقی میمانند.
نحو
const templateStorage = require('templateStorage');
templateStorage.getItem(key);
templateStorage.setItem(key, value);
templateStorage.removeItem(key);
// Deletes all stored values for the template.
templateStorage.clear();
مجوزهای مرتبط
مثال
const templateStorage = require('templateStorage');
const sendPixel = require('sendPixel');
// Ensure sendPixel is called only once per page.
if (templateStorage.getItem('alreadyRan')) {
data.gtmOnSuccess();
return;
}
templateStorage.setItem('alreadyRan', true);
sendPixel(
data.oncePerPagePixelUrl,
data.gtmOnSuccess,
() => {
templateStorage.setItem('alreadyRan', false);
data.gtmOnFailure();
});
toBase64
رابط برنامهنویسی کاربردی toBase64 به شما امکان میدهد یک رشته را به صورت نمایش base64 کدگذاری کنید.
نحو
toBase64(input)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
input | رشته | رشته برای رمزگذاری. |
مثال
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
مجوزهای مرتبط
هیچکدام
updateConsentState
یک بهروزرسانی رضایتنامه را به لایه داده ارسال میکند تا در اسرع وقت پس از اتمام پردازش رویداد فعلی و هر تگی که فعال شده است (یا رسیدن به زمان پایان پردازش تگ) پردازش شود. تضمین میشود که بهروزرسانی در این کانتینر قبل از هر آیتم صفبندی شده در لایه داده پردازش شود. درباره رضایتنامه بیشتر بدانید .
مثال:
const updateConsentState = require('updateConsentState');
updateConsentState({
'ad_storage': 'granted',
'analytics_storage': 'denied',
'third_party_storage': 'granted',
});
نحو
updateConsentState(consentSettings)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
consentSettings | شیء | شیءای که وضعیت را برای انواع رضایت مشخصشده بهروزرسانی میکند. |
شیء consentSettings نگاشتی از رشتههای نوع رضایت دلخواه به یکی از 'granted' یا 'denied' است. این شیء از مقادیر زیر پشتیبانی میکند:
| نام کلید | نوع | توضیحات |
|---|---|---|
consentType | رشته | مقدار هر نوع رضایت را میتوان روی «اعطا شده» یا «رد شده» تنظیم کرد. هر مقداری غیر از «اعطا شده» به عنوان «رد شده» در نظر گرفته میشود. تنظیم مقدار روی «تعریف نشده» هیچ تاثیری روی مقدار قبلی آن نخواهد داشت. |
مجوزهای مرتبط
مجوز access_consent با دسترسی نوشتن برای همه انواع رضایتنامه در شیء consentSettings.
API های تست
این APIها با تستهای جاوا اسکریپتِ سندباکسشده کار میکنند تا تستهایی برای قالبهای سفارشی در گوگل تگ منیجر بسازند. این APIهای تست نیازی به دستور require() ندارند. درباره تستهای قالب سفارشی بیشتر بدانید .
assertApi
یک شیء تطبیقدهنده را برمیگرداند که میتواند برای ایجاد عبارات شرطی (assertions) در مورد API داده شده مورد استفاده قرار گیرد.
نحو
assertApi(apiName)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
apiName | رشته | نام API که باید بررسی شود؛ همان رشتهای که به require() ارسال شده است. |
تطبیقدهندهها
-
Subject.wasCalled() -
Subject.wasNotCalled() -
Subject.wasCalledWith(...expected) -
Subject.wasNotCalledWith(...expected)
مثالها
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
رابط برنامهنویسی کاربردی assertThat از کتابخانه [Truth] گوگل الگوبرداری شده است. این رابط، شیءای را برمیگرداند که میتواند برای ایجاد روانِ ادعاها (assertions) در مورد مقدار یک موضوع (subject) مورد استفاده قرار گیرد. شکست در ادعا، بلافاصله آزمون را متوقف کرده و آن را به عنوان شکست خورده علامتگذاری میکند. با این حال، شکست در یک آزمون، سایر موارد آزمون را تحت تأثیر قرار نمیدهد.
نحو
assertThat(actual, opt_message)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
actual | هر | مقداری که در بررسیهای fluent استفاده میشود. |
opt_message | رشته | پیام اختیاری که در صورت عدم موفقیت در تأیید، چاپ میشود. |
تطبیقدهندهها
| تطبیق دهنده | توضیحات |
|---|---|
isUndefined() | ادعا میکند که موضوع undefined است. |
isDefined() | ادعا میکند که موضوع undefined نیست. |
isNull() | ادعا میکند که موضوع null است. |
isNotNull() | ادعا میکند که موضوع null نیست. |
isFalse() | ادعا میکند که موضوع false است. |
isTrue() | ادعا میکند که موضوع true است. |
isFalsy() | ادعا میکند که موضوع نادرست است. مقادیر نادرست عبارتند از undefined ، null ، false ، NaN ، 0 و '' (رشته خالی). |
isTruthy() | ادعا میکند که موضوع درست است. مقادیر نادرست عبارتند از undefined ، null ، false ، NaN ، 0 و '' (رشته خالی). |
isNaN() | ادعا میکند که موضوع، مقدار NaN است. |
isNotNaN() | ادعا میکند که موضوع هر مقداری غیر از NaN است. |
isInfinity() | ادعا میکند که موضوع، مثبت یا منفی بینهایت است. |
isNotInfinity() | ادعا میکند که موضوع، هر مقداری علاوه بر بینهایت مثبت یا منفی است. |
isEqualTo(expected) | ادعا میکند که موضوع برابر با مقدار داده شده است. این یک مقایسه مقداری است، نه یک مقایسه مرجع. محتویات اشیاء و آرایهها به صورت بازگشتی مقایسه میشوند. |
isNotEqualTo(expected) | ادعا میکند که موضوع با مقدار داده شده برابر نیست. این یک مقایسه مقداری است، نه یک مقایسه مرجع. محتویات اشیاء و آرایهها به صورت بازگشتی مقایسه میشوند. |
isAnyOf(...expected) | ادعا میکند که موضوع برابر با یکی از مقادیر داده شده است. این یک مقایسه مقداری است، نه یک مقایسه مرجع. محتویات اشیاء و آرایهها به صورت بازگشتی مقایسه میشوند. |
isNoneOf(...expected) | ادعا میکند که موضوع با هیچ یک از مقادیر داده شده برابر نیست. این یک مقایسه مقداری است، نه یک مقایسه مرجع. محتویات اشیاء و آرایهها به صورت بازگشتی مقایسه میشوند. |
isStrictlyEqualTo(expected) | ادعا میکند که موضوع کاملاً برابر ( === ) با مقدار داده شده است. |
isNotStrictlyEqualTo(expected) | ادعا میکند که موضوع کاملاً برابر ( !== ) با مقدار داده شده نیست. |
isGreaterThan(expected) | ادعا میکند که موضوع از ( > ) مقدار داده شده در یک مقایسه مرتب بزرگتر است. |
isGreaterThanOrEqualTo(expected) | ادعا میکند که موضوع در یک مقایسه ترتیبی، بزرگتر یا مساوی ( >= ) مقدار داده شده است. |
isLessThan(expected) | ادعا میکند که موضوع در یک مقایسه مرتب، کوچکتر از ( < ) مقدار داده شده است. |
isLessThanOrEqualTo(expected) | ادعا میکند که موضوع در یک مقایسه ترتیبی، کوچکتر یا مساوی ( <= ) مقدار داده شده است. |
contains(...expected) | ادعا میکند که موضوع یک آرایه یا رشته است که شامل تمام مقادیر داده شده به هر ترتیبی است. این یک مقایسه مقداری است، نه یک مقایسه مرجع. محتویات اشیاء و آرایهها به صورت بازگشتی مقایسه میشوند. |
doesNotContain(...expected) | ادعا میکند که موضوع یک آرایه یا رشته است که هیچ یک از مقادیر داده شده را شامل نمیشود. این یک مقایسه مقداری است، نه یک مقایسه مرجع. محتویات اشیاء و آرایهها به صورت بازگشتی مقایسه میشوند. |
containsExactly(...expected) | ادعا میکند که موضوع، آرایهای است که شامل تمام مقادیر داده شده به هر ترتیبی است و هیچ مقدار دیگری ندارد. این یک مقایسه مقداری است، نه یک مقایسه مرجع. محتویات اشیاء و آرایهها به صورت بازگشتی مقایسه میشوند. |
doesNotContainExactly(...expected) | ادعا میکند که موضوع، آرایهای است که شامل مجموعهای متفاوت از مقادیر داده شده به هر ترتیبی است. این یک مقایسه مقداری است، نه یک مقایسه مرجع. محتویات اشیاء و آرایهها به صورت بازگشتی مقایسه میشوند. |
hasLength(expected) | ادعا میکند که موضوع یک آرایه یا رشته با طول داده شده است. اگر مقدار، آرایه یا رشته نباشد، این ادعا همیشه با شکست مواجه میشود. |
isEmpty() | ادعا میکند که موضوع یک آرایه یا رشته خالی است (طول = 0). اگر مقدار، آرایه یا رشته نباشد، این ادعا همیشه با شکست مواجه میشود. |
isNotEmpty() | ادعا میکند که موضوع یک آرایه یا رشته است که خالی نیست (طول > 0). اگر مقدار یک آرایه یا رشته نباشد، این ادعا همیشه با شکست مواجه میشود. |
isArray() | ادعا میکند که نوع موضوع، آرایه است. |
isBoolean() | ادعا میکند که نوع موضوع از نوع بولی است. |
isFunction() | ادعا میکند که نوع موضوع یک تابع است. |
isNumber() | ادعا میکند که نوع موضوع عدد است. |
isObject() | ادعا میکند که نوع فاعل، شیء است. |
isString() | ادعا میکند که نوع موضوع، رشته است. |
مثالها
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
بلافاصله در آزمون فعلی شکست میخورد و در صورت ارائه، پیام داده شده را چاپ میکند.
نحو
fail(opt_message);
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
opt_message | رشته | متن پیام خطا اختیاری. |
مثال
fail('This test has failed.');
mock
API mock به شما امکان میدهد رفتار APIهای Sandboxed را نادیده بگیرید. استفاده از API ساختگی در کد قالب بیخطر است، اما فقط در حالت آزمایشی قابل اجرا است. قبل از اجرای هر آزمایش، نمونههای ساختگی بازنشانی میشوند.
نحو
mock(apiName, returnValue);
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
apiName | رشته | نام API که قرار است شبیهسازی شود؛ همان رشتهای که به require() ارسال شده است. |
returnValue | هر | The value to return for the API or a function called in place of the API. If returnValue is a function, that function is called in place of the Sandboxed API; if returnValue is anything other than a function, that value is returned in place of the Sandboxed API. |
مثالها
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
The mockObject API lets you override the behavior of Sandboxed APIs that return an object. The API is safe to use in template code, but it is operational only in test mode. Mocks are reset before each test is run.
Syntax
mockObject(apiName, objectMock);
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
apiName | رشته | The name of the API to mock; same string as passed to require() |
objectMock | شیء | The value to return for the API or a function called in place of the API. Must be an object. |
مثالها
const storage = {};
mockObject('localStorage', {
setItem: (key, value) => {storage[key] = value;},
getItem: (key) => storage[key],
});
runCode
Runs the code for the template, ie the content of the Code tab, in the current test environment with a given input data object.
Syntax
runCode(data)
پارامترها
| پارامتر | نوع | توضیحات |
|---|---|---|
data | شیء | Data object to be used in the test. |
مقدار بازگشتی
Returns the value of a variable for variable templates; returns undefined for all other template types.
مثال
runCode({field1: 123, field2: 'value'});