কাস্টম টেমপ্লেট API

Core API

এই API, Google Tag Manager-এ কাস্টম টেমপ্লেট তৈরি করতে স্যান্ডবক্স করা JavaScript-এর সাথে কাজ করে। প্রতিটি 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 বুলিয়ান একটি বুলিয়ান যা সত্য যদি নির্দিষ্ট সম্মতি প্রকারটি মঞ্জুর করা হয়।

সংশ্লিষ্ট অনুমতি

সম্মতির ধরনের জন্য রিড অ্যাক্সেস সহ access_consent অনুমতি।


addEventCallback

addEventCallback API আপনাকে একটি কলব্যাক ফাংশন রেজিস্টার করার অনুমতি দেয় যা একটি ইভেন্টের শেষে চালু করা হবে। ইভেন্টের জন্য সব ট্যাগ এক্সিকিউট করা হলে অথবা পৃষ্ঠায় ইভেন্ট টাইমআউট হলে কলব্যাক ইনভোক করা হবে। কলব্যাক দুটি মান পাস করে, ফাংশনটি আহ্বান করে এমন কন্টেনারের আইডি এবং ইভেন্ট সম্পর্কে তথ্য ধারণ করে এমন একটি অবজেক্ট।

সিনট্যাক্স

addEventCallback(callback)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
callback ফাংশন ইভেন্টের শেষে যে ফাংশনটি চালু করতে হবে।

eventData অবজেক্টে নিম্নলিখিত ডেটা থাকে:

'কী'-এর নাম ধরন বিবরণ
tags Array ট্যাগ ডেটা অবজেক্টের একটি অ্যারে। ইভেন্ট চলাকালীন ফায়ার করা প্রতিটি ট্যাগের এই অ্যারেতে একটি এন্ট্রি থাকবে। ট্যাগ ডেটা অবজেক্টে ট্যাগের আইডি (id), এটির এক্সিকিউশন স্ট্যাটাস (status) এবং এটির এক্সিকিউশন টাইম (executionTime) থাকে। ট্যাগ ডেটাতে ট্যাগে কনফিগার করা অতিরিক্ত ট্যাগ মেটাডেটাও অন্তর্ভুক্ত থাকবে।

উদাহরণ

addEventCallback(function(ctid, eventData) {
  logToConsole('Tag count for container ' + ctid + ': ' + eventData['tags'].length);
});

সংশ্লিষ্ট অনুমতি

read_event_metadata


aliasInWindow

aliasInWindow API আপনাকে একটি উপনাম (যেমন, window.foo = window.bar) তৈরি করতে দেয়, যা উপনামকরণ প্রয়োজন এমন নির্দিষ্ট ট্যাগগুলিকে সমর্থন করতে সহায়তা করে। fromPath-এ পাওয়া window অবজেক্টের ভ্যালু, toPath-এ window অবজেক্টের কীতে অ্যাসাইন করে। সফল হলে true রিটার্ন করে, অন্যথায় false।

সিনট্যাক্স

aliasInWindow(toPath, fromPath)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
toPath স্ট্রিং window অবজেক্টে ডট দিয়ে আলাদা করা পাথ যেখানে ভ্যালু কপি করতে হবে। পাথের শেষ কম্পোনেন্ট পর্যন্ত সব কম্পোনেন্ট window অবজেক্টে আগে থেকেই থাকতে হবে।
fromPath স্ট্রিং কপি করার জন্য ভ্যালুতে window-এর মধ্যে ডট দিয়ে আলাদা করা পাথ। ভ্যালু না থাকলে, অপারেশনটি সম্পূর্ণ হবে না।

উদাহরণ

aliasInWindow('foo.bar', 'baz.qux')

সংশ্লিষ্ট অনুমতি

toPath এবং fromPath, দুটির জন্যই access_globals প্রয়োজন; toPath-এর জন্য লেখার অ্যাক্সেস এবং fromPath-এর জন্য পড়ার অ্যাক্সেস প্রয়োজন।


callInWindow

আপনাকে নীতি-নিয়ন্ত্রিত উপায়ে window অবজেক্টের বাইরে কোনও পাথ থেকে ফাংশন কল করার অনুমতি দেয়। প্রদত্ত আর্গুমেন্ট সহ window-এ প্রদত্ত পাথে ফাংশন কল করে এবং ভ্যালু রিটার্ন করে। রিটার্ন টাইপ সরাসরি স্যান্ডবক্স করা জাভাস্ক্রিপ্টে কাজ করে এমন টাইপে ম্যাপ করা না গেলে, undefined রিটার্ন করা হবে। স্যান্ডবক্সড জাভাস্ক্রিপ্টে আট ধরনের ডেটা কাজ করে, সেগুলি হল null, undefined, boolean, number, string, Array, Object এবং function। প্রদত্ত পাথটি না থাকলে বা কোনও ফাংশনকে রেফারেন্স না করলে, undefined ফেরত দেওয়া হবে।

সিনট্যাক্স

callInWindow(pathToFunction, argument [, argument2,... argumentN])

প্যারামিটার

প্যারামিটার ধরন বিবরণ
pathToFunction স্ট্রিং window-এ ফাংশনে কল করার জন্য ডট দিয়ে আলাদা করা পাথ।
args * ফাংশনে পাস করার জন্য আর্গুমেন্ট।

সংশ্লিষ্ট অনুমতি

execute-এর অনুমতি সহ access_globals চালু করা হয়েছে।


callLater

অ্যাসিঙ্ক্রোনাসভাবে ঘটার জন্য কোনও ফাংশনে কল শিডিউল করে। বর্তমান কোড রিটার্ন করার পরে ফাংশনটি কল করা হবে। এটি setTimeout(<function>, 0)-এর সমতুল্য।

সিনট্যাক্স

callLater(function)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
function ফাংশন কল করার ফাংশন।

copyFromDataLayer

ডেটা লেয়ারে প্রদত্ত কীতে বর্তমানে অ্যাসাইন করা মান দেখায়: প্রদত্ত কীতে পাওয়া মান যদি এটি একটি প্রিমিটিভ টাইপ, ফাংশন বা অবজেক্ট লিটারাল হয়, অথবা অন্যথায় undefined।

সিনট্যাক্স

copyFromDataLayer(key[, dataLayerVersion])

প্যারামিটার

প্যারামিটার ধরন বিবরণ
key স্ট্রিং "a.b.c" ফর্ম্যাটে কী।
dataLayerVersion number ঐচ্ছিক ডেটা লেয়ার ভার্সন। ডিফল্ট ভ্যালু হল ২। ১ ভ্যালু ব্যবহার করার জন্য উৎসাহিত করা হয় না।

সংশ্লিষ্ট অনুমতি

read_data_layer


copyFromWindow

window অবজেক্ট থেকে ভেরিয়েবল কপি করে। window-এর ভ্যালু সরাসরি স্যান্ডবক্স করা জাভাস্ক্রিপ্টে কাজ করে এমন কোনও ধরনের সাথে ম্যাপ করা না গেলে, undefined ফেরত দেওয়া হবে। স্যান্ডবক্স করা JavaScript-এ আট ধরনের ডেটা কাজ করে, সেগুলি হল null, undefined, boolean, number, string, Array, Object এবং function। ফেচ করা (এবং জোরপূর্বক) মান দেখায়।

সিনট্যাক্স

copyFromWindow(key)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
key স্ট্রিং window-এর মধ্যে থাকা সেই কী যেটির ভ্যালু কপি করতে চান।

সংশ্লিষ্ট অনুমতি

access_globals


createArgumentsQueue

ট্যাগ সলিউশনের জন্য প্রয়োজনীয় আর্গুমেন্ট অবজেক্ট দিয়ে একটি সারি তৈরি করে।

fnKey আর্গুমেন্ট ব্যবহার করে গ্লোবাল স্কোপে (যেমন window) একটি ফাংশন তৈরি করে (createQueue-এর মতো একই সিম্যান্টিক্স)। ফাংশনটি তৈরি হওয়ার পরে, এই API তারপর arrayKey আর্গুমেন্ট ব্যবহার করে window-এ একটি অ্যারে তৈরি করে (যদি এটি আগে থেকে না থাকে)।

fnKey-এর অধীনে তৈরি করা ফাংশন কল করা হলে, এটি arrayKey-এর অধীনে তৈরি করা অ্যারেতে এর আর্গুমেন্ট অবজেক্ট পুশ করে। API-এর রিটার্ন ভ্যালু হল fnKey-এর অধীনে তৈরি করা ফাংশন।

এই ফাংশনের জন্য access_globals অনুমতিতে fnKey এবং arrayKey-এর জন্য রিড ও রাইট সেটিং প্রয়োজন।

উদাহরণ:

const gtag = createArgumentsQueue('gtag', 'dataLayer');
gtag('set', {'currency': 'USD'});

সিনট্যাক্স

createArgumentsQueue(fnKey, arrayKey)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
fnKey স্ট্রিং window-এ যে পাথে ফাংশন সেট করা আছে, যদি সেটি আগে থেকে না থাকে। এই আর্গুমেন্ট স্ট্যান্ডার্ড ডট নোটেশন সাপোর্ট করে। কী-এর পাথ না থাকলে, একটি ব্যতিক্রম থ্রো করা হয়। অর্থাৎ, fnKey যদি 'one.two' হয়, তাহলে এটি একটি ব্যতিক্রম থ্রো করবে।
arrayKey স্ট্রিং window-এ পাথ যেখানে অ্যারে সেট করা আছে, যদি এটি আগে থেকে না থাকে। এই আর্গুমেন্ট স্ট্যান্ডার্ড ডট নোটেশন সমর্থন করে। কী-এর পাথ না থাকলে, একটি ব্যতিক্রম থ্রো করা হয়। অর্থাৎ, arrayKey যদি 'one.two' হয় এবং 'one' নামের কোনও গ্লোবাল অবজেক্ট না থাকে, তাহলে এটি একটি ব্যতিক্রম থ্রো করবে।

সংশ্লিষ্ট অনুমতি

access_globals


createQueue

window-এ একটি অ্যারে তৈরি করে (যদি এটি আগে থেকে না থাকে) এবং একটি ফাংশন রিটার্ন করে যা সেই অ্যারেতে ভ্যালু পুশ করবে।

এই ফাংশনের জন্য access_globals অনুমতিতে arrayKey-এর রিড ও রাইট সেটিং প্রয়োজন।

উদাহরণ:

const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});

সিনট্যাক্স

createQueue(arrayKey)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
arrayKey স্ট্রিং window-এ 'কী' যেখানে অ্যারে সেট করা আছে, যদি এটি আগে থেকে না থাকে। এই আর্গুমেন্ট স্ট্যান্ডার্ড ডট নোটেশন সমর্থন করে। কী-এর পাথ না থাকলে, একটি ব্যতিক্রম থ্রো করা হয়। যেমন, arrayKey যদি 'one.two' হয় এবং 'one' নামের কোনও গ্লোবাল অবজেক্ট না থাকে, তাহলে এটি ব্যতিক্রম দেখাবে।

সংশ্লিষ্ট অনুমতি

access_globals


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 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();

সংশ্লিষ্ট অনুমতি

read_container_data


getCookieValues

প্রদত্ত নাম সহ সব কুকির ভ্যালু দেখায়।

সিনট্যাক্স

getCookieValues(name[, decode])

প্যারামিটার

প্যারামিটার ধরন বিবরণ
name স্ট্রিং কুকির নাম।
decode বুলিয়ান কুকির ভ্যালু জাভাস্ক্রিপ্টের decodeURIComponent()-এর সাহায্যে ডিকোড করা হবে কিনা তা নিয়ন্ত্রণ করে। ডিফল্ট হিসেবে true সেট করা থাকে।

সংশ্লিষ্ট অনুমতি

get_cookies


getQueryParameters

বর্তমান URL-এর queryKey-এর জন্য প্রথম বা সব প্যারামিটার ফেরত পাঠায়। queryKey থেকে প্রথম ভ্যালু বা queryKey থেকে ভ্যালুর অ্যারে ফেরত দেয়।

সিনট্যাক্স

getQueryParameters(queryKey[, retrieveAll])

প্যারামিটার

প্যারামিটার ধরন বিবরণ
queryKey স্ট্রিং কোয়েরি প্যারামিটার থেকে পড়ার জন্য 'কী'।
retrieveAll বুলিয়ান সব ভ্যালু ফিরিয়ে আনা হবে কিনা।

যেমন, বর্তমান URL যদি 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-এর মতোই কাজ করে, তবে এটি বর্তমান URL-এর পরিবর্তে রেফারারের উপর কাজ করে। প্রদত্ত রেফারারের queryKey-এর জন্য প্রথম বা সব প্যারামিটার রিটার্ন করে। queryKey থেকে প্রথম ভ্যালু বা queryKey থেকে ভ্যালুর অ্যারে দেখায়।

সিনট্যাক্স

getReferrerQueryParameters(queryKey[, retrieveAll])

প্যারামিটার

প্যারামিটার ধরন বিবরণ
queryKey স্ট্রিং কোয়েরি প্যারামিটার থেকে পড়ার জন্য 'কী'।
retrieveAll বুলিয়ান সব ভ্যালু ফিরিয়ে আনা হবে কিনা।

যেমন, রেফারার URL যদি 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()-এর মাধ্যমে ফেরত পাঠানো, Unix epoch থেকে মিলিসেকেন্ডে বর্তমান সময়কে দেখায় এমন একটি সংখ্যা ফেরত পাঠায়।

সিনট্যাক্স

getTimestamp();

সংশ্লিষ্ট অনুমতি

কোনওটিই নয়।


getTimestampMillis

Date.now()-এর মাধ্যমে ফেরত পাঠানো, Unix epoch থেকে মিলিসেকেন্ডে বর্তমান সময়কে দেখায় এমন একটি সংখ্যা ফেরত পাঠায়।

সিনট্যাক্স

getTimestampMillis();

সংশ্লিষ্ট অনুমতি

কোনওটিই নয়।


getType

প্রদত্ত মানের ধরন বর্ণনা করে এমন একটি স্ট্রিং প্রদান করে। typeof-এর মতো নয়, getType, array ও object-এর মধ্যে পার্থক্য করে।

সিনট্যাক্স

getType(data.someField)

Notes

নিম্নলিখিত সারণীতে প্রতিটি ইনপুট ভ্যালুর জন্য রিটার্ন করা স্ট্রিংয়ের তালিকা দেওয়া হয়েছে।

ইনপুট ভ্যালু ফলাফল
undefined 'অনির্দিষ্ট'
null '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 ভ্যালু ফেরত দেওয়া হবে।

সংশ্লিষ্ট অনুমতি

get_url


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-এ ইনপুট যদি একটি সাধারণ অবজেক্ট হয়, তাহলে API সেই অবজেক্টের মধ্যে থাকা সমস্ত ফ্ল্যাটেন করা কী-এর জন্য রাইট পার্মিশন চেক করবে, যেমন gtagSet({foo: {bar: 'baz'}})-এর জন্য, API foo.bar-এর জন্য রাইট পার্মিশন চেক করবে।

gtagSet-এ ইনপুট যদি কোনও কী এবং কিছু নন-প্লেন অবজেক্ট ভ্যালু হয়, তাহলে API সেই কী-তে রাইট পার্মিশন আছে কিনা তা চেক করবে, যেমন gtagSet('abc', true) -এর জন্য, API 'abc'-এ রাইট পার্মিশন আছে কিনা তা চেক করবে।

মনে রাখবেন যে ইনপুট অবজেক্টে কোনও সাইকেল থাকলে, একই অবজেক্টে পৌঁছানোর আগে শুধুমাত্র কী চেক করা হবে।


injectHiddenIframe

পৃষ্ঠায় একটি অদৃশ্য iframe যোগ করে।

কলব্যাক ফাংশন ইনস্ট্যান্স হিসেবে দেওয়া হয় এবং জাভাস্ক্রিপ্ট ফাংশনে র‍্যাপ করা হয় যা তাদের মাধ্যমে কল করে।

সিনট্যাক্স

injectHiddenIframe(url, onSuccess)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
url স্ট্রিং iframe-এর src অ্যাট্রিবিউটের ভ্যালু হিসেবে ব্যবহার করার জন্য URL।
onSuccess ফাংশন ফ্রেম সফলভাবে লোড হলে কল করা হয়।

সংশ্লিষ্ট অনুমতি

inject_hidden_iframe


injectScript

প্রদত্ত URL অ্যাসিঙ্ক্রোনাসভাবে লোড করার জন্য পৃষ্ঠায় স্ক্রিপ্ট ট্যাগ যোগ করে। কলব্যাকগুলি ফাংশন ইনস্ট্যান্স হিসাবে দেওয়া হয় এবং জাভাস্ক্রিপ্ট ফাংশনে মোড়ানো হয় যা তাদের মাধ্যমে কল করে।

সিনট্যাক্স

injectScript(url, onSuccess, onFailure[, cacheToken])

প্যারামিটার

প্যারামিটার ধরন বিবরণ
url স্ট্রিং ইনজেক্ট করার জন্য স্ক্রিপ্টের ঠিকানা।
onSuccess ফাংশন স্ক্রিপ্ট সফলভাবে লোড হলে কল করা হয়।
onFailure ফাংশন স্ক্রিপ্ট লোড না হলে কল করা হয়।
cacheToken স্ট্রিং প্রদত্ত URL ক্যাশে করা উচিত কিনা তা নির্দেশ করতে ঐচ্ছিক স্ট্রিং ব্যবহার করা হয়। এই ভ্যালু নির্দিষ্ট করা থাকলে, JavaScript-এর জন্য অনুরোধ করতে শুধুমাত্র একটি স্ক্রিপ্ট এলিমেন্ট তৈরি করা হবে। লোড করার জন্য অতিরিক্ত কোনও চেষ্টা করা হলে, স্ক্রিপ্ট লোড না হওয়া পর্যন্ত প্রদত্ত onSuccess এবং onFailure পদ্ধতিগুলি সারিবদ্ধ করা হবে।

সংশ্লিষ্ট অনুমতি

inject_script


isConsentGranted

নির্দিষ্ট করা সম্মতির ধরন মঞ্জুর করা হলে, ট্রু রিটার্ন করে।

কোনও নির্দিষ্ট ধরনের সম্মতির ক্ষেত্রে সম্মতি দেওয়া হয়েছে বলে তখনই বিবেচনা করা হয় যখন সম্মতির ধরন 'অনুমতি দেওয়া হয়েছে' হিসেবে সেট করা থাকে অথবা একেবারেই সেট করা থাকে না। সম্মতির ধরন অন্য কোনও ভ্যালুতে সেট করা হলে, সেটি অনুমোদিত নয় বলে বিবেচনা করা হবে।

ট্যাগ সেটিংসের জন্য ট্যাগ ম্যানেজার ইউজার ইন্টারফেস সবসময় ফায়ার করার বিকল্প অফার করবে। 'সবসময় ফায়ার' বিকল্প চালু করা আছে এমন কোনও ট্যাগ যদি এই API ব্যবহার করে, তাহলে সম্মতি দেওয়া হয়েছে বলে ধরে নেওয়া হয় এবং সম্মতির আসল স্ট্যাটাস যাই হোক না কেন, 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 যেকোনও যে ভ্যালু কনভার্ট করতে হবে। ভ্যালু স্ট্রিং না হলে, ইনপুট স্ট্রিংয়ে পরিবর্তন করা হবে।

JSON.stringify

প্যারামিটার ধরন বিবরণ
মান যেকোনও যে ভ্যালু কনভার্ট করতে হবে।

উদাহরণ

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);

সংশ্লিষ্ট অনুমতি

access_local_storage

উদাহরণ

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] যেকোনও আর্গুমেন্ট

সংশ্লিষ্ট অনুমতি

logging


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 পদ্ধতি প্রদান করে।

keys() পদ্ধতি স্ট্যান্ডার্ড লাইব্রেরি Object.keys() আচরণ প্রদান করে। এটি প্রদত্ত অবজেক্টের নিজস্ব গণনাযোগ্য প্রপার্টির নামের একটি অ্যারে প্রদান করে একই ক্রমে যা একটি for...in... লুপ করবে। ইনপুট ভ্যালু অবজেক্ট না হলে, এটি অবজেক্টে পরিবর্তন করা হবে।

values() পদ্ধতি স্ট্যান্ডার্ড লাইব্রেরি Object.values() আচরণ প্রদান করে। এটি প্রদত্ত অবজেক্টের নিজস্ব গণনাযোগ্য প্রপার্টি ভ্যালুর একটি অ্যারে প্রদান করে একই ক্রমে যা একটি for...in... লুপ করবে। ইনপুট ভ্যালু অবজেক্ট না হলে, সেটিকে অবজেক্টে পরিবর্তন করা হবে।

entries() পদ্ধতি স্ট্যান্ডার্ড লাইব্রেরি Object.entries() আচরণ প্রদান করে। এটি প্রদত্ত অবজেক্টের নিজস্ব গণনাযোগ্য প্রপার্টি [key, value] জোড়ার একটি অ্যারে প্রদান করে, যা for...in... লুপের মতো একই ক্রমে থাকে। ইনপুট ভ্যালু অবজেক্ট না হলে, এটিকে অবজেক্টে পরিবর্তন করা হবে।

freeze() পদ্ধতি স্ট্যান্ডার্ড লাইব্রেরি Object.freeze() আচরণ প্রদান করে। কোনও অবজেক্ট ফ্রোজেন করা হলে, সেটি আর পরিবর্তন করা যায় না; কোনও অবজেক্ট ফ্রোজেন করা হলে, তাতে নতুন প্রপার্টি যোগ করা, আগে থেকে থাকা প্রপার্টি সরিয়ে দেওয়া এবং আগে থেকে থাকা প্রপার্টির ভ্যালু পরিবর্তন করা যায় না। freeze() পাস করা একই অবজেক্ট ফেরত পাঠায়। একটি প্রিমিটিভ বা নাল আর্গুমেন্টকে ফ্রোজেন অবজেক্ট হিসেবে বিবেচনা করা হবে এবং ফেরত দেওয়া হবে।

delete() পদ্ধতি স্ট্যান্ডার্ড লাইব্রেরি ডিলিট অপারেটর আচরণ প্রদান করে। অবজেক্টটি ফ্রোজেন না হলে এটি অবজেক্ট থেকে প্রদত্ত কী সরিয়ে দেয়। স্ট্যান্ডার্ড লাইব্রেরি ডিলিট অপারেটরের মতো, এটি true রিটার্ন করে যদি প্রথম ইনপুট ভ্যালু (objectInput) এমন একটি অবজেক্ট হয় যা ফ্রোজেন নয়, এমনকি দ্বিতীয় ইনপুট ভ্যালু (keyToDelete) এমন একটি কী নির্দিষ্ট করে যা নেই। অন্য সব ক্ষেত্রে এটি false রিটার্ন করে। তবে, এটি স্ট্যান্ডার্ড লাইব্রেরি ডিলিট অপারেটর থেকে নিম্নলিখিত উপায়ে আলাদা:

  • keyToDelete ডট-ডিলিমিটেড স্ট্রিং হতে পারবে না যা নেস্টেড কী নির্দিষ্ট করে।
  • অ্যারে থেকে এলিমেন্ট সরানোর জন্য delete() ব্যবহার করা যাবে না।
  • গ্লোবাল স্কোপ থেকে কোনও প্রপার্টি সরানোর জন্য delete() ব্যবহার করা যাবে না।

সিনট্যাক্স

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

প্যারামিটার

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 স্ট্রিং সম্পূর্ণ 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: বর্তমান সেশন সম্পর্কে তথ্য সহ অবজেক্টের অ্যারে। প্রতিটি অবজেক্টে এগুলি অন্তর্ভুক্ত থাকে:
    • 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 সহ কুকি পড়ার বিকল্প।

সংশ্লিষ্ট অনুমতি

read_analytics_storage

উদাহরণ

const readAnalyticsStorage = require('readAnalyticsStorage');

const analyticsStorageData = readAnalyticsStorage();

sendOfflineEvent(analyticsStorageData.client_id, "tutorial_begin");

readCharacterSet

document.characterSet-এর ভ্যালু দেখায়।

সিনট্যাক্স

readCharacterSet()

প্যারামিটার

কোনওটিই নয়।

সংশ্লিষ্ট অনুমতি

read_character_set


readTitle

document.title-এর ভ্যালু দেখায়।

সিনট্যাক্স

readTitle()

প্যারামিটার

কোনওটিই নয়।

সংশ্লিষ্ট অনুমতি

read_title


require

নাম অনুযায়ী বিল্ট-ইন ফাংশন ইমপোর্ট করে। একটি ফাংশন বা একটি অবজেক্ট রিটার্ন করে যা আপনার প্রোগ্রাম থেকে কল করা যেতে পারে। ব্রাউজারে বিল্ট-ইন ফাংশন কাজ না করলে undefined রিটার্ন করে।

সিনট্যাক্স

require(name)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
name স্ট্রিং ইমপোর্ট করার জন্য ফাংশনের নাম।

উদাহরণ

const getUrl = require('getUrl');
const url = getUrl();

সংশ্লিষ্ট অনুমতি

কোনওটিই নয়।


sendPixel

নির্দিষ্ট URL এন্ডপয়েন্টে GET অনুরোধ করে।

সিনট্যাক্স

sendPixel(url, onSuccess, onFailure)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
url স্ট্রিং পিক্সেল কোথায় পাঠাতে হবে।
onSuccess ফাংশন পিক্সেল লোড হয়ে গেলে কল করা হয়। মনে রাখবেন: অনুরোধটি সফলভাবে পাঠানো হলেও, onSuccess চালানোর জন্য ব্রাউজারের একটি সঠিক ইমেজ রেসপন্সের প্রয়োজন হতে পারে।
onFailure ফাংশন পিক্সেল লোড না হলে কল করা হয়। মনে রাখবেন: অনুরোধটি সফলভাবে পাঠানো হলেও, সার্ভার যদি সঠিক ছবির উত্তর না পাঠায়, তাহলে onFailure রান করতে পারে।

সংশ্লিষ্ট অনুমতি

send_pixel


setCookie

নির্দিষ্ট নাম, মান ও বিকল্প সহ কুকি সেট করে বা মুছে দেয়।

সিনট্যাক্স

setCookie(name, value[, options, encode])

প্যারামিটার

প্যারামিটার ধরন বিবরণ
name স্ট্রিং কুকির নাম।
value স্ট্রিং কুকির ভ্যালু।
options অবজেক্ট ডোমেন, পাথ, মেয়াদ শেষ হওয়ার তারিখ, সর্বাধিক বয়স, সুরক্ষিত ও SameSite অ্যাট্রিবিউট নির্দিষ্ট করে। (নিচে বিকল্প দেখুন।)
encode বুলিয়ান কুকির ভ্যালু JavaScript-এর encodeURIComponent()-এর মাধ্যমে এনকোড করা হবে কিনা তা নিয়ন্ত্রণ করে। ডিফল্ট হিসেবে true সেট করা থাকে।

বিকল্প

  • ডোমেন: options['domain'] প্রপার্টি দ্বারা সেট করা হয়, যদি থাকে। ডকুমেন্টের লোকেশনের উপর ভিত্তি করে, সম্ভবত সবচেয়ে বড় ডোমেন ব্যবহার করে কুকি লেখার চেষ্টা করতে, এই ভ্যালু 'auto'-এ সেট করুন। এটি কাজ না করলে, এটি একের পর এক আরও ছোট সাবডোমেন চেষ্টা করবে। এগুলির কোনওটিই কাজ না করলে, এটি ডোমেন ছাড়াই কুকি লেখার চেষ্টা করবে। কোনও ভ্যালু সেট করা না থাকলে, এটি কোনও ডোমেন উল্লেখ না করেই কুকি লেখার চেষ্টা করবে। মনে রাখবেন: ডোমেন উল্লেখ না করে কোনও কুকি document.cookie-এ লেখা হলে, ইউজার এজেন্ট ডিফল্ট হিসেবে কুকির ডোমেনকে বর্তমান ডকুমেন্ট লোকেশনের হোস্ট হিসেবে সেট করবে।
  • পাথ: options['path']-এর দ্বারা সেট করা, যদি থাকে। কোনও পাথ উল্লেখ না করে document.cookie-এ কুকি লেখা হলে, ইউজার এজেন্ট ডিফল্ট হিসেবে কুকির পাথকে বর্তমান ডকুমেন্ট লোকেশনের পাথ হিসেবে সেট করবে।
  • Max-Age: options['max-age']-এর দ্বারা সেট করা, যদি থাকে।
  • options['expires']-এর দ্বারা সেট করা মেয়াদ শেষ হওয়ার তারিখ:, যদি থাকে। এটি থাকলে, অবশ্যই UTC-ফর্ম্যাট করা তারিখ স্ট্রিং হতে হবে। এই প্যারামিটারের জন্য Date-এর Date.toUTCString() ফর্ম্যাট করতে ব্যবহার করা যেতে পারে।
  • সুরক্ষিত: options['secure']-এর দ্বারা সেট করা, যদি থাকে।
  • SameSite: options['samesite']-এর দ্বারা সেট করা, যদি থাকে।

সংশ্লিষ্ট অনুমতি

set_cookies


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 স্ট্রিং প্রতিটি সম্মতি প্রকারের মান `'অনুমতি দেওয়া হয়েছে'` বা `'প্রত্যাখ্যান করা হয়েছে'` হিসেবে সেট করা যেতে পারে। `'অনুমতি দেওয়া হয়েছে'` ছাড়া অন্য যেকোনও মানকে `'প্রত্যাখ্যান করা হয়েছে'` হিসেবে বিবেচনা করা হবে। মানটি `undefined` হিসেবে সেট করলে এর আগের মানের উপর কোনও প্রভাব পড়বে না।
region Array অঞ্চল কোডের একটি ঐচ্ছিক অ্যারে যা নির্দিষ্ট করে যে কোন অঞ্চলে সম্মতি সেটিংস প্রযোজ্য। ISO 3166-2 ফর্ম্যাটে দেশ এবং/অথবা সাবডিভিশন ব্যবহার করে অঞ্চল কোড প্রকাশ করা হয়।
wait_for_update number ডেটা পাঠানোর আগে কতক্ষণ অপেক্ষা করতে হবে তা নিয়ন্ত্রণ করার জন্য মিলিসেকেন্ড ভ্যালু নির্দিষ্ট করে। অ্যাসিঙ্ক্রোনাসভাবে লোড হওয়া সম্মতি টুলের সাথে ব্যবহার করা হয়।

সংশ্লিষ্ট অনুমতি

consentSettings অবজেক্টে সব ধরনের সম্মতির জন্য রাইট অ্যাক্সেস সহ access_consent অনুমতি।


setInWindow

প্রদত্ত 'কী'-তে window-এর প্রদত্ত ভ্যালু সেট করে। সাধারণত, এই পদ্ধতি window-এ ভ্যালু সেট করবে না যদি আগে থেকেই কোনও ভ্যালু থাকে। window-এ ভ্যালু সেট করতে overrideExisting-কে true-এ সেট করুন, আগে থেকে কোনও ভ্যালু আছে কিনা তা এক্ষেত্রে বিবেচনা করা হয় না। একটি বুলিয়ান রিটার্ন করে: ভ্যালু সঠিকভাবে সেট করা হলে true, অন্যথায় false।

সিনট্যাক্স

setInWindow(key, value, overrideExisting)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
key স্ট্রিং window-এ 'কী' যেখানে ভ্যালু রাখতে হবে।
value * window-এ সেট করার ভ্যালু।
overrideExisting বুলিয়ান ফ্ল্যাগটি ইঙ্গিত করে যে ভ্যালু window-এ সেট করা উচিত, সেখানে কোনও ভ্যালু থাকুক বা না থাকুক।

সংশ্লিষ্ট অনুমতি

access_globals


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 ফাংশন options অবজেক্টে আলাদা আউটপুট এনকোডিং উল্লেখ করা না থাকলে, base64-এ এনকোড করা, ফলাফল ডাইজেস্ট সহ কল করা হয়।
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();

সংশ্লিষ্ট অনুমতি

access_template_storage

উদাহরণ

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 স্ট্রিং প্রতিটি সম্মতি প্রকারের জন্য মান 'অনুমতি দেওয়া হয়েছে' বা 'প্রত্যাখ্যান করা হয়েছে' হিসেবে সেট করা যেতে পারে। 'অনুমতি দেওয়া হয়েছে' ছাড়া অন্য যেকোনও ভ্যালুকে 'প্রত্যাখ্যান করা হয়েছে' হিসেবে বিবেচনা করা হবে। ভ্যালু 'undefined' হিসেবে সেট করলে, এর আগের ভ্যালুর উপর কোনও প্রভাব পড়বে না।

সংশ্লিষ্ট অনুমতি

consentSettings অবজেক্টে সব ধরনের সম্মতির জন্য রাইট অ্যাক্সেস সহ access_consent অনুমতি।


Test API

Google Tag Manager-এ কাস্টম টেমপ্লেটের জন্য টেস্ট তৈরি করতে, এই API স্যান্ডবক্স করা JavaScript টেস্টের সাথে কাজ করে। এইসব টেস্ট API-এর জন্য require() স্টেটমেন্টের প্রয়োজন নেই। কাস্টম টেমপ্লেট টেস্ট সম্পর্কে আরও জানুন।


assertApi

একটি ম্যাচিং অবজেক্ট রিটার্ন করে যা প্রদত্ত 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 API-কে Google-এর [Truth] লাইব্রেরির আদলে তৈরি করা হয়েছে। এটি এমন একটি অবজেক্ট রিটার্ন করে যা কোনও সাবজেক্টের ভ্যালু সম্পর্কে সাবলীলভাবে অ্যাসার্শন করতে ব্যবহার করা যেতে পারে। অ্যাসার্শন ব্যর্থ হলে পরীক্ষাটি অবিলম্বে বন্ধ হয়ে যাবে এবং এটিকে ব্যর্থ হিসেবে চিহ্নিত করা হবে। তবে, একটি টেস্টে ব্যর্থ হলে অন্য টেস্ট কেসের উপর কোনও প্রভাব পড়বে না।

সিনট্যাক্স

assertThat(actual, opt_message)

প্যারামিটার

প্যারামিটার ধরন বিবরণ
actual যেকোনও ফ্লুয়েন্ট চেক করার জন্য যে ভ্যালু ব্যবহার করতে হবে।
opt_message স্ট্রিং অ্যাসার্শন ব্যর্থ হলে প্রিন্ট করার জন্য ঐচ্ছিক মেসেজ।

ম্যাচার

ম্যাচার বিবরণ
isUndefined() নিশ্চিত করে যে বিষয় হল undefined।
isDefined() সাবজেক্ট undefined নয় বলে দাবি করে।
isNull() নিশ্চিত করে যে বিষয় হল null।
isNotNull() সাবজেক্ট null নয় বলে দাবি করে।
isFalse() নিশ্চিত করে যে বিষয় হল false।
isTrue() নিশ্চিত করে যে বিষয় হল true।
isFalsy() বিষয়টি মিথ্যা বলে দাবি করে। মিথ্যা ভ্যালু হল undefined, null, false, NaN, 0, এবং '' (খালি স্ট্রিং)।
isTruthy() Asserts that the subject is truthy. মিথ্যা ভ্যালু হল 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() নিশ্চিত করে যে সাবজেক্টটি একটি অ্যারে বা স্ট্রিং যা খালি নয় (দৈর্ঘ্য > ০)। ভ্যালু অ্যারে বা স্ট্রিং না হলে, অ্যাসার্শন সবসময় ব্যর্থ হয়।
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 আপনাকে স্যান্ডবক্স করা API-এর আচরণ ওভাররাইড করার অনুমতি দেয়। মক API টেমপ্লেট কোডে ব্যবহার করা নিরাপদ, তবে এটি শুধুমাত্র টেস্ট মোডে কাজ করে। প্রতিটি টেস্ট চালানোর আগে মক রিসেট করা হয়।

সিনট্যাক্স

mock(apiName, returnValue);

প্যারামিটার

প্যারামিটার ধরন বিবরণ
apiName স্ট্রিং মক করার জন্য API-এর নাম; require()-এ পাস করা স্ট্রিংয়ের মতো একই স্ট্রিং
returnValue যেকোনও 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 আপনাকে স্যান্ডবক্স করা API-এর আচরণ ওভাররাইড করতে দেয় যা একটি অবজেক্ট রিটার্ন করে। টেমপ্লেট কোডে 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'});