میاناهای برنامهسازی کاربردی اصلی
این میاناهای برنامهسازی کاربردی با جاوا اسکریپت جعبه شنی کار میکنند تا الگوهای سفارشی در «مدیر برچسب Google» بسازند. هر API با عبارت require() اضافه میشود، برای مثال:
const myAPI = require('myAPI');
addConsentListener
تابع شنوندهای را ثبت میکند تا وقتی وضعیت نوع رضایت مشخصشده تغییر میکند اجرا شود.
هر بار که وضعیت نوع رضایت مشخصشده از ردشده به اعطاشده یا از اعطاشده به ردشده تغییر کند، شنونده ارائهشده فراخوانده میشود. نوع رضایتی که وضعیت نداشته باشد، اعطاشده درنظر گرفته میشود، بنابراین اگر نوع رضایت تنظیمنشدهای به اعطاشده بهروز شود، شنونده فراخوانده نخواهد شد. توابع شنونده مسئولیت اطمینان از اینکه کد آنها به تعداد دفعات مناسب اجرا میشود را برعهده خواهند داشت.
مثال:
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 |
boolean | بولی که اگر نوع رضایت مشخصشده به «اعطاشده» تغییر کند، مقدار آن «درست» است. |
اجازههای مرتبط
اجازه access_consent با دسترسی خواندن برای نوع رضایت.
addEventCallback
addEventCallback API به شما امکان میدهد تابع بازخوانیای را ثبت کنید که در پایان رویداد فراخوانده میشود. وقتی همه برچسبهای رویداد اجرا شده باشند یا زمان وقفه رویداد درونصفحهای بهپایان رسیده باشد، فراخوانی برگشتی اجرا میشود.
دو مقدار به فراخوانی برگشتی ارسال میشود، شناسه محفظهای که تابع را فراخوانی میکند و شیئی که حاوی اطلاعاتی درباره رویداد است.
نحو
addEventCallback(callback)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
callback |
تابع | تابعی که در پایان رویداد فراخوانی میشود. |
شیء eventData حاوی دادههای زیر است:
| نام کلید | نوع | شرح |
|---|---|---|
tags |
آرایه | آرایهای از اشیای داده برچسب. هر برچسبی که درطول رویداد فعال شده است
یک ورودی در این آرایه خواهد داشت. شیء داده برچسب حاوی شناسه برچسب (id)، وضعیت اجرای آن (status)، و زمان اجرای آن (executionTime) است. دادههای برچسب همچنین شامل فرادادههای اضافی برچسب خواهد بود که در برچسب پیکربندی شده است. |
نمونه
addEventCallback(function(ctid, eventData) {
logToConsole('Tag count for container ' + ctid + ': ' + eventData['tags'].length);
});
اجازههای مرتبط
aliasInWindow
aliasInWindow API به شما امکان میدهد نام مستعار (مثلاً 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 با آرگومانهای ارائهشده فراخوانی میکند و مقدار را برمیگرداند. اگر نوع پاسخ را نتوان مستقیماً به نوعی که در جاوا اسکریپت محدودشده پشتیبانی میشود نگاشت کرد، undefined برگردانده خواهد شد. هشت نوع پشتیبانیشده در JavaScript جعبه امن عبارتاند از 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 |
رشته | کلید در قالب «a.b.c». |
dataLayerVersion |
number | نسخه لایه داده اختیاری. مقدار پیشفرض ۲ است. اکیداً توصیه میشود از مقدار ۱ استفاده نکنید. |
اجازههای مرتبط
copyFromWindow
متغیری را از شیء window کپی میکند. اگر مقدار موجود در window نتواند مستقیماً به نوعی که در جاوا اسکریپت محدودشده پشتیبانی میشود نگاشت شود، undefined برگردانده خواهد شد. هشت نوع پشتیبانیشده در جاوا اسکریپت جعبه شنی عبارتاند از null،
undefined، boolean، number، string، Array، Object، و function.
مقدار واکشیشده (و اجباری) را برمیگرداند.
نحو
copyFromWindow(key)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
key |
رشته | کلید در window برای کپی کردن مقدار. |
اجازههای مرتبط
createArgumentsQueue
صفی ایجاد میکند که با اشیای آرگومان پر شده است، برای پشتیبانی از راهحلهای برچسبی که به آن نیاز دارند.
بااستفاده از آرگومان fnKey، تابعی در دامنه سراسری (یعنی window) ایجاد میکند
(معناشناسی مشابه createQueue). پساز ایجاد تابع، این API سپس
بااستفاده از آرگومان arrayKey، آرایهای در window ایجاد میکند (اگر ازقبل وجود نداشته باشد).
وقتی تابع ایجادشده تحت fnKey فراخوانی میشود، شیء آرگومانهایش را به آرایه ایجادشده تحت arrayKey ارسال میکند. مقدار برگشتی میانای برنامهسازی کاربردی
تابع ایجادشده تحت 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 |
رشته | شناسه منبع یکسانی که توسط
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 API به شما امکان میدهد رشتهها را از نمایش base64 آنها رمزگشایی کنید. اگر ورودی نامعتبر ارائه شود، undefined را برمیگرداند.
نحو
fromBase64(base64EncodedString)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
base64EncodedString |
رشته | رشته کدبندیشده Base64. |
نمونه
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
اجازههای مرتبط
خالی
generateRandom
عددی (عدد صحیح) تصادفی در محدوده ارائهشده برمیگرداند.
نحو
generateRandom(min, max)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
min |
number | حداقل مقدار بالقوه عدد صحیح برگرداندهشده. |
max |
number | حداکثر مقدار بالقوه عدد صحیح برگرداندهشده. |
اجازههای مرتبط
هیچکدام.
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 |
boolean | کنترل میکند که آیا مقادیر کوکی با
decodeURIComponent()
جاوا اسکریپت رمزگشایی شوند یا نه. پیشفرض به
true. |
اجازههای مرتبط
getQueryParameters
اولین یا همه پارامترهای queryKey نشانی وب فعلی را برمیگرداند.
اولین مقدار را از queryKey یا آرایهای از مقادیر را از
queryKey برمیگرداند.
نحو
getQueryParameters(queryKey[, retrieveAll])
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
queryKey |
رشته | کلید خواندن از پارامترهای پُرسمان. |
retrieveAll |
boolean | آیا همه مقادیر بازیابی شوند یا نه. |
برای مثال، اگر نشانی وب فعلی
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
getReferrerQueryParameters API مانند getQueryParameters عمل میکند،
با این تفاوت که بهجای نشانی وب فعلی، روی ارجاعدهنده عمل میکند. اولین یا
همه پارامترهای queryKey ارجاعدهنده دادهشده را برمیگرداند. اولین مقدار را از queryKey یا آرایهای از مقادیر را از queryKey برمیگرداند.
نحو
getReferrerQueryParameters(queryKey[, retrieveAll])
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
queryKey |
رشته | کلید خواندن از پارامترهای پُرسمان. |
retrieveAll |
boolean | آیا همه مقادیر بازیابی شوند یا نه. |
برای مثال، اگر نشانی وب ارجاعدهنده
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 شیء سند را برای ارجاعدهنده میخواند و رشتهای را برمیگرداند که نشاندهنده بخشی از ارجاعدهنده است. اگر مؤلفهای مشخص نشده باشد، نشانی وب کامل ارجاعدهنده برگردانده میشود.
نحو
getReferrerUrl([component])
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
component |
رشته | مؤلفهای که باید از نشانی وب برگردانده شود. میتواند یکی از موارد زیر باشد:
protocol، host، port،
path، query، extension. اگر
component برابر با undefined، null باشد، یا
با یکی از این مؤلفهها مطابقت نداشته باشد، کل نشانی وب
برگردانده خواهد شد. |
اجازههای مرتبط
get_referrer باید مؤلفه query را مجاز کند و باید
queryKey را در کلیدهای پُرسمان مجاز مشخص کند (یا هر کلید پُرسمانی را مجاز کند.)
getTimestamp
منسوخشده. getTimestampMillis ترجیح داده میشود.
عددی را برمیگرداند که نشاندهنده زمان فعلی برحسب میلیثانیه از تاریخ یونیکس است، همانطور که توسط Date.now() برگردانده شده است.
نحو
getTimestamp();
اجازههای مرتبط
هیچکدام.
getTimestampMillis
عددی را برمیگرداند که نشاندهنده زمان فعلی برحسب میلیثانیه از تاریخ یونیکس است، همانطور که توسط Date.now() برگردانده شده است.
نحو
getTimestampMillis();
اجازههای مرتبط
هیچکدام.
getType
رشتهای را برمیگرداند که نوع مقدار دادهشده را توصیف میکند. برخلاف typeof،
getType بین array و object تفاوت قائل میشود.
نحو
getType(data.someField)
یادداشتها
جدول زیر رشتههای برگرداندهشده برای هر مقدار ورودی را فهرست میکند.
| مقدار ورودی | نتیجه |
|---|---|
undefined |
تعریفنشده |
null |
'null' |
true |
'boolean' |
12 |
'number' |
'string' |
'رشته' |
{ a: 3 } |
'object' |
[ 1, 3 ] |
«آرایه» |
(x) => x + 1 |
'تابع' |
اجازههای مرتبط
هیچکدام.
getUrl
رشتهای را برمیگرداند که نشاندهنده کل یا بخشی از نشانی وب فعلی است، با توجه به نوع مؤلفه و برخی پارامترهای پیکربندی.
نحو
getUrl(component)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
component |
رشته | مؤلفهای که باید از نشانی وب برگردانده شود. باید یکی از این موارد باشد:
protocol، host، port،
path، query، extension،
fragment. اگر مؤلفه undefined،
null باشد یا با یکی از این مؤلفهها مطابقت نداشته باشد،
کل مقدار href برگردانده خواهد شد. |
اجازههای مرتبط
gtagSet
فرمان تنظیم gtag را به لایه داده ارسال میکند تا در اسرع وقت پساز رویداد فعلی پردازش شود و پردازش هر برچسبی که راهاندازی کرده است بهپایان برسد (یا زمان پردازش برچسب بهپایان برسد). تضمین میشود که بهروزرسانی قبلاز هر مورد در صف لایه داده، در این محفظه پردازش شود.
برای مثال، اگر توسط برچسبی که در مقداردهی اولیه رضایت فعال شده است فراخوانی شود،
بهروزرسانی قبلاز پردازش رویداد «مقداردهی اولیه» اعمال خواهد شد. برای مثال،
ads_data_redaction روی true یا false تنظیم شده باشد یا url_passthrough
روی true یا false تنظیم شده باشد.
نمونه:
const gtagSet = require('gtagSet');
gtagSet({
'ads_data_redaction': true,
'url_passthrough': true,
});
نحو
gtagSet(object)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
Object |
شیء | شیئی که وضعیت سراسری را برای داراییهای حاوی آن بهروز میکند. |
اجازههای مرتبط
write_data_layer اجازه نوشتن در dataLayer را برای همه کلیدهای مشخصشده بررسی میکند. اگر ورودی gtagSet یک شیء ساده باشد، میانای برنامهسازی کاربردی
اجازه نوشتن را برای همه کلیدهای مسطحشده داخل آن شیء بررسی میکند، مثلاً برای
gtagSet({foo: {bar: 'baz'}})، میانای برنامهسازی کاربردی اجازه نوشتن را
برای foo.bar بررسی میکند.
اگر ورودی gtagSet یک کلید و مقداری شیء غیرساده باشد، میانای برنامهسازی کاربردی
اجازه نوشتن را برای آن کلید بررسی میکند، مثلاً برای gtagSet('abc', true) ،
میانای برنامهسازی کاربردی اجازه نوشتن را برای 'abc' بررسی میکند.
توجه داشته باشید که اگر چرخهای در شیء ورودی وجود داشته باشد، فقط کلیدهای قبلاز رسیدن به همان شیء بررسی خواهند شد.
injectHiddenIframe
یک iframe نامرئی به صفحه اضافه میکند.
فراخوانیهای برگشتی بهعنوان نمونههای تابع ارائه میشوند و در توابع جاوا اسکریپت که ازطریق آنها فراخوانی میشوند، پیچیده میشوند.
نحو
injectHiddenIframe(url, onSuccess)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
url |
رشته | نشانی وبی که بهعنوان مقدار مشخصه src
iframe استفاده میشود. |
onSuccess |
تابع | وقتی قاب باموفقیت بار میشود، فراخوانی میشود. |
اجازههای مرتبط
injectScript
برچسب دستورگانی به صفحه اضافه میکند تا نشانی وب دادهشده را بهصورت ناهمگام بار کند. فراخوانیهای برگشتی بهعنوان نمونههای تابع ارائه میشوند و در توابع جاوا اسکریپت که آنها را فراخوانی میکنند، پیچیده شدهاند.
نحو
injectScript(url, onSuccess, onFailure[, cacheToken])
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
url |
رشته | نشانی دستورگانی که باید تزریق شود. |
onSuccess |
تابع | وقتی فراخوانی میشود که متن باموفقیت بار شود. |
onFailure |
تابع | وقتی فراخوانی میشود که بار کردن اسکریپت ناموفق باشد. |
cacheToken |
رشته | رشته اختیاری که برای نشان دادن اینکه نشانی وب دادهشده باید ذخیره شود استفاده میشود. اگر
این مقدار مشخص شود، فقط یک عنصر اسکریپت برای
درخواست جاوا اسکریپت ایجاد خواهد شد. هرگونه تلاش اضافی برای بار کردن منجر به
قرار گرفتن روشهای onSuccess و onFailure ارائهشده
در صف میشود تا زمانی که اسکریپت بار شود. |
اجازههای مرتبط
isConsentGranted
اگر نوع رضایت مشخصشده اعطا شده باشد، مقدار «درست» را برمیگرداند.
رضایت برای نوع خاصی از رضایت درصورتی اعطاشده درنظر گرفته میشود که نوع رضایت روی «اعطاشده» تنظیم شده باشد یا اصلاً تنظیم نشده باشد. اگر نوع رضایت روی هر مقدار دیگری تنظیم شده باشد، بهعنوان رضایت دادهنشده درنظر گرفته میشود.
واسط کاربر Tag Manager برای تنظیمات برچسب گزینهای برای همیشه فعال شدن ارائه میدهد. اگر برچسبی که «همیشه فعال شود» برای آن روشن است از این میانای برنامهسازی کاربردی استفاده کند، رضایت اعطاشده درنظر گرفته میشود و صرفنظر از وضعیت واقعی رضایت، true برگردانده خواهد شد.
مثال:
const isConsentGranted = require('isConsentGranted');
if (isConsentGranted('ad_storage')) {
sendFullPixel();
} else {
sendPixelWithoutCookies();
}
نحو
isConsentGranted(consentType)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
consentType |
رشته | نوع رضایت برای بررسی وضعیت. |
اجازههای مرتبط
اجازه access_consent با دسترسی خواندن برای نوع رضایت.
JSON
شیئی را برمیگرداند که توابع JSON را ارائه میدهد.
تابع parse() رشته JSON را تجزیه میکند تا مقدار یا شیء توصیفشده توسط رشته را بسازد. اگر مقدار قابل تجزیه نباشد (مثلاً JSON بدشکل)،
تابع undefined را برمیگرداند. اگر مقدار ورودی رشته نباشد،
ورودی به رشته تبدیل میشود.
تابع stringify() ورودی را به رشته JSON تبدیل میکند. اگر مقدار
تجزیه نشود (مثلاً شیء چرخه داشته باشد)، روش
undefined را برمیگرداند.
نحو
JSON.parse(stringInput)
JSON.stringify(value);
پارامترها
JSON.parse
| پارامتر | نوع | شرح |
|---|---|---|
| stringInput | any | مقداری که باید تبدیل شود. اگر مقدار رشته نباشد، ورودی به رشته تبدیل خواهد شد. |
JSON.stringify
| پارامتر | نوع | شرح |
|---|---|---|
| مقدار | any | مقداری که باید تبدیل شود. |
نمونه
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] |
any | آرگومانها |
اجازههای مرتبط
makeInteger
مقدار دادهشده را به عدد (عدد صحیح) تبدیل میکند.
نحو
makeInteger(value)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
value |
any | مقداری که باید تبدیل شود. |
اجازههای مرتبط
هیچکدام.
makeNumber
مقدار دادهشده را به عدد تبدیل میکند.
نحو
makeNumber(value)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
value |
any | مقداری که باید تبدیل شود. |
اجازههای مرتبط
هیچکدام.
makeString
مقدار دادهشده را بهصورت رشته برمیگرداند.
نحو
makeString(value)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
value |
any | مقداری که باید تبدیل شود. |
اجازههای مرتبط
هیچکدام.
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 را ارائه میدهد.
روش keys() رفتار Object.keys() «کتابخانه استاندارد» را ارائه میدهد. آرایهای از نامهای ویژگی قابلشمارش خود شیء دادهشده را با همان ترتیبی که حلقه for...in... انجام میدهد برمیگرداند. اگر مقدار ورودی شیء نباشد، به شیء تبدیل میشود.
روش values() رفتار Object.values() «کتابخانه استاندارد» را ارائه میدهد. آرایهای از مقادیر ویژگی قابلشمارش خود شیء دادهشده را
به همان ترتیبی که حلقه for...in... برمیگرداند، برمیگرداند. اگر مقدار ورودی شیء نباشد، به شیء تبدیل میشود.
روش entries() رفتار Object.entries() «کتابخانه استاندارد» را ارائه میدهد. آرایهای از جفتهای [key, value] ویژگی قابلشمارش خود شیء دادهشده را با همان ترتیبی که حلقه for...in... انجام میدهد برمیگرداند. اگر
مقدار ورودی شیء نباشد، به شیء تبدیل میشود.
روش freeze() رفتار Object.freeze() «کتابخانه استاندارد» را ارائه میدهد. شیء منجمدشده دیگر قابلتغییر نیست؛ منجمد کردن شیء مانع از اضافه شدن خصوصیات جدید به آن،
برداشته شدن خصوصیات موجود، و تغییر مقادیر خصوصیات موجود میشود. freeze() همان شیء را که ارسال شده است برمیگرداند. با آرگومان اولیه یا تهی طوری رفتار میشود که گویی شیء ثابتی است و برگردانده خواهد شد.
روش delete() رفتار عملگر حذف «کتابخانه استاندارد» را ارائه میدهد. کلید دادهشده را از شیء برمیدارد، مگراینکه شیء ثابت شده باشد.
مانند عملگر حذف Standard Library، اگر مقدار ورودی اول (objectInput) شیئی باشد که ثابت نشده است، حتی اگر مقدار ورودی دوم (keyToDelete) کلیدی را مشخص کند که وجود ندارد، true را برمیگرداند. در همه موارد دیگر، false را برمیگرداند. بااینحال، این عملگر با عملگر حذف Standard Library
به روشهای زیر متفاوت است:
keyToDeleteنمیتواند رشتهای با جداکننده نقطه باشد که کلید تودرتو را مشخص میکند.- از
delete()نمیتوان برای برداشتن عناصر از آرایه استفاده کرد. - از
delete()نمیتوان برای برداشتن هیچیک از ویژگیها از دامنه جهانی استفاده کرد.
نحو
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
پارامترها
Object.keys
| پارامتر | نوع | شرح |
|---|---|---|
| objectInput | any | شیئی که کلیدهای آن باید شمارش شود. اگر ورودی شیء نباشد، به شیء تبدیل خواهد شد. |
Object.values
| پارامتر | نوع | شرح |
|---|---|---|
| objectInput | any | شیئی که مقادیر آن باید شمارش شود. اگر ورودی شیء نباشد، به شیء تبدیل خواهد شد. |
Object.entries
| پارامتر | نوع | شرح |
|---|---|---|
| objectInput | any | شیئی که جفتهای کلید/مقدار آن باید شمارش شود. اگر ورودی شیء نباشد، به شیء تبدیل میشود. |
Object.freeze
| پارامتر | نوع | شرح |
|---|---|---|
| objectInput | any | شیء موردنظر برای ثابت کردن. اگر ورودی شیء نباشد، بهعنوان شیء ثابت درنظر گرفته میشود. |
Object.delete
| پارامتر | نوع | شرح |
|---|---|---|
| objectInput | any | شیئی که کلید آن حذف میشود. |
| 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.
این میانای برنامهسازی کاربردی برای هر نشانی وب ناقصی undefined را برمیگرداند. برای نشانیهای وب با قالببندی صحیح، فیلدهایی که در رشته نشانی وب وجود ندارند، مقدار رشته خالی خواهند داشت، یا در مورد 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 |
any | آرگومانهای تابع براساس اجازهای که درخواست میشود متفاوت است. آرگومانهای تابع را در زیر ببینید. |
متغیرهای مستقل تابع
sendPixel، injectScript، injectHiddenIframe: پارامتر دوم باید رشته نشانی وب باشد.
writeGlobals، readGlobals: پارامتر دوم باید کلیدی باشد که
نوشته یا خوانده میشود.
readUrl: برای پُرسمان اینکه آیا کل نشانی وب قابلخواندن است یا نه، به متغیرهای مستقل دیگری نیاز نیست. برای پرسمان اینکه آیا مؤلفه دادهشده قابلخواندن است یا نه،
نام مؤلفه را بهعنوان آرگومان دوم ارسال کنید:
if (queryPermission('readUrl','port')) {
// read the port
}
برای بررسی اینکه آیا کلید پُرسمان خاصی قابلخواندن است یا نه، کلید پُرسمان را بهعنوان پارامتر سوم ارسال کنید:
if (queryPermission('readUrl','query','key')) {
getUrlComponent(...);
}
اجازههای مرتبط
هیچکدام.
readAnalyticsStorage
دادههای ذخیرهشده برای تجزیهوتحلیل را بازیابی میکند و شیئی با client_id
و sessions برمیگرداند.
-
client_id: رشتهای که شناسه مشتری مورداستفاده برای تجزیهوتحلیل را نشان میدهد. sessions: آرایهای از اشیای حاوی اطلاعات درباره جلسههای فعلی. هر شیء شامل موارد زیر است:-
measurement_id: رشتهای که شناسه سنجش مقصد Analytics را نشان میدهد. -
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 به نقطه پایانی نشانی وب مشخصشده ارسال میکند.
نحو
sendPixel(url, onSuccess, onFailure)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
url |
رشته | محل ارسال پیکسل. |
onSuccess |
تابع | وقتی پیکسل باموفقیت بار میشود، فراخوانی میشود. توجه: حتی اگر درخواست باموفقیت ارسال شود، ممکن است مرورگرها برای اجرای onSuccess به پاسخ تصویری معتبری نیاز داشته باشند. |
onFailure |
تابع | وقتی پیکسل بار نشود، فراخوانی میشود. توجه: حتی اگر درخواست باموفقیت ارسال شود، اگر سرور پاسخ تصویری معتبری برنگرداند، ممکن است onFailure اجرا شود. |
اجازههای مرتبط
setCookie
کوکی را با نام، مقدار، و گزینههای مشخصشده تنظیم یا حذف میکند.
نحو
setCookie(name, value[, options, encode])
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
name |
رشته | نام کوکی. |
value |
رشته | مقدار کوکی. |
options |
شیء | مشخصههای دامنه، مسیر، انقضا، حداکثر سن، ایمن، و SameSite را مشخص میکند. (گزینهها را در زیر ببینید.) |
encode |
boolean | کنترل میکند که آیا مقدار کوکی باید با
encodeURIComponent()
جاوا اسکریپت کدبندی شود یا نه.
پیشفرضها به true. |
- دامنه: توسط ویژگی
options['domain']تنظیم میشود، درصورت وجود. این مقدار را روی'auto'تنظیم کنید تا کوکی بااستفاده از گستردهترین دامنه ممکن، براساس مکان سند، نوشته شود. اگر این کار ناموفق باشد، بهطور متوالی زیردامنههای محدودتر را امتحان میکند. اگر همه اینها ناموفق باشد، سعی میکند کوکی را بدون دامنه بنویسد. اگر مقداری تنظیم نشده باشد، این مورد سعی میکند کوکی را بدون دامنه مشخصشده بنویسد. توجه: وقتی کوکی بدون دامنه مشخصشدهای درdocument.cookieنوشته میشود، نماینده کاربر دامنه کوکی را بهطور پیشفرض روی میزبان مکان سند فعلی تنظیم میکند. - مسیر: تنظیمشده توسط
options['path']، درصورت وجود. وقتی کوکی بدون مسیر مشخصی درdocument.cookieنوشته میشود، نماینده کاربر بهطور پیشفرض مسیر کوکی را روی مسیر مکان سند فعلی تنظیم میکند. - Max-Age: که توسط
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 |
رشته | مقدار هر نوع رضایت را میتوان روی `'granted'` (اعطاشده) یا `'denied'` (ردشده) تنظیم کرد. هر مقداری غیراز `'granted'` (اعطاشده) بهعنوان `'denied'` (ردشده) درنظر گرفته میشود. تنظیم مقدار روی `undefined` (تعریفنشده) هیچ تأثیری بر مقدار قبلی آن نخواهد داشت. |
region |
آرایه | آرایه اختیاری از کدهای منطقه که مشخص میکند تنظیمات رضایت در کدام منطقه اعمال میشود. کدهای منطقه بااستفاده از کشور و/یا بخشهای فرعی در قالب ISO 3166-2 بیان میشوند. |
wait_for_update |
number | مقدار میلیثانیهای را برای کنترل مدت زمان انتظار قبلاز ارسال دادهها مشخص میکند. با ابزارهای رضایت که بهصورت ناهمگام بار میشوند استفاده میشود. |
اجازههای مرتبط
اجازه access_consent با دسترسی نوشتن برای همه انواع رضایت در شیء
consentSettings.
setInWindow
مقدار ارائهشده را در window در کلید ارائهشده تنظیم میکند. بهطور پیشفرض، اگر مقداری ازقبل وجود داشته باشد، این روش مقدار را در window تنظیم نمیکند. overrideExisting را روی true تنظیم کنید تا مقدار در window بدون توجه به وجود مقدار فعلی تنظیم شود. یک بولی برمیگرداند: true اگر مقدار با موفقیت تنظیم شده باشد، و در غیر این صورت false.
نحو
setInWindow(key, value, overrideExisting)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
key |
رشته | کلید در window برای قرار دادن مقدار در آن. |
value |
* | مقداری که باید در window تنظیم شود. |
overrideExisting |
boolean | پرچمی که نشان میدهد مقدار باید در 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 API به شما امکان میدهد رشتهای را به نمایش 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 |
رشته | مقدار هر نوع رضایت را میتوان روی «اعطاشده» یا «ردشده» تنظیم کرد. هر مقداری غیراز «granted» (اعطاشده) بهعنوان «denied» (ردشده) درنظر گرفته میشود. تنظیم مقدار روی «undefined» هیچ تأثیری بر مقدار قبلی آن نخواهد داشت. |
اجازههای مرتبط
اجازه access_consent با دسترسی نوشتن برای همه انواع رضایت در شیء
consentSettings.
میاناهای برنامهسازی کاربردی آزمایشی
این میاناهای برنامهسازی کاربردی با آزمایشهای جاوا اسکریپت جعبه امن کار میکنند تا آزمایشهایی برای الگوهای سفارشی در Google Tag Manager بسازند. این میاناهای برنامهسازی کاربردی آزمایشی به عبارت require() نیاز ندارند. درباره آزمایشهای الگو سفارشی بیشتر بدانید.
assertApi
یک شیء تطبیقدهنده برمیگرداند که میتواند برای ایجاد ادعاهای روان درباره میانای برنامهسازی کاربردی دادهشده استفاده شود.
نحو
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 API از کتابخانه [Truth] Google الگوبرداری شده است. این متد شیئی را برمیگرداند که میتوان از آن برای ایجاد ادعاهای روان درباره مقدار موضوع استفاده کرد. شکست در اثبات بلافاصله آزمایش را متوقف میکند و آن را بهعنوان ناموفق علامتگذاری میکند. بااینحال،
شکست در یک آزمایش بر چارچوبهای تست دیگر تأثیر نخواهد گذاشت.
نحو
assertThat(actual, opt_message)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
actual |
any | مقداری که باید در بررسیهای روان استفاده شود. |
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
mock API به شما امکان میدهد رفتار Sandboxed APIs را لغو کنید. استفاده از API ساختگی در کد الگو ایمن است، اما فقط در حالت آزمایشی کار میکند.
قبلاز اجرای هر آزمایش، شبیهسازیها بازنشانی میشوند.
نحو
mock(apiName, returnValue);
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
apiName |
رشته | نام API برای شبیهسازی؛ همان رشتهای که به
require() ارسال شده است |
returnValue |
any | مقداری که برای API یا تابع فراخوانیشده بهجای API برگردانده میشود. اگر returnValue تابع باشد، آن تابع بهجای Sandboxed API فراخوانی میشود؛ اگر returnValue هر چیزی بهجز تابع باشد، آن مقدار بهجای Sandboxed API برگردانده میشود. |
نمونهها
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
mockObject API به شما امکان میدهد رفتار Sandboxed API را که
شیء برمیگرداند لغو کنید. استفاده از این میانای برنامهسازی کاربردی در کد الگو ایمن است، اما فقط در حالت آزمایشی قابلاستفاده است. قبلاز اجرای هر آزمایش، شبیهسازیها بازنشانی میشوند.
نحو
mockObject(apiName, objectMock);
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
apiName |
رشته | نام API برای شبیهسازی؛ همان رشتهای که به
require() ارسال شده است |
objectMock |
شیء | مقداری که برای API یا تابع فراخوانیشده بهجای API برگردانده میشود. باید شیء باشد. |
نمونهها
const storage = {};
mockObject('localStorage', {
setItem: (key, value) => {storage[key] = value;},
getItem: (key) => storage[key],
});
runCode
کد الگو، یعنی محتوای برگه کد، را در محیط آزمایشی فعلی با شیء داده ورودی مشخص اجرا میکند.
نحو
runCode(data)
پارامترها
| پارامتر | نوع | شرح |
|---|---|---|
data |
شیء | مورد دادهای که باید در آزمایش استفاده شود. |
برگرداندن مقدار
مقدار متغیر را برای الگوهای متغیر برمیگرداند؛ برای همه انواع الگوهای دیگر، undefined را برمیگرداند.
نمونه
runCode({field1: 123, field2: 'value'});