সার্ভার-সাইড ট্যাগিং API

এই নথিতে সার্ভার-সাইড ট্যাগিংয়ের জন্য API-এর রূপরেখা রয়েছে।


addEventCallback

একটি কলব্যাক ফাংশন নিবন্ধন করে যা একটি ইভেন্টের শেষে আহ্বান করা হবে। ইভেন্টের সমস্ত ট্যাগ কার্যকর হয়ে গেলে কলব্যাক ডাকা হবে। কলব্যাক দুটি মান পাস করা হয়: ধারকটির আইডি যা ফাংশনকে আহ্বান করে এবং একটি বস্তু যা ইভেন্ট সম্পর্কে তথ্য ধারণ করে।

যখন এই API একটি ট্যাগে ব্যবহার করা হয়, তখন এটি বর্তমান ইভেন্টের সাথে যুক্ত হয়। যখন এই APIটি একটি ক্লায়েন্টে ব্যবহার করা হয়, তখন এটি runContainer API-এর bindToEvent ফাংশন ব্যবহার করে একটি নির্দিষ্ট ইভেন্টে আবদ্ধ হতে হবে। আরো বিস্তারিত জানার জন্য উদাহরণ দেখুন.

সিনট্যাক্স

const addEventCallback = require('addEventCallback');

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
callback ফাংশন ইভেন্টের শেষে আহ্বান করার ফাংশন।

eventData অবজেক্টে নিম্নলিখিত ডেটা রয়েছে:

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

উদাহরণ

একটি ক্লায়েন্ট মধ্যে:

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

claimRequest();

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

একটি ট্যাগে:

const addEventCallback = require('addEventCallback');

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

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

read_event_metadata


callLater

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

উদাহরণ

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

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

সিনট্যাক্স

callLater(function)

পরামিতি

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

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

কোনোটিই নয়।


claimRequest

অনুরোধ দাবি করার জন্য একটি ক্লায়েন্টে এই API ব্যবহার করুন। একবার একটি অনুরোধ দাবি করা হলে, ধারকটি অতিরিক্ত ক্লায়েন্ট চালায় না।

একটি ট্যাগ বা ভেরিয়েবলে বলা হলে এই API একটি ব্যতিক্রম নিক্ষেপ করে। ক্লায়েন্ট রিটার্ন করার পরে কল করা হলে এই APIটি একটি ব্যতিক্রম ছুড়ে দেয় (যেমন যদি একটি async কলব্যাকে বলা হয় যেমন callLater বা runContainer onComplete ফাংশনে)।

runContainer API কল করার আগে একজন ক্লায়েন্টকে এই API ব্যবহার করে অনুরোধ দাবি করা উচিত।

উদাহরণ

const claimRequest = require('claimRequest');

claimRequest();

সিনট্যাক্স

claimRequest();

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

কোনোটিই নয়।


computeEffectiveTldPlusOne

প্রদত্ত ডোমেন বা URL এর কার্যকর শীর্ষ-স্তরের ডোমেন + 1 (eTLD+1) প্রদান করে। eTLD+1 গণনা করা হয় পাবলিক সাফিক্স তালিকার নিয়মের বিপরীতে ডোমেনের মূল্যায়ন করে। eTLD+1 সাধারণত সর্বোচ্চ-স্তরের ডোমেন যেখানে আপনি একটি কুকি সেট করতে পারেন।

যদি আর্গুমেন্টটি নাল বা অনির্ধারিত হয়, তাহলে আর্গুমেন্টের মান অপরিবর্তিতভাবে ফেরত দেওয়া হয়। অন্যথায় যুক্তি একটি স্ট্রিং থেকে জোর করা হয়. যদি যুক্তিটি একটি বৈধ ডোমেন বা URL না হয়, তাহলে একটি ফাঁকা স্ট্রিং ফেরত দেওয়া হয়। সার্ভার যদি সর্বজনীন প্রত্যয় তালিকা আনতে অক্ষম হয়, তাহলে আর্গুমেন্ট মান অপরিবর্তিত ফেরত দেওয়া হয়।

উদাহরণ

const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');

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

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

সিনট্যাক্স

computeEffectiveTldPlusOne(domainOrUrl);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
domainOrUrl স্ট্রিং একটি ডোমেন বা URL যার উপর eTLD+1 গণনা করতে হবে।

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

কোনোটিই নয়।


createRegex

একটি নতুন regex দৃষ্টান্ত তৈরি করে এবং এটি একটি বস্তুতে মোড়ানো ফেরত দেয়। আপনি সরাসরি regex অ্যাক্সেস করতে পারবেন না। যাইহোক, আপনি এটি testRegex API, String.replace() , String.match() , এবং String.search() এ পাস করতে পারেন।

regex অবৈধ হলে বা সার্ভারে Re2 অনুপলব্ধ হলে null ফেরত দেয়।

এই API একটি Re2 বাস্তবায়ন ব্যবহার করে। সার্ভার ডকার ইমেজ 2.0.0 বা পরবর্তী সংস্করণে হতে হবে।

উদাহরণ

const createRegex = require('createRegex');

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

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

সিনট্যাক্স

createRegex(pattern, flags);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
pattern স্ট্রিং রেগুলার এক্সপ্রেশনের টেক্সট।
flags স্ট্রিং রেজেক্স তৈরির জন্য পতাকা ধারণকারী একটি ঐচ্ছিক স্ট্রিং। `g` (গ্লোবাল) এবং `i` (কেস উপেক্ষা করুন) সমর্থিত। অন্য সব চরিত্র নীরবে উপেক্ষা করা হয়.

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

কোনোটিই নয়।

ন্যূনতম চিত্র সংস্করণ

2.0.0


decodeUri

প্রদত্ত URI-তে যেকোনো এনকোড করা অক্ষর ডিকোড করে। ডিকোড করা URI প্রতিনিধিত্ব করে এমন একটি স্ট্রিং প্রদান করে। অবৈধ ইনপুট দেওয়া হলে undefined ফেরত দেয়।

উদাহরণ

const decodeUri = require('decodeUri');

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

সিনট্যাক্স

decodeUri(encoded_uri);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
encoded_uri স্ট্রিং একটি URI যা encodeUri() বা অন্য উপায়ে এনকোড করা হয়েছে।

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

কোনোটিই নয়।


decodeUriComponent

প্রদত্ত URI কম্পোনেন্টে যেকোনো এনকোড করা অক্ষর ডিকোড করে। একটি স্ট্রিং প্রদান করে যা ডিকোড করা URI উপাদানকে উপস্থাপন করে। অবৈধ ইনপুট দেওয়া হলে undefined ফেরত দেয়।

উদাহরণ

const decodeUriComponent = require('decodeUriComponent');

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

সিনট্যাক্স

decodeUriComponent(encoded_uri_component);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
encoded_uri_component স্ট্রিং একটি URI উপাদান যা encodeUriComponent() বা অন্য উপায়ে এনকোড করা হয়েছে।

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

কোনোটিই নয়।


encodeUri

বিশেষ অক্ষর এড়িয়ে গিয়ে একটি এনকোডেড ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) প্রদান করে। একটি স্ট্রিং প্রদান করে যা একটি URI হিসাবে এনকোড করা প্রদত্ত স্ট্রিংকে উপস্থাপন করে।

উদাহরণ

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

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

সিনট্যাক্স

encodeUri(uri);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
uri স্ট্রিং একটি সম্পূর্ণ ইউআরআই।

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

কোনোটিই নয়।


encodeUriComponent

বিশেষ অক্ষর এড়িয়ে গিয়ে একটি এনকোডেড ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (URI) প্রদান করে। একটি স্ট্রিং প্রদান করে যা একটি URI হিসাবে এনকোড করা প্রদত্ত স্ট্রিংকে উপস্থাপন করে।

উদাহরণ

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

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

সিনট্যাক্স

encodeUriComponent(str);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
str স্ট্রিং একটি URI এর একটি উপাদান।

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

কোনোটিই নয়।


extractEventsFromMpv1

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

উদাহরণ

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

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

সিনট্যাক্স

extractEventsFromMpv1();

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

read_request অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:

  • body
  • query parameters

extractEventsFromMpv2

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

উদাহরণ

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

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

সিনট্যাক্স

extractEventsFromMpv2();

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

read_request অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:

  • body
  • query parameters

fromBase64

একটি base64-এনকোডেড স্ট্রিং ডিকোড করে। ইনপুট অবৈধ হলে undefined ফেরত দেয়।

সিনট্যাক্স

fromBase64(base64EncodedString);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
base64EncodedString স্ট্রিং Base64 এনকোডেড স্ট্রিং।

উদাহরণ

const fromBase64 = require('fromBase64');

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

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

কোনোটিই নয়।


generateRandom

প্রদত্ত পরিসরের মধ্যে একটি এলোমেলো সংখ্যা (পূর্ণসংখ্যা) প্রদান করে।

উদাহরণ

const generateRandom = require('generateRandom');

const randomValue = generateRandom(0, 10000000);

সিনট্যাক্স

generateRandom(min, max);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
min সংখ্যা প্রত্যাবর্তিত পূর্ণসংখ্যার ন্যূনতম সম্ভাব্য মান (অন্তর্ভুক্ত)।
max সংখ্যা প্রত্যাবর্তিত পূর্ণসংখ্যার সর্বাধিক সম্ভাব্য মান (অন্তর্ভুক্ত)।

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

কোনোটিই নয়।


getAllEventData

ইভেন্ট ডেটার একটি অনুলিপি প্রদান করে।

সিনট্যাক্স

getAllEventData();

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

read_event_data


getClientName

বর্তমান ক্লায়েন্টের নাম ধারণ করে এমন একটি স্ট্রিং প্রদান করে।

সিনট্যাক্স

getClientName();

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

read_container_data


getContainerVersion

বর্তমান ধারক সম্পর্কে ডেটা ধারণকারী একটি বস্তু প্রদান করে। ফিরে আসা বস্তুর নিম্নলিখিত ক্ষেত্র থাকবে:

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

উদাহরণ

const getContainerVersion = require('getContainerVersion');

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

সিনট্যাক্স

getContainerVersion();

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

read_container_data


getCookieValues

প্রদত্ত নামের সাথে সমস্ত কুকির মান ধারণকারী একটি অ্যারে প্রদান করে।

উদাহরণ

const getCookieValues = require('getCookieValues');

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

সিনট্যাক্স

getCookieValues(name[, noDecode]);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
name স্ট্রিং কুকির নাম।
noDecode বুলিয়ান true হলে, কুকির মান ফেরত দেওয়ার আগে ডিকোড করা হবে না। ডিফল্ট থেকে false

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

get_cookies


getEventData

ইভেন্ট ডেটাতে প্রদত্ত পাথে মানের একটি অনুলিপি প্রদান করে। কোনো ইভেন্ট ডেটা না থাকলে বা প্রদত্ত পাথে কোনো মান না থাকলে undefined ফেরত দেয়।

উদাহরণ

const getEventData = require('getEventData');

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
keyPath যেকোনো কী-এর পথ, যেখানে পাথের উপাদানগুলি বিন্দু দ্বারা পৃথক করা হয়। পথের উপাদানগুলি একটি বস্তুর কী বা একটি অ্যারের সূচক হতে পারে। যদি keyPath একটি স্ট্রিং না হয়, তবে এটি একটি স্ট্রিংয়ে জোরপূর্বক করা হয়।

সিনট্যাক্স

getEventData(keyPath);

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

read_event_data


getGoogleAuth

একটি অনুমোদন বস্তু প্রদান করে যা sendHttpGet বা sendHttpRequest এর সাথে ব্যবহার করা হলে, Google ক্লাউড API-এর জন্য একটি অনুমোদন শিরোনাম অন্তর্ভুক্ত করবে। এই API সার্ভার পরিবেশ থেকে স্বয়ংক্রিয়ভাবে শংসাপত্র খুঁজে পেতে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র ব্যবহার করে।

উদাহরণ

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

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

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

সিনট্যাক্স

getGoogleAuth(scopes);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
scopes অ্যারে অ্যাক্সেসের অনুরোধ করার জন্য OAuth 2.0 Google API স্কোপের একটি অ্যারে।

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

use_google_credentials অনুমতি প্রয়োজন। অনুমতি অবশ্যই এক বা একাধিক অনুমোদিত স্কোপের সাথে কনফিগার করা উচিত।


getGoogleScript

Google স্ক্রিপ্টের একটি পূর্বনির্ধারিত সেট থেকে একটি সংস্থান পুনরুদ্ধার করে এবং স্ক্রিপ্ট এবং সংশ্লিষ্ট ক্যাশিং মেটাডেটার সাথে একটি প্রতিশ্রুতি প্রদান করে।

প্রতিশ্রুতি দুটি কী ধারণকারী বস্তুর সমাধান করবে: script এবং metadata । অনুরোধ ব্যর্থ হলে, প্রতিশ্রুতি একটি reason কী দিয়ে প্রত্যাখ্যান করা হবে।

metadata অবজেক্টে রিসোর্স রেসপন্স হেডারের উপর ভিত্তি করে নিম্নলিখিত ক্যাশিং মেটাডেটা থাকবে; প্রতিটি ক্ষেত্র শুধুমাত্র উপস্থিত হবে যদি সংশ্লিষ্ট শিরোনামটি সম্পদ প্রতিক্রিয়াতে উপস্থিত থাকে।

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

উদাহরণ

const getGoogleScript = require('getGoogleScript');

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

সিনট্যাক্স

getGoogleScript(script[, options]);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
script স্ট্রিং স্ক্রিপ্টের নাম। সমর্থিত স্ক্রিপ্টগুলি হল 'ANALYTICS' , 'GTAG' , এবং 'GTM'

'ANALYTICS' বিকল্পটি https://www.google-analytics.com/analytics.js থেকে Google Analytics স্ক্রিপ্ট নিয়ে আসে।

'GTAG' বিকল্পটি https://www.googletagmanager.com/gtag/js থেকে গ্লোবাল সাইট ট্যাগ (gtag.js) স্ক্রিপ্ট নিয়ে আসে।

'GTM' বিকল্পটি https://www.googletagmanager.com/gtm.js থেকে Google ট্যাগ ম্যানেজার স্ক্রিপ্ট নিয়ে আসে।
options বস্তু ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলির জন্য নীচে দেখুন।

অপশন

অপশন টাইপ বর্ণনা
id স্ট্রিং gtag পরিমাপ আইডি সহ 'GTAG' এবং ওয়েব কন্টেইনার আইডি (যেমন GTM-XXXX) সহ 'GTM' এর জন্য প্রযোজ্য।
debug যেকোনো সত্য হলে, পরিমাপ স্ক্রিপ্টের ডিবাগ সংস্করণের অনুরোধ করে এবং ফেরত দেয়।
timeout সংখ্যা মিলিসেকেন্ডে অনুরোধের সময়সীমা; অ-ইতিবাচক মান উপেক্ষা করা হয়. অনুরোধের সময় শেষ হলে, স্ক্রিপ্ট মানের জন্য undefined এবং মেটাডেটা অবজেক্টের জন্য {} দিয়ে কলব্যাক আহ্বান করা হবে।

অচেনা বিকল্প কী উপেক্ষা করা হয়.

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

send_http অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:

  • Google ডোমেনকে অনুমতি দিন

getRemoteAddress

আইপি ঠিকানার একটি স্ট্রিং উপস্থাপনা প্রদান করে যেখানে অনুরোধটি এসেছে, যেমন 12.345.67.890 IPv4 এর জন্য বা 2001:0db8:85a3:0:0:8a2e:0370:7334 IPv6-এর জন্য অনুরোধ শিরোনাম যেমন ফরওয়ার্ডেড এবং এক্স-ফরওয়ার্ড- পড়ে জন্য দ্রষ্টব্য: এই APIটি মূল আইপি আবিষ্কার করার জন্য একটি সর্বোত্তম প্রচেষ্টা করে, কিন্তু এটি নিশ্চিত করতে পারে না যে ফলাফলটি সঠিক।

সিনট্যাক্স

getRemoteAddress();

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

read_request অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:

  • হেডার Forwarded এবং X-Forwarded-For
  • দূরবর্তী আইপি ঠিকানা

getRequestBody

একটি স্ট্রিং হিসাবে অনুরোধের মূল অংশটি প্রদান করে, যদি উপস্থিত থাকে, বা অন্যথায় undefined

সিনট্যাক্স

getRequestBody();

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

read_request


getRequestHeader

একটি স্ট্রিং হিসাবে নামযুক্ত অনুরোধ শিরোনামের মান প্রদান করে, যদি উপস্থিত থাকে, বা অন্যথায় undefined । যদি শিরোনামটি পুনরাবৃত্তি করা হয়, প্রত্যাবর্তিত মানগুলি ', ' এর সাথে একত্রিত হয়।

উদাহরণ

const getRequestHeader = require('getRequestHeader');

const host = getRequestHeader('host');

সিনট্যাক্স

getRequestHeader(headerName);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
headerName স্ট্রিং হেডারের নাম। এই মান কেস-সংবেদনশীল।

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

read_request


getRequestMethod

একটি স্ট্রিং হিসাবে অনুরোধের পদ্ধতি, যেমন 'GET' বা 'POST' প্রদান করে।

উদাহরণ

const getRequestMethod = require('getRequestMethod');

if (getRequestMethod() === 'POST') {
  // Handle the POST request here.
}

সিনট্যাক্স

getRequestMethod();

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

কোনোটিই নয়।


getRequestPath

ক্যোয়ারী স্ট্রিং ছাড়াই রিকোয়েস্ট পাথ ফেরত দেয়। উদাহরণস্বরূপ, যদি URL '/foo?id=123' হয়, তাহলে এটি '/foo' প্রদান করে। স্বয়ংক্রিয়ভাবে পাথ থেকে সার্ভার কন্টেইনার URL উপসর্গ ছিন্ন করে। উদাহরণস্বরূপ, যদি সার্ভার কন্টেইনার URL হয় https://example.com/analytics এবং অনুরোধের পথ '/analytics/foo' হয়, তাহলে এটি '/foo' প্রদান করে।

উদাহরণ

const getRequestPath = require('getRequestPath');

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

সিনট্যাক্স

getRequestPath();

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

read_request


getRequestQueryParameter

একটি স্ট্রিং হিসাবে নামযুক্ত ক্যোয়ারী স্ট্রিং প্যারামিটারের ডিকোড করা মান প্রদান করে, বা প্যারামিটারটি উপস্থিত না থাকলে undefined । যদি প্যারামিটারটি ক্যোয়ারী স্ট্রিং-এ পুনরাবৃত্তি করা হয়, ক্যোয়ারী স্ট্রিং-এ প্রদর্শিত প্রথম মানটি ফেরত দেওয়া হবে।

উদাহরণ

const getRequestQueryParameter = require('getRequestQueryParameter');

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

সিনট্যাক্স

getRequestQueryParameter(name);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
name স্ট্রিং ক্যোয়ারী প্যারামিটারের নাম।

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

read_request


getRequestQueryParameters

ইনকামিং HTTP অনুরোধের ক্যোয়ারী প্যারামিটারগুলিকে একটি অবজেক্ট হিসাবে ফেরত দেয় যা সংশ্লিষ্ট মান বা মানগুলির সাথে কোয়েরি প্যারামিটার নামগুলিকে ম্যাপ করে৷ পরামিতি নাম এবং মান ডিকোড করা হয়.

উদাহরণ

const getRequestQueryParameters = require('getRequestQueryParameters');

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

সিনট্যাক্স

getRequestQueryParameters();

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

read_request


getRequestQueryString

অনুরোধের ক্যোয়ারীটিকে একটি স্ট্রিং হিসাবে, অগ্রণী প্রশ্ন চিহ্ন ছাড়া, বা একটি খালি স্ট্রিং প্রদান করে যদি অনুরোধের URL-এ একটি ক্যোয়ারী স্ট্রিং অন্তর্ভুক্ত না থাকে৷

উদাহরণ

const getRequestQueryString = require('getRequestQueryString');

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

সিনট্যাক্স

getRequestQueryString();

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

read_request


getTimestamp

অবচয়। GetTimestampMillis পছন্দ করুন।

Date.now() দ্বারা প্রত্যাবর্তিত হিসাবে ইউনিক্স যুগ থেকে মিলিসেকেন্ডে বর্তমান সময়কে প্রতিনিধিত্ব করে এমন একটি সংখ্যা প্রদান করে।

সিনট্যাক্স

getTimestamp();

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

কোনোটিই নয়।


getTimestampMillis

Date.now() দ্বারা প্রত্যাবর্তিত হিসাবে ইউনিক্স যুগ থেকে মিলিসেকেন্ডে বর্তমান সময়কে প্রতিনিধিত্ব করে এমন একটি সংখ্যা প্রদান করে।

সিনট্যাক্স

getTimestampMillis();

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

কোনোটিই নয়।


getType

প্রদত্ত মানের প্রকার বর্ণনা করে একটি স্ট্রিং প্রদান করে।

ইনপুট প্রকার ফেরত মান
স্ট্রিং 'string'
সংখ্যা 'number'
বুলিয়ান 'boolean'
নাল 'null'
অনির্ধারিত 'undefined'
অ্যারে 'array'
অবজেক্ট 'object'
ফাংশন 'function'

উদাহরণ

const getType = require('getType');

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

সিনট্যাক্স

getType(value);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
value যেকোনো ইনপুট মান।

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

কোনোটিই নয়।


hmacSha256

SHA-256 এর সাথে হ্যাশ-ভিত্তিক বার্তা প্রমাণীকরণ কোড (HMAC) ব্যবহার করে একটি এনকোড করা স্বাক্ষর গণনা করে৷ base64url এনকোডিং-এ ডিফল্ট।

এই API ব্যবহার করতে, সার্ভারে SGTM_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবলকে নিম্নলিখিত বিন্যাস সহ একটি UTF-8 এনকোড করা JSON কী ফাইলের পাথে সেট করুন:

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

মান হল base64-এনকোডেড HMAC কী। JSON পাঠ্যটি অবশ্যই বাইট অর্ডার মার্কার দিয়ে শুরু হবে না।

উদাহরণ

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

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

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

সিনট্যাক্স

hmacSha256(data, keyId, options)

পরামিতি

প্যারামিটার টাইপ বর্ণনা
data স্ট্রিং HMAC মান গণনা করার জন্য ডেটা।
keyId স্ট্রিং ব্যবহার করার জন্য কী উল্লেখ করে JSON কী ফাইল থেকে একটি কী আইডি।
options বস্তু ঐচ্ছিক API কনফিগারেশন। (নীচের বিকল্পগুলি দেখুন।)

অপশন

অপশন টাইপ বর্ণনা
outputEncoding স্ট্রিং রিটার্ন মানের জন্য এনকোডিং বিন্যাস নির্দিষ্ট করে। সমর্থিত ফরম্যাটগুলি হল hex , base64 , বা base64url । নির্দিষ্ট না থাকলে base64url এ ডিফল্ট।

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

use_custom_private_keys

ন্যূনতম চিত্র সংস্করণ

1.0.0


isRequestMpv1

ইনকামিং অনুরোধটি একটি পরিমাপ প্রোটোকল V1 অনুরোধ হলে true বা অন্যথায় false দেখায়।

উদাহরণ

const isRequestMpv1 = require('isRequestMpv1');

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

সিনট্যাক্স

isRequestMpv1();

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

কোনোটিই নয়।


isRequestMpv2

ইনকামিং অনুরোধটি একটি পরিমাপ প্রোটোকল V2 অনুরোধ হলে true বা অন্যথায় false দেখায়।

উদাহরণ

const isRequestMpv2 = require('isRequestMpv2');

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

সিনট্যাক্স

isRequestMpv2();

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

কোনোটিই নয়।


logToConsole

কনসোলে এর যুক্তি(গুলি) লগ করে।

এই লগগুলি Google ক্লাউড কনসোলে লগ এক্সপ্লোরারের মধ্যে দৃশ্যমান। এই API দ্বারা তৈরি লগ এন্ট্রি দেখতে লগ এক্সপ্লোরার থেকে logName =~ "stdout" ক্যোয়ারী চালান।

উদাহরণ

const logToConsole = require('logToConsole');

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

সিনট্যাক্স

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

পরামিতি

এপিআই এক বা একাধিক আর্গুমেন্ট নেয়, যার প্রতিটি একটি স্ট্রিং-এ রূপান্তরিত হয়, যদি প্রয়োজন হয়, এবং কনসোলে লগ করা হয়।

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

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 মান হয়ে যাবে।

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

কোনোটিই নয়।


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 স্ট্রিং সম্পূর্ণ ইউআরএল যা পার্স করা হবে।

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

কোনোটিই নয়।


returnResponse

setCookie , setPixelResponse , setResponseBody , setResponseHeader , এবং setResponseStatus সহ প্রতিক্রিয়া পরিবর্তন করে এমন API ব্যবহার করে পূর্বে অন্যান্য টেমপ্লেট দ্বারা সেট করা প্রতিক্রিয়াটিকে ফ্লাশ করে। একটি HTTP স্ট্যাটাস কোড 200 ডিফল্ট, খালি বডি, এবং কোন হেডার নেই।

ক্লায়েন্ট টেমপ্লেট থেকে এই API ব্যবহার করা বাঞ্ছনীয়।

সিনট্যাক্স

returnResponse();

উদাহরণ

runContainer উদাহরণ দেখুন।

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

return_response


runContainer

একটি ইভেন্টের সুযোগে কন্টেইনার লজিক (ভেরিয়েবল, ট্রিগার, ট্যাগ) চালায়। কন্টেইনার এক্সিকিউশনের সময় যদি এই API কল করা হয়, তাহলে কন্টেইনার আবার চালানো হবে।

onComplete এবং onStart কলব্যাকগুলি bindToEvent নামে একটি ফাংশন গ্রহণ করে। ইভেন্টের প্রসঙ্গে একটি API চালানোর জন্য bindToEvent ব্যবহার করুন। আরো বিস্তারিত জানার জন্য addEventCallback উদাহরণ দেখুন।

ক্লায়েন্ট টেমপ্লেট থেকে এই API ব্যবহার করা বাঞ্ছনীয়।

উদাহরণ

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

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

সিনট্যাক্স

runContainer(event, onComplete, onStart);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
event বস্তু ঘটনা পরামিতি.
onComplete ফাংশন একটি কলব্যাক যা সমস্ত ট্যাগ ফায়ারিং শেষ হওয়ার পরে আহ্বান করা হয়৷
onStart ফাংশন একটি কলব্যাক যা অবিলম্বে আহ্বান করা হয়, ট্যাগগুলি ফায়ারিং শুরু করার আগে৷

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

run_container


sendEventToGoogleAnalytics

Google Analytics-এ সাধারণ ইভেন্ট ডেটা ব্যবহার করে একটি একক ইভেন্ট পাঠায় এবং একটি প্রতিশ্রুতি প্রদান করে যা একটি location কী সহ একটি বস্তুর সমাধান করে বা একটি reason কী সহ একটি বস্তুকে প্রত্যাখ্যান করে। গন্তব্য, Google Analytics 4, ইভেন্ট ডেটার পরিমাপ আইডির উপর ভিত্তি করে।

location ক্ষেত্রটি location শিরোনামে সেট করা হয়, যদি উপস্থিত থাকে।

উদাহরণ

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

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

সিনট্যাক্স

sendEventToGoogleAnalytics(event);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
event বস্তু ইউনিফাইড স্কিমা ফরম্যাটে ইভেন্ট।

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

send_http অনুমতি প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:

  • Google ডোমেনকে অনুমতি দিন

sendHttpGet

নির্দিষ্ট URL-এ একটি HTTP GET অনুরোধ করে, এবং একটি প্রতিশ্রুতি প্রদান করে যা অনুরোধ সম্পূর্ণ হলে বা সময় শেষ হয়ে গেলে ফলাফলের সাথে সমাধান হয়।

সমাধান করা ফলাফল হল তিনটি কী সমন্বিত একটি বস্তু: statusCode , headers , এবং body । যদি অনুরোধ ব্যর্থ হয় (যেমন অবৈধ URL, হোস্টের কোনো রুট, SSL আলোচনা ব্যর্থতা, ইত্যাদি), প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে: {reason: 'failed'} । যদি timeout বিকল্প সেট করা থাকে এবং অনুরোধের সময় শেষ হয়ে যায়, তাহলে প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে: {reason: 'timed_out'}

উদাহরণ

const sendHttpGet = require('sendHttpGet');

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

সিনট্যাক্স

sendHttpGet(url[, options]);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
url স্ট্রিং অনুরোধ করা URL.
options বস্তু ঐচ্ছিক অনুরোধ বিকল্প. (নীচের বিকল্পগুলি দেখুন।)

অপশন

অপশন টাইপ বর্ণনা
headers স্ট্রিং অতিরিক্ত অনুরোধ শিরোনাম.
timeout সংখ্যা টাইমআউট, মিলিসেকেন্ডে, অনুরোধ বাতিল হওয়ার আগে। ডিফল্ট 15000
authorization বস্তু googleapis.com এ অনুরোধ করার সময় অনুমোদনের শিরোনাম অন্তর্ভুক্ত করার জন্য getGoogleAuth এ কল থেকে ঐচ্ছিক অনুমোদনের বস্তু।

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

send_http


sendHttpRequest

নির্দিষ্ট URL-এ একটি HTTP অনুরোধ করে এবং একটি প্রতিশ্রুতি প্রদান করে যা অনুরোধ সম্পূর্ণ হলে বা সময় শেষ হয়ে গেলে প্রতিক্রিয়ার সাথে সমাধান হয়।

সমাধান করা ফলাফল হল তিনটি কী সমন্বিত একটি বস্তু: statusCode , headers , এবং body । যদি অনুরোধ ব্যর্থ হয় (যেমন অবৈধ URL, হোস্টের কোনো রুট, SSL আলোচনা ব্যর্থতা, ইত্যাদি), প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে: {reason: 'failed'} । যদি timeout বিকল্প সেট করা থাকে এবং অনুরোধের সময় শেষ হয়ে যায়, তাহলে প্রতিশ্রুতিটি প্রত্যাখ্যান করা হবে: {reason: 'timed_out'}

উদাহরণ

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

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

সিনট্যাক্স

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
url স্ট্রিং অনুরোধ করা URL.
options বস্তু ঐচ্ছিক অনুরোধ বিকল্প. (নীচের বিকল্পগুলি দেখুন।)
body স্ট্রিং ঐচ্ছিক অনুরোধ শরীর.

অপশন

অপশন টাইপ বর্ণনা
headers স্ট্রিং অতিরিক্ত অনুরোধ শিরোনাম.
method বস্তু অনুরোধের পদ্ধতি। GET ডিফল্ট।
timeout সংখ্যা টাইমআউট, মিলিসেকেন্ডে, অনুরোধ বাতিল হওয়ার আগে। ডিফল্ট 15000
authorization বস্তু googleapis.com এ অনুরোধ করার সময় অনুমোদনের শিরোনাম অন্তর্ভুক্ত করার জন্য getGoogleAuth এ কল থেকে ঐচ্ছিক অনুমোদনের বস্তু।

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

send_http


sendPixelFromBrowser

একটি <img> ট্যাগ হিসাবে প্রদত্ত URL লোড করার জন্য ব্রাউজারে একটি কমান্ড পাঠায়। এই কমান্ড প্রোটোকলটি GA4 এবং Google Analytics: GA ইভেন্ট ওয়েব ট্যাগের জন্য Google ট্যাগে সমর্থিত। আপনাকে অবশ্যই সার্ভার কন্টেইনার URL কনফিগার করতে হবে। আরো বিস্তারিত জানার জন্য নির্দেশাবলী দেখুন.

যদি ইনকামিং অনুরোধ কমান্ড প্রোটোকল সমর্থন না করে, বা প্রতিক্রিয়া ইতিমধ্যে ফ্লাশ করা হয়েছে যদি এই API false প্রদান করে। অন্যথায় এই API true প্রদান করে।

উদাহরণ:

const sendPixelFromBrowser = require('sendPixelFromBrowser');

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

সিনট্যাক্স

sendPixelFromBrowser(url)

পরামিতি

প্যারামিটার টাইপ বর্ণনা
url স্ট্রিং ব্রাউজারে পাঠানোর জন্য ইউআরএল।

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

send_pixel_from_browser


setCookie

নির্দিষ্ট বিকল্পগুলির সাথে একটি কুকি সেট বা মুছে দেয়।

একটি কুকি মুছে ফেলার জন্য, একজনকে অবশ্যই একই পথ এবং ডোমেন সহ একটি কুকি সেট করতে হবে যেটি দিয়ে কুকি তৈরি করা হয়েছিল এবং এটিকে একটি মেয়াদ শেষ হওয়ার মান নির্ধারণ করতে হবে যা অতীতে ছিল, যেমন "Thu, 01 Jan 1970 00:00:00 GMT"

দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।

উদাহরণ

const setCookie = require('setCookie');

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

সিনট্যাক্স

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
name স্ট্রিং কুকির নাম। নামটি কেস-সংবেদনশীল।
value স্ট্রিং কুকি মান.
options বস্তু ঐচ্ছিক কুকি বৈশিষ্ট্য: ডোমেন , মেয়াদ শেষ , ফলব্যাকডোমেন , শুধুমাত্র http , সর্বোচ্চ , পথ , নিরাপদ , এবং একইসাইট ৷ (নীচে বিকল্পগুলি দেখুন।)
noEncode বুলিয়ান সত্য হলে, কুকি মান এনকোড করা হবে না। ডিফল্ট থেকে false

অপশন

  • ডোমেইন: যে হোস্টে কুকি পাঠানো হবে। যদি বিশেষ মান 'অটো'তে সেট করা হয়, তাহলে হোস্ট স্বয়ংক্রিয়ভাবে নিম্নলিখিত কৌশল ব্যবহার করে গণনা করা হবে:

    • Forwarded হেডারের eTLD+1, যদি উপস্থিত থাকে।
    • X-Forwarded-Host হেডারের eTLD+1, যদি উপস্থিত থাকে।
    • Host হেডারের eTLD+1।
  • মেয়াদ শেষ হয় : কুকির সর্বোচ্চ জীবনকাল। এটি অবশ্যই একটি UTC-ফরম্যাট করা তারিখের স্ট্রিং, যেমন "শনি, 26 অক্টোবর 1985 08:21:00 GMT"। যদি expires এবং max-age উভয়ই সেট করা থাকে, max-age অগ্রাধিকার থাকে।

  • httpশুধু : true হলে জাভাস্ক্রিপ্টকে কুকি অ্যাক্সেস করা নিষিদ্ধ করে।

  • সর্বোচ্চ বয়স : কুকির মেয়াদ শেষ না হওয়া পর্যন্ত সেকেন্ডের সংখ্যা। একটি শূন্য বা ঋণাত্মক সংখ্যা অবিলম্বে কুকি মেয়াদ শেষ হবে. যদি expires এবং max-age উভয়ই সেট করা থাকে, max-age অগ্রাধিকার থাকে।

  • path : একটি পাথ যা অনুরোধ করা URL-এ থাকা আবশ্যক, অথবা ব্রাউজার কুকি হেডার পাঠাবে না।

  • নিরাপদ : যদি true সেট করা হয়, কুকি শুধুমাত্র সার্ভারে পাঠানো হয় যখন একটি https: endpoint থেকে অনুরোধ করা হয়।

  • sameSite : দাবি করে যে একটি কুকি ক্রস-অরিজিন অনুরোধের সাথে পাঠানো উচিত নয়। 'strict' , 'lax' , বা 'none' হতে হবে।

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

set_cookie


setPixelResponse

একটি 1x1 GIF-এ প্রতিক্রিয়া বডি সেট করে, কন্টেন্ট-টাইপ হেডারকে 'ইমেজ/gif'-এ সেট করে, ক্যাশিং হেডার সেট করে যাতে ব্যবহারকারী এজেন্টরা প্রতিক্রিয়া ক্যাশে না করে, এবং প্রতিক্রিয়া স্থিতি 200-এ সেট করে।

দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।

সিনট্যাক্স

setPixelResponse();

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

access_response অনুমতির প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:

  • headers - নিম্নলিখিত কীগুলির অনুমতি দিতে হবে
    • content-type
    • cache-control
    • expires
    • pragma
  • body
  • status

setResponseBody

যুক্তিতে প্রতিক্রিয়ার মূল অংশ সেট করে।

দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।

সিনট্যাক্স

setResponseBody(body[, encoding]);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
body স্ট্রিং রেসপন্স বডি হিসেবে সেট করা মান।
encoding স্ট্রিং রেসপন্স বডির ক্যারেক্টার এনকোডিং (ডিফল্ট 'utf8' )। সমর্থিত মানগুলির মধ্যে রয়েছে 'ascii' , 'utf8' , 'utf16le' , 'ucs2' , 'base64' , 'latin1' , 'binary' , এবং 'hex'

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

access_response অনুমতির প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:

  • body

setResponseHeader

প্রতিক্রিয়াতে একটি শিরোনাম সেট করে যা ফেরত দেওয়া হবে। যদি এই নামের একটি শিরোনাম (কেস-সংবেদনশীল) পূর্বে এই API দ্বারা সেট করা থাকে, তাহলে পরবর্তী কলটি পূর্বের কলার দ্বারা সেট করা মানটিকে ওভাররাইট বা সাফ করবে।

দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।

সিনট্যাক্স

setResponseHeader(name, value);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
name স্ট্রিং হেডারের নাম। এইচটিটিপি হেডার নামগুলি কেস-সংবেদনশীল, তাই হেডারের নাম ছোট হাতের হবে৷
value স্ট্রিং অনির্ধারিত হেডার মান। যদি নাল বা অনির্ধারিত হয়, তাহলে এটি নামযুক্ত শিরোনামটি সাফ করে যে প্রতিক্রিয়াটি ফেরত দেওয়া হবে।

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

access_response অনুমতির প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:

  • headers

setResponseStatus

যে প্রতিক্রিয়াটি ফেরত দেওয়া হবে তার HTTP স্থিতি কোড সেট করে।

দ্রষ্টব্য যে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফেরত পাঠানোর জন্য returnResponse কল করতে হবে।

সিনট্যাক্স

setResponseStatus(statusCode);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
statusCode সংখ্যা HTTP স্ট্যাটাস কোড ফেরত দিতে হবে।

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

access_response অনুমতির প্রয়োজন। কমপক্ষে অ্যাক্সেসের অনুমতি দেওয়ার জন্য অনুমতি কনফিগার করা আবশ্যক:

  • status

sha256

ইনপুটের SHA-256 ডাইজেস্ট গণনা করে এবং বেস64 এ এনকোড করা ডাইজেস্টের সাথে একটি কলব্যাক আহ্বান করে, যদি না options অবজেক্ট একটি ভিন্ন আউটপুট এনকোডিং নির্দিষ্ট করে।

এই API স্বাক্ষর এবং আচরণ ওয়েব কন্টেইনারগুলির জন্য sha256 API-এর সাথে মেলে; যাইহোক, সার্ভার পাত্রে কাস্টম টেমপ্লেটগুলিকে সহজ কোডের জন্য sha256Sync API ব্যবহার করা উচিত।

উদাহরণ

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

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

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

সিনট্যাক্স

sha256(input, onSuccess, options = undefined);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
input স্ট্রিং হ্যাশ করার জন্য স্ট্রিং।
onSuccess ফাংশন ফলাফল ডাইজেস্টের সাথে কল করা হয়, বেস64 এ এনকোড করা হয়, যদি না options অবজেক্ট একটি ভিন্ন আউটপুট এনকোডিং নির্দিষ্ট করে।
options বস্তু আউটপুট এনকোডিং নির্দিষ্ট করতে ঐচ্ছিক অপশন অবজেক্ট। যদি নির্দিষ্ট করা থাকে, তাহলে অবজেক্টটিতে মূল outputEncoding থাকতে হবে যার মান base64 বা hex একটি।

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

কোনোটিই নয়।


sha256Sync

ইনপুটের SHA-256 ডাইজেস্ট গণনা করে, বেস64-এ এনকোড করা, যদি না options অবজেক্ট একটি ভিন্ন আউটপুট এনকোডিং নির্দিষ্ট করে।

উদাহরণ

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

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

সিনট্যাক্স

sha256Sync(input, options = undefined);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
input স্ট্রিং হ্যাশ করার জন্য স্ট্রিং।
options বস্তু আউটপুট এনকোডিং নির্দিষ্ট করতে ঐচ্ছিক অপশন অবজেক্ট। যদি নির্দিষ্ট করা থাকে, তাহলে অবজেক্টটিতে মূল outputEncoding থাকতে হবে যার মান base64 বা hex একটি।

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

কোনোটিই নয়।


templateDataStorage

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

"টেমপ্লেটডেটাস্টোরেজ" নামের "ডেটা" বলতে বোঝায় যে শুধুমাত্র প্লেইন, নন-ফাংশন ডেটা টাইপ এই API ব্যবহার করে সংরক্ষণ করা যেতে পারে। API-তে পাস করা ফাংশনগুলির যেকোন ফাংশন বা রেফারেন্স পরিবর্তে null হিসাবে সংরক্ষণ করা হবে।

সিনট্যাক্স

const templateDataStorage = require('templateDataStorage');

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

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

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

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

উদাহরণ

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

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

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

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

access_template_storage


testRegex

createRegex API এর মাধ্যমে তৈরি একটি রেজেক্সের বিরুদ্ধে একটি স্ট্রিং পরীক্ষা করে। রেজেক্স মেলে true দেখায়। অন্যথায় false ফেরত দেয়।

বিশ্বব্যাপী পতাকা দিয়ে তৈরি একটি রেজেক্স রাষ্ট্রীয়। বিস্তারিত জানার জন্য RegExp ডকুমেন্টেশন দেখুন।

উদাহরণ

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

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

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

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

সিনট্যাক্স

testRegex(regex, string);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
regex অবজেক্ট Regex এর বিরুদ্ধে পরীক্ষা করার জন্য, createRegex API থেকে ফিরে এসেছে।
string স্ট্রিং পরীক্ষা করার জন্য স্ট্রিং পরীক্ষা করুন।

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

কোনোটিই নয়।


toBase64

base64 বা base64url হিসাবে একটি স্ট্রিং এনকোড করে। বেস64 এনকোডিং-এ ডিফল্ট।

সিনট্যাক্স

toBase64(input, options);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
input স্ট্রিং এনকোড করার জন্য স্ট্রিং।
options বস্তু ঐচ্ছিক API কনফিগারেশন। (নীচের বিকল্পগুলি দেখুন।)

অপশন

অপশন টাইপ বর্ণনা ন্যূনতম সংস্করণ
urlEncoding বুলিয়ান সত্য হলে, ফলাফলটি base64url বিন্যাস ব্যবহার করে এনকোড করা হবে। 1.0.0

উদাহরণ

const toBase64 = require('toBase64');

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

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

কোনোটিই নয়।


BigQuery

BigQuery ফাংশন প্রদান করে এমন একটি বস্তু প্রদান করে।

BigQuery.insert ফাংশন একটি BigQuery টেবিলে ডেটা লেখার অনুমতি দেয়। এটি একটি প্রতিশ্রুতি প্রদান করে যা একটি সফল সন্নিবেশের উপর সমাধান করে বা একটি ত্রুটির উপর প্রত্যাখ্যান করে।

যখন সন্নিবেশ সফল হয়, প্রতিশ্রুতি কোন যুক্তি ছাড়াই সমাধান করে।

সন্নিবেশ ব্যর্থ হলে, প্রতিশ্রুতি ত্রুটির কারণ সম্বলিত অবজেক্টের একটি তালিকা সহ প্রত্যাখ্যান করে এবং যদি একটি ত্রুটি ঘটে তাহলে সম্ভবত একটি সারি অবজেক্ট। অনুরোধের একটি অংশ সফলভাবে সম্পন্ন করা সম্ভব, অন্য অংশগুলি নয়। কোন সারি ঢোকানো হয়েছে তা আলাদা করতে সাহায্য করার জন্য একটি সারি অবজেক্ট সহ প্রতিটি সারির ত্রুটির একটি তালিকার সাথে এই ক্ষেত্রে প্রতিশ্রুতিটি প্রত্যাখ্যান করা হয়েছে (নীচে ত্রুটির উদাহরণ দেখুন)। আরও তথ্যের জন্য ত্রুটির বার্তাগুলিতে BigQuery-এর ডকুমেন্টেশন দেখুন।

সিনট্যাক্স

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
connectionInfo বস্তু একটি BigQuery টেবিলের সাথে সংযোগ করার জন্য প্রয়োজনীয় তথ্য নির্ধারণ করে। একটি ঐচ্ছিক পরামিতি এবং দুটি প্রয়োজনীয় পরামিতি আছে:
  • projectId - ঐচ্ছিক Google ক্লাউড প্ল্যাটফর্ম প্রকল্প আইডি। বাদ দেওয়া হলে, projectId এনভায়রনমেন্ট ভেরিয়েবল GOOGLE_CLOUD_PROJECT থেকে পুনরুদ্ধার করা হবে যতক্ষণ না প্রোজেক্ট আইডির জন্য access_bigquery অনুমতি সেটিং * বা GOOGLE_CLOUD_PROJECT সেট করা থাকে। যদি সার্ভার কন্টেইনারটি Google ক্লাউডে চলছে, GOOGLE_CLOUD_PROJECT ইতিমধ্যেই Google ক্লাউড প্রকল্পের আইডিতে সেট করা হবে৷
  • datasetId - BigQuery ডেটাসেট আইডি।
  • tableId - BigQuery টেবিল আইডি।
rows অ্যারে সারি সারণিতে সন্নিবেশ করান.
options বস্তু ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলি হল: ignoreUnknownValues ​​এবং skipInvalidRows । অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।)

অপশন

প্যারামিটার টাইপ বর্ণনা
ignoreUnknownValues বুলিয়ান যদি true তে সেট করা হয়, তাহলে স্কিমার সাথে মেলে না এমন মান ধারণ করে এমন সারি গ্রহণ করুন। অজানা মান উপেক্ষা করা হয়. ডিফল্ট থেকে false
skipInvalidRows বুলিয়ান যদি true তে সেট করা হয়, তাহলে একটি অনুরোধের সব বৈধ সারি সন্নিবেশ করান, এমনকি যদি অবৈধ সারি থাকে। ডিফল্ট থেকে false

ত্রুটি উদাহরণ

একটি মডিউল পাওয়া যায়নি ত্রুটির অর্থ হল আপনার সার্ভারের কন্টেইনার সম্ভবত আমাদের ছবির একটি পুরানো সংস্করণ চালাচ্ছে যাতে এখনও BigQuery মডিউল অন্তর্ভুক্ত করা হয়নি। অনুগ্রহ করে আমাদের ডিপ্লয়মেন্ট স্ক্রিপ্ট ব্যবহার করে একই সেটিংস সহ আপনার সার্ভার কন্টেইনার পুনরায় স্থাপন করুন৷ অপারেশন শেষ হলে মডিউলটি স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হবে।

একটি নন-ইনসার্টেশন ত্রুটিতে সাধারণত একটি reason কী সহ একটি ত্রুটি বস্তু থাকে:

[{reason: 'invalid'}]

একটি সন্নিবেশ ত্রুটি একটি errors অ্যারে এবং একটি row অবজেক্ট সহ একাধিক ত্রুটি বস্তু থাকতে পারে। নিম্নলিখিত দুটি সারি সন্নিবেশ করা থেকে একটি ত্রুটি প্রতিক্রিয়ার একটি উদাহরণ যেখানে শুধুমাত্র একটি সারিতে একটি ত্রুটি রয়েছে:

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

উদাহরণ

const BigQuery = require('BigQuery');

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

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

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

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

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

access_bigquery


Firestore

Firestore ফাংশন প্রদান করে এমন একটি বস্তু প্রদান করে।

এই API শুধুমাত্র নেটিভ মোডে Firestore সমর্থন করে, Datastore মোডে Firestore নয়। এছাড়াও, API শুধুমাত্র ডিফল্ট ডাটাবেস ব্যবহার করে সমর্থন করে।

Firestore.read

Firestore.read ফাংশন একটি Firestore নথি থেকে ডেটা পড়ে এবং একটি প্রতিশ্রুতি প্রদান করে যা দুটি কী ধারণকারী বস্তুর সমাধান করে: id এবং data । যদি নথিটি বিদ্যমান না থাকে, তাহলে প্রতিশ্রুতিটি not_found এর সমান একটি reason কী ধারণকারী বস্তুর সাথে প্রত্যাখ্যান করে।

সিনট্যাক্স

Firestore.read(path[, options]);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
path স্ট্রিং নথি বা সংগ্রহের পথ। '/' দিয়ে শুরু বা শেষ করা উচিত নয়।
options বস্তু ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলি হল: projectId , disableCache এবং লেনদেন । অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।)

অপশন

প্যারামিটার টাইপ বর্ণনা
projectId স্ট্রিং ঐচ্ছিক Google ক্লাউড প্ল্যাটফর্ম প্রকল্প আইডি। যদি বাদ দেওয়া হয়, তাহলে প্রজেক্ট আইডির জন্য access_firestore অনুমতি সেটিং * বা GOOGLE_CLOUD_PROJECT সেট করা থাকলে পরিবেশ পরিবর্তনশীল GOOGLE_CLOUD_PROJECT থেকে projectId পুনরুদ্ধার করা হবে। যদি সার্ভার কন্টেইনারটি Google ক্লাউডে চলছে, GOOGLE_CLOUD_PROJECT ইতিমধ্যেই Google ক্লাউড প্রকল্পের আইডিতে সেট করা হবে৷
disableCache বুলিয়ান ঐচ্ছিক ক্যাশে নিষ্ক্রিয় করতে হবে কিনা তা নির্ধারণ করে। ক্যাশিং ডিফল্টরূপে সক্রিয় থাকে, যা অনুরোধের সময়কালের জন্য ফলাফল ক্যাশে করবে।
transaction স্ট্রিং ঐচ্ছিক Firestore.runTransaction() থেকে মানটি উদ্ধার করা হয়েছে। একটি লেনদেনের মধ্যে ব্যবহার করা অপারেশন চিহ্নিত করে।

উদাহরণ

const Firestore = require('Firestore');

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

Firestore.write

Firestore.write ফাংশন একটি Firestore নথি বা সংগ্রহে ডেটা লেখে। যদি পথটি একটি সংগ্রহের জন্য হয়, একটি দস্তাবেজ একটি এলোমেলোভাবে তৈরি করা আইডি দিয়ে তৈরি করা হবে৷ যদি পথটি একটি নথিতে থাকে এবং এটি বিদ্যমান না থাকে তবে এটি তৈরি করা হবে। এই API একটি প্রতিশ্রুতি প্রদান করে যা যোগ করা বা পরিবর্তিত নথির আইডিতে সমাধান করে। যদি লেনদেনের বিকল্পটি ব্যবহার করা হয়, তবে API এখনও একটি প্রতিশ্রুতি প্রদান করে, কিন্তু লেখাগুলি ব্যাচ করা থেকে ID ধারণ করবে না।

সিনট্যাক্স

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
path স্ট্রিং নথি বা সংগ্রহের পথ। '/' দিয়ে শুরু বা শেষ করা উচিত নয়।
input বস্তু নথিতে লেখার মান। মার্জ অপশন সেট করা থাকলে, এপিআই ইনপুট থেকে ডকুমেন্টে কীগুলি মার্জ করবে।
options বস্তু ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলি হল: ProjectId , মার্জ , এবং লেনদেন ৷ অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।)

অপশন

প্যারামিটার টাইপ বর্ণনা
projectId স্ট্রিং ঐচ্ছিক Google ক্লাউড প্ল্যাটফর্ম প্রকল্প আইডি। যদি বাদ দেওয়া হয়, তাহলে প্রজেক্ট আইডির জন্য access_firestore অনুমতি সেটিং * বা GOOGLE_CLOUD_PROJECT সেট করা থাকলে পরিবেশ পরিবর্তনশীল GOOGLE_CLOUD_PROJECT থেকে projectId পুনরুদ্ধার করা হবে। যদি সার্ভার কন্টেইনারটি Google ক্লাউডে চলছে, GOOGLE_CLOUD_PROJECT ইতিমধ্যেই Google ক্লাউড প্রকল্পের আইডিতে সেট করা হবে৷
merge বুলিয়ান ঐচ্ছিক যদি true তে সেট করা হয়, তাহলে ইনপুট থেকে কীগুলিকে নথিতে মার্জ করুন, অন্যথায় পদ্ধতিটি পুরো নথিটিকে ওভাররাইড করবে। ডিফল্ট থেকে false
transaction স্ট্রিং ঐচ্ছিক Firestore.runTransaction() থেকে মানটি উদ্ধার করা হয়েছে। একটি লেনদেনের মধ্যে ব্যবহার করা অপারেশন চিহ্নিত করে।

উদাহরণ

const Firestore = require('Firestore');

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

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

Firestore.query

Firestore.query ফাংশন প্রদত্ত সংগ্রহকে জিজ্ঞাসা করে এবং একটি প্রতিশ্রুতি প্রদান করে যা ফায়ারস্টোর নথির একটি অ্যারের সমাধান করে যা ক্যোয়ারী শর্তের সাথে মেলে। Firestore ডকুমেন্ট অবজেক্টটি Firestore.read এ উপরে তালিকাভুক্ত হিসাবে একই। ক্যোয়ারী শর্তের সাথে মেলে এমন কোন নথি না থাকলে, প্রত্যাবর্তিত প্রতিশ্রুতি একটি খালি অ্যারের সমাধান করবে।

সিনট্যাক্স

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
collection স্ট্রিং সংগ্রহের পথ। '/' দিয়ে শুরু বা শেষ করা উচিত নয়।
queryConditions অ্যারে ক্যোয়ারী শর্ত একটি অ্যারে. প্রতিটি কোয়েরি তিনটি মান সহ একটি অ্যারের আকারে আসে: কী , অপারেটর , এবং প্রত্যাশিত মান । যেমন: [['id', '<', '5'], ['state', '==', 'CA']]।

ক্যোয়ারী ফলাফল তৈরি করতে শর্তগুলি একসাথে AND করা হয়। সামঞ্জস্যপূর্ণ ক্যোয়ারী অপারেটরগুলির একটি তালিকার জন্য অনুগ্রহ করে Firestore-এর ক্যোয়ারী অপারেটরগুলি দেখুন৷
options বস্তু ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত বিকল্পগুলি হল: projectId , disableCache , limit , এবং লেনদেন ৷ অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।)

অপশন

প্যারামিটার টাইপ বর্ণনা
projectId স্ট্রিং ঐচ্ছিক Google ক্লাউড প্ল্যাটফর্ম প্রকল্প আইডি। যদি বাদ দেওয়া হয়, তাহলে প্রজেক্ট আইডির জন্য access_firestore অনুমতি সেটিং * বা GOOGLE_CLOUD_PROJECT সেট করা থাকলে পরিবেশ পরিবর্তনশীল GOOGLE_CLOUD_PROJECT থেকে projectId পুনরুদ্ধার করা হবে। যদি সার্ভার কন্টেইনারটি Google ক্লাউডে চলছে, GOOGLE_CLOUD_PROJECT ইতিমধ্যেই Google ক্লাউড প্রকল্পের আইডিতে সেট করা হবে৷
disableCache বুলিয়ান ঐচ্ছিক ক্যাশে নিষ্ক্রিয় করতে হবে কিনা তা নির্ধারণ করে। ক্যাশিং ডিফল্টরূপে সক্রিয় থাকে, যা অনুরোধের সময়কালের জন্য ফলাফল ক্যাশে করবে।
limit সংখ্যা ঐচ্ছিক ক্যোয়ারী দ্বারা প্রত্যাবর্তিত ফলাফলের সর্বাধিক সংখ্যা পরিবর্তন করে, ডিফল্ট 5 এ।
transaction স্ট্রিং ঐচ্ছিক Firestore.runTransaction() থেকে মানটি উদ্ধার করা হয়েছে। একটি লেনদেনের মধ্যে ব্যবহার করা অপারেশন চিহ্নিত করে।

উদাহরণ

const Firestore = require('Firestore');

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

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

Firestore.runTransaction

Firestore.runTransaction ফাংশন ব্যবহারকারীকে Firestore থেকে পরমাণুভাবে পড়তে এবং লিখতে দেয়। যদি একটি সমসাময়িক লেখা বা অন্য লেনদেনের দ্বন্দ্ব ঘটে, লেনদেনটি দুই বার পর্যন্ত পুনরায় চেষ্টা করা হবে। যদি এটি মোট তিনটি প্রচেষ্টার পরে ব্যর্থ হয়, API একটি ত্রুটি সহ প্রত্যাখ্যান করবে। এই API একটি প্রতিশ্রুতি প্রদান করে যা প্রতিটি লেখার ক্রিয়াকলাপের জন্য ডকুমেন্ট আইডিগুলির একটি অ্যারের সমাধান করে, যদি লেনদেন সফল হয় এবং এটি ব্যর্থ হলে ত্রুটি সহ প্রত্যাখ্যান করবে।

সিনট্যাক্স

Firestore.runTransaction(callback[, options]);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
callback ফাংশন একটি কলব্যাক যা একটি স্ট্রিং লেনদেন আইডি দিয়ে আহ্বান করা হয়েছে। লেনদেন আইডি রিড/রাইট/কোয়েরি এপিআই কলে পাস করা যেতে পারে। এই কলব্যাক ফাংশন অবশ্যই একটি প্রতিশ্রুতি প্রদান করবে। কলব্যাক ব্যর্থ হওয়ার আগে তিনবার পর্যন্ত চলতে পারে।
options বস্তু ঐচ্ছিক অনুরোধ বিকল্প. সমর্থিত শুধুমাত্র সমর্থিত বিকল্প হল projectId . অজানা বিকল্প কী উপেক্ষা করা হয়. (নীচে বিকল্পগুলি দেখুন।)

অপশন

প্যারামিটার টাইপ বর্ণনা
projectId স্ট্রিং ঐচ্ছিক Google ক্লাউড প্ল্যাটফর্ম প্রকল্প আইডি। যদি বাদ দেওয়া হয়, তাহলে প্রজেক্ট আইডির জন্য access_firestore অনুমতি সেটিং * বা GOOGLE_CLOUD_PROJECT সেট করা থাকলে পরিবেশ পরিবর্তনশীল GOOGLE_CLOUD_PROJECT থেকে projectId পুনরুদ্ধার করা হবে। যদি সার্ভার কন্টেইনারটি Google ক্লাউডে চলছে, GOOGLE_CLOUD_PROJECT ইতিমধ্যেই Google ক্লাউড প্রকল্পের আইডিতে সেট করা হবে৷

উদাহরণ

const Firestore = require('Firestore');

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

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

ত্রুটি উদাহরণ

প্রতিটি ফায়ারস্টোর ফাংশনে ত্রুটিগুলি উপলব্ধ একটি reason কী ধারণকারী বস্তুর সাথে প্রত্যাখ্যান করা হবে:

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

ত্রুটির কারণগুলি থাকতে পারে তবে ফায়ারস্টোর আরইএসটি এপিআই ত্রুটি কোডগুলির মধ্যে সীমাবদ্ধ নয়।

সম্পর্কিত অনুমতি

access_firestore


JSON

JSON ফাংশন সরবরাহ করে এমন একটি বস্তু প্রদান করে।

parse() ফাংশন স্ট্রিং দ্বারা বর্ণিত মান বা অবজেক্টটি তৈরি করতে একটি JSON স্ট্রিংকে পার্স করে। যদি মানটি পার্স করা যায় না (যেমন ত্রুটিযুক্ত জেএসএন), ফাংশনটি undefined ফিরে আসবে। যদি ইনপুট মান কোনও স্ট্রিং না হয় তবে ইনপুটটি একটি স্ট্রিংয়ে জোর করা হবে।

stringify() ফাংশনটি ইনপুটটিকে একটি JSON স্ট্রিংয়ে রূপান্তর করে। যদি মানটি পার্স করা যায় না (যেমন বস্তুর একটি চক্র থাকে), পদ্ধতিটি undefined ফিরে আসবে।

উদাহরণ

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

সিনট্যাক্স

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

সম্পর্কিত অনুমতি

কোনোটিই নয়।


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

পরামিতি

গণিত ফাংশন পরামিতি সংখ্যায় রূপান্তরিত হয়।

সম্পর্কিত অনুমতি

কোনোটিই নয়।


Messages

নিম্নলিখিত এপিআইগুলি একটি ধারকটির বিভিন্ন অংশের মধ্যে পাস করার বার্তাগুলি একসাথে কাজ করে।


addMessageListener

একটি ফাংশন যুক্ত করে যা একটি নির্দিষ্ট ধরণের বার্তা শুনে। যখন এই ধরণের কোনও বার্তা sendMessage এপিআই (সাধারণত একটি ট্যাগ দ্বারা) ব্যবহার করে প্রেরণ করা হয়, তখন কলব্যাকটি সিঙ্ক্রোনালিভাবে চালানো হবে। কলব্যাকটি দুটি পরামিতি সহ চালিত হয়:

  1. messageType:string
  2. message:Object

যদি কোনও ক্লায়েন্টে কলব্যাক যুক্ত করা হয় তবে কলব্যাক ক্লায়েন্ট তৈরি করে এমন সমস্ত ইভেন্ট জুড়ে বার্তাগুলি গ্রহণ করবে। যদি কলব্যাকটি কেবলমাত্র একটি নির্দিষ্ট ইভেন্ট থেকে বার্তাগুলি গ্রহণ করে, তবে runContainer এপিআইয়ের onStart ফাংশনে bindToEvent ব্যবহার করে এই এপিআইকে ইভেন্টটিতে আবদ্ধ করুন। উদাহরণ দেখুন।

সিনট্যাক্স

const addMessageListener = require('addMessageListener');

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
messageType স্ট্রিং শোনার জন্য বার্তা টাইপ। মান যদি স্ট্রিং না হয় তবে এটি একটি স্ট্রিংয়ে জোর করা হবে।
callback ফাংশন প্রযোজ্য বার্তা প্রকারের একটি বার্তা প্রেরণ করা হলে কলব্যাকটি চালানোর জন্য। যদি কলব্যাক কোনও ফাংশন না হয় তবে এপিআই কিছুই করবে না।

উদাহরণ

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

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

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

সম্পর্কিত অনুমতি

use_message অনুমতি প্রয়োজন। কমপক্ষে অনুমতি দেওয়ার জন্য অনুমতিটি কনফিগার করতে হবে:

  • listen বা listen_and_send Usage সহ একটি বার্তা প্রকার।

hasMessageListener

প্রদত্ত বার্তার ধরণের জন্য যদি কোনও বার্তা শ্রোতা যুক্ত করা হয় তবে সত্য প্রত্যাবর্তন করে। অন্যথায় মিথ্যা ফেরত দেয়।

সিনট্যাক্স

const hasMessageListener = require('hasMessageListener');

hasMessageListener('send_pixel');

সম্পর্কিত অনুমতি

কোনোটিই নয়।


sendMessage

নিবন্ধিত শ্রোতাদের কাছে নির্দিষ্ট ধরণের একটি বার্তা প্রেরণ করে। এটি ধারকটি চালানো ক্লায়েন্টের কাছে একটি ট্যাগ থেকে বার্তা প্রেরণে ব্যবহার করা যেতে পারে।

সিনট্যাক্স

const sendMessage = require('sendMessage');

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

পরামিতি

প্যারামিটার টাইপ বর্ণনা
messageType স্ট্রিং প্রেরণে বার্তা প্রকার। মান যদি স্ট্রিং না হয় তবে এটি একটি স্ট্রিংয়ে জোর করা হবে।
message বস্তু প্রেরণ বার্তা। যদি বার্তাটি কোনও বস্তু না হয় তবে এপিআই কিছুই করবে না।

সম্পর্কিত অনুমতি

use_message অনুমতি প্রয়োজন। কমপক্ষে অনুমতি দেওয়ার জন্য অনুমতিটি কনফিগার করতে হবে:

  • listen_and_send বা send Usage সহ একটি বার্তা প্রকার।

Object

Object পদ্ধতি সরবরাহ করে এমন একটি বস্তু প্রদান করে।

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

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

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

freeze() পদ্ধতিটি স্ট্যান্ডার্ড লাইব্রেরি অবজেক্ট সরবরাহ করে refe ফ্রিজ () আচরণ। একটি হিমায়িত বস্তু আর পরিবর্তন করা যায় না; কোনও অবজেক্টকে হিমায়িত করা নতুন বৈশিষ্ট্যগুলিকে এতে যুক্ত হতে বাধা দেয়, বিদ্যমান বৈশিষ্ট্যগুলি অপসারণ থেকে এবং বিদ্যমান বৈশিষ্ট্যগুলির মানগুলি পরিবর্তন করা থেকে বিরত রাখে। freeze() যে একই জিনিসটি প্রবেশ করেছিল তা ফিরিয়ে দেয় A

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

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

সিনট্যাক্স

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

পরামিতি

অবজেক্ট.কি

প্যারামিটার টাইপ বর্ণনা
অবজেক্ট ইনপুট যেকোনো যার কীগুলি গণনা করতে হবে তার অবজেক্ট। যদি ইনপুটটি কোনও বস্তু না হয় তবে এটি কোনও বস্তুর সাথে জোর করা হবে।

Object.values

প্যারামিটার টাইপ বর্ণনা
অবজেক্ট ইনপুট যেকোনো যে অবজেক্টটি গণনা করতে হবে। যদি ইনপুটটি কোনও বস্তু না হয় তবে এটি কোনও বস্তুর সাথে জোর করা হবে।

Object.entries

প্যারামিটার টাইপ বর্ণনা
অবজেক্ট ইনপুট যেকোনো যে অবজেক্টটি গণনা করতে কী/মান জোড় করে। যদি ইনপুটটি কোনও বস্তু না হয় তবে এটি কোনও বস্তুর সাথে জোর করা হবে।

অবজেক্ট.ফ্রিজ

প্যারামিটার টাইপ বর্ণনা
অবজেক্ট ইনপুট যেকোনো অবজেক্ট হিমশীতল। যদি ইনপুট কোনও বস্তু না হয় তবে এটি হিমায়িত অবজেক্ট হিসাবে বিবেচিত হবে।

অবজেক্ট.ডিলিট

প্যারামিটার টাইপ বর্ণনা
অবজেক্ট ইনপুট যেকোনো মুছে ফেলার চাবি যার অবজেক্ট।
কীটোডিলিট স্ট্রিং মুছতে শীর্ষ-স্তরের কী।

উদাহরণ

const Object = require('Object');

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

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

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

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

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

Promise

এমন একটি বস্তু প্রদান করে যা প্রতিশ্রুতিগুলির সাথে ইন্টারঅ্যাক্ট করার জন্য পদ্ধতি সরবরাহ করে।

প্রতিশ্রুতিগুলি জাভাস্ক্রিপ্ট প্রতিশ্রুতির কার্যত সমতুল্য। প্রতিটি উদাহরণের তিনটি পদ্ধতি রয়েছে যা একটি প্রতিশ্রুতি ফিরিয়ে দেয় যা একটি প্রতিশ্রুতি নিষ্পত্তি হলে আরও পদক্ষেপের অনুমতি দেয়:

  • .then() এটি প্যারামিটার হিসাবে দুটি কলব্যাক লাগে: সাফল্যের মামলার জন্য একটি এবং ব্যর্থতার ক্ষেত্রে একটি।
  • .catch() - কেবল প্রত্যাখ্যাত কেসগুলি পরিচালনা করে। প্যারামিটার হিসাবে একটি কলব্যাক নেয়।
  • .finally() - প্রতিশ্রুতিটি সমাধান করা হয়েছে বা প্রত্যাখ্যান করা হয়েছে কিনা তা চালানোর জন্য কোডের জন্য একটি উপায় সরবরাহ করে। প্যারামিটার হিসাবে একটি কলব্যাক নেয় যা কোনও যুক্তি ছাড়াই অনুরোধ করা হয়।

একটি পরিবর্তনশীল যা একটি প্রতিশ্রুতি দেয় যা প্রতিশ্রুতির সমাধান করা মানকে সমান করে, বা যদি প্রতিশ্রুতি প্রত্যাখ্যান করে তবে false

উদাহরণ

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

Promise.all

একটি প্রতিশ্রুতি প্রদান করে যে হয়:

  • সমস্ত ইনপুটগুলি সমাধান হয়ে গেলে বা সমাধান করে
  • যখন কোনও ইনপুট প্রত্যাখ্যান করে তখন প্রত্যাখ্যান করে

সিনট্যাক্স

Promise.all(inputs);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
inputs অ্যারে মান বা প্রতিশ্রুতি একটি অ্যারে। যদি কোনও ইনপুট কোনও প্রতিশ্রুতি না হয় তবে ইনপুটটি এমনভাবে পাস করা হয় যেন এটি কোনও প্রতিশ্রুতির সমাধান করা মান। ইনপুটটি অ্যারে না হলে একটি ত্রুটি ছুড়ে দেয়।

উদাহরণ

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

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

সম্পর্কিত অনুমতি

কোনোটিই নয়।

Promise.create

একটি প্রতিশ্রুতি তৈরি করে যা জাভাস্ক্রিপ্ট প্রতিশ্রুতির কার্যত সমতুল্য।

সিনট্যাক্স

Promise.create(resolver);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
resolver ফাংশন একটি ফাংশন যা দুটি ফাংশন সহ আহ্বান করা হয় - সমাধান এবং প্রত্যাখ্যান। প্রত্যাবর্তিত প্রতিশ্রুতি সমাধান বা প্রত্যাখ্যান করবে যখন সংশ্লিষ্ট প্যারামিটারটি অনুরোধ করা হবে। রেজোলভার কোনও ফাংশন না হলে একটি ত্রুটি ছুড়ে দেয়।

উদাহরণ

const Promise = require('Promise');

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

সম্পর্কিত অনুমতি

কোনোটিই নয়।

পরীক্ষা API

এই এপিআইগুলি গুগল ট্যাগ ম্যানেজারে কাস্টম টেম্পলেটগুলির জন্য পরীক্ষা তৈরি করতে স্যান্ডবক্সযুক্ত জাভাস্ক্রিপ্ট পরীক্ষার সাথে কাজ করে। এই পরীক্ষার এপিআইগুলির কোনও require() বিবৃতি দরকার নেই। [কাস্টম টেম্পলেট পরীক্ষা সম্পর্কে আরও জানুন]।


assertApi

একটি ম্যাচার অবজেক্টকে ফেরত দেয় যা প্রদত্ত এপিআই সম্পর্কে সাবলীলভাবে দৃ ser ়তা তৈরি করতে ব্যবহার করা যেতে পারে।

সিনট্যাক্স

assertApi(apiName)

পরামিতি

প্যারামিটার টাইপ বর্ণনা
apiName স্ট্রিং এপিআইয়ের নাম যাচাই করতে; 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 এপিআই মডেল করা হয়েছে। এটি এমন একটি বস্তু প্রদান করে যা কোনও বিষয়ের মান সম্পর্কে সাবলীলভাবে দৃ ser ়তা তৈরি করতে ব্যবহার করা যেতে পারে। একটি দৃ ser ়তা ব্যর্থতা তাত্ক্ষণিকভাবে পরীক্ষা বন্ধ করবে এবং এটি ব্যর্থ হিসাবে চিহ্নিত করবে। তবে একটি পরীক্ষায় ব্যর্থতা অন্যান্য পরীক্ষার ক্ষেত্রে প্রভাবিত করবে না।

সিনট্যাক্স

assertThat(actual, opt_message)

পরামিতি

প্যারামিটার টাইপ বর্ণনা
actual যেকোনো সাবলীল চেকগুলিতে ব্যবহারের মান।
opt_message স্ট্রিং যদি দৃ ser ়তা ব্যর্থ হয় তবে প্রিন্ট করার জন্য al চ্ছিক বার্তা।

ম্যাচার্স

ম্যাচার বর্ণনা
isUndefined() বিষয়টি undefined বলে দাবি করে।
isDefined() দৃ ser ়ভাবে দাবি করে যে বিষয়টি undefined নয়।
isNull() বিষয়টি null বলে দাবি করে।
isNotNull() দৃ ser ়ভাবে যে বিষয়টি null নয়।
isFalse() বিষয়টি false বলে দাবি করে।
isTrue() বিষয়টি true যে দৃ ser ়ভাবে।
isFalsy() বিষয়টিকে মিথ্যা বলে দাবি করে। মিথ্যা মানগুলি undefined , null , false , NaN , 0 এবং '' (খালি স্ট্রিং)।
isTruthy() বিষয়টি সত্য যে সত্য। মিথ্যা মানগুলি undefined , null , false , NaN , 0 এবং '' (খালি স্ট্রিং)।
isNaN() দৃ ser ়ভাবে যে বিষয়টি ন্যান মান।
isNotNaN() দৃ ser ়ভাবে দাবি করে যে বিষয়টি ন্যানের পাশাপাশি কোনও মূল্য।
isInfinity() বিষয়টি ইতিবাচক বা নেতিবাচক অনন্ত বলে দাবি করে।
isNotInfinity() ইতিবাচক বা নেতিবাচক অনন্ত ছাড়াও বিষয়টির কোনও মান বলে দাবি করে।
isEqualTo(expected) দৃ ser ়ভাবে যে বিষয়টি প্রদত্ত মানের সমান। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়।
isNotEqualTo(expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি প্রদত্ত মানের সমান নয়। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়।
isAnyOf(...expected) দৃ ser ়ভাবে যে বিষয়টি প্রদত্ত মানের একটির সমান। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়।
isNoneOf(...expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি প্রদত্ত কোনও মানের সমান নয়। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়।
isStrictlyEqualTo(expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি প্রদত্ত মানের সাথে কঠোরভাবে সমান ( === )।
isNotStrictlyEqualTo(expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি প্রদত্ত মানের সাথে কঠোরভাবে সমান ( !== ) নয়।
isGreaterThan(expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি অর্ডার করা তুলনায় প্রদত্ত মান ( > ) এর চেয়ে বেশি।
isGreaterThanOrEqualTo(expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি অর্ডার করা তুলনায় >= মানটির চেয়ে বেশি বা সমান।
isLessThan(expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি অর্ডার করা তুলনার মধ্যে প্রদত্ত মান ( < ) এর চেয়ে কম।
isLessThanOrEqualTo(expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি অর্ডারযুক্ত তুলনায় প্রদত্ত মান ( <= ) এর চেয়ে কম বা সমান।
contains(...expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি একটি অ্যারে বা স্ট্রিং যা কোনও ক্রমে প্রদত্ত সমস্ত মান ধারণ করে। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়।
doesNotContain(...expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি একটি অ্যারে বা স্ট্রিং যা প্রদত্ত মানগুলির কোনওটিই ধারণ করে না। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়।
containsExactly(...expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি এমন একটি অ্যারে যা প্রদত্ত সমস্ত মানগুলি যে কোনও ক্রমে এবং অন্য কোনও মান ধারণ করে। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়।
doesNotContainExactly(...expected) দৃ ser ়ভাবে দাবি করে যে বিষয়টি একটি অ্যারে যা কোনও ক্রমে প্রদত্ত মানগুলি থেকে মানগুলির একটি আলাদা সেট রয়েছে। এটি একটি মান তুলনা, রেফারেন্স তুলনা নয়। অবজেক্টস এবং অ্যারেগুলির বিষয়বস্তুগুলি পুনরাবৃত্তভাবে তুলনা করা হয়।
hasLength(expected) দৃ ser ়ভাবে যে বিষয়টি প্রদত্ত দৈর্ঘ্যের সাথে একটি অ্যারে বা স্ট্রিং। মানটি অ্যারে বা স্ট্রিং না হলে দৃ ser ়তা সর্বদা ব্যর্থ হয়।
isEmpty() দৃ ser ়ভাবে দাবি করে যে বিষয়টি একটি অ্যারে বা স্ট্রিং যা খালি (দৈর্ঘ্য = 0)। মানটি অ্যারে বা স্ট্রিং না হলে দৃ ser ়তা সর্বদা ব্যর্থ হয়।
isNotEmpty() দৃ ser ়ভাবে যে বিষয়টি একটি অ্যারে বা স্ট্রিং যা খালি নয় (দৈর্ঘ্য> 0)। মানটি অ্যারে বা স্ট্রিং না হলে দৃ ser ়তা সর্বদা ব্যর্থ হয়।
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 স্ট্রিং Al চ্ছিক ত্রুটি বার্তা পাঠ্য।

উদাহরণ

fail('This test has failed.');

mock

mock এপিআই আপনাকে স্যান্ডবক্সযুক্ত এপিআইগুলির আচরণকে ওভাররাইড করতে দেয়। মক এপিআই টেমপ্লেট কোডে ব্যবহার করা নিরাপদ তবে এটি কেবল পরীক্ষার মোডে কার্যকর। প্রতিটি পরীক্ষা চালানোর আগে মকগুলি পুনরায় সেট করা হয়।

সিনট্যাক্স

mock(apiName, returnValue);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
apiName স্ট্রিং উপহাস করার জন্য এপিআই এর নাম; require()
returnValue যেকোনো এপিআইয়ের জন্য ফিরে আসার মান বা এপিআইয়ের জায়গায় ডাকা একটি ফাংশন। যদি returnValue কোনও ফাংশন হয় তবে সেই ফাংশনটি স্যান্ডবক্সড এপিআইয়ের জায়গায় বলা হয়; যদি returnValue কোনও ফাংশন ব্যতীত অন্য কিছু হয় তবে সেই মানটি স্যান্ডবক্সযুক্ত এপিআইয়ের জায়গায় ফিরে আসে।

উদাহরণ

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

mockObject

mockObject এপিআই আপনাকে স্যান্ডবক্সযুক্ত এপিআইগুলির আচরণকে ওভাররাইড করতে দেয় যা কোনও বস্তু ফিরিয়ে দেয়। এপিআই টেমপ্লেট কোডে ব্যবহার করা নিরাপদ তবে এটি কেবল পরীক্ষার মোডে কার্যকর। প্রতিটি পরীক্ষা চালানোর আগে মকগুলি পুনরায় সেট করা হয়।

সিনট্যাক্স

mockObject(apiName, objectMock);

পরামিতি

প্যারামিটার টাইপ বর্ণনা
apiName স্ট্রিং উপহাস করার জন্য এপিআই এর নাম; require()
objectMock বস্তু এপিআইয়ের জন্য ফিরে আসার মান বা এপিআইয়ের জায়গায় ডাকা একটি ফাংশন। অবশ্যই একটি বস্তু হতে হবে।

উদাহরণ

const storage = {};
let firestoreId = 1;

function asTestPromise(result) {
  return {
    then: (callback) => callback(result)
  };
}

mockObject('Firestore', {
  write: (collection, input) => {
    storage[collection + '/' + (++firestoreId)] = input;
    return asTestPromise(firestoreId);
  },
  read: (document) => asTestPromise({data: storage[document]})
});

runCode

প্রদত্ত ইনপুট ডেটা অবজেক্টের সাথে বর্তমান পরীক্ষার পরিবেশে টেমপ্লেটের কোডটি চালায়, অর্থাত্ কোড ট্যাবের সামগ্রী।

সিনট্যাক্স

runCode(data)

পরামিতি

প্যারামিটার টাইপ বর্ণনা
data বস্তু পরীক্ষায় ব্যবহৃত ডেটা অবজেক্ট।

রিটার্ন ভ্যালু

ভেরিয়েবল টেম্পলেটগুলির জন্য একটি ভেরিয়েবলের মান প্রদান করে; অন্যান্য সমস্ত টেম্পলেট ধরণের জন্য undefined ফেরত দেয়।

উদাহরণ

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