কাস্টম টেমপ্লেট অনুমতি

এই নথিতে ওয়েব কাস্টম টেমপ্লেটের অনুমতির রূপরেখা রয়েছে।


প্রতিটি অনুমতি হল:

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

অ্যাক্সেস_গ্লোবাল

প্রদর্শনের নাম: গ্লোবাল ভেরিয়েবল অ্যাক্সেস করে

বর্ণনা: একটি বিশ্বব্যাপী পরিবর্তনশীল (সম্ভাব্যভাবে সংবেদনশীল API সহ) অ্যাক্সেসের অনুমতি দেয়।

কনফিগারেশন: কীগুলির তালিকা যা অ্যাক্সেস করা যেতে পারে। প্রতিটি কী একটি বিন্দু বিভক্ত পথ। উদাহরণস্বরূপ: foo.bar প্রতিটি পথের প্রথম টোকেন ব্রাউজার গ্লোবাল স্কোপের পূর্বনির্ধারিত কী বা জাভাস্ক্রিপ্ট কীওয়ার্ড হতে হবে না। অ্যাক্সেস পরিচালনা করে এমন চেকবক্সগুলি পড়া, লিখতে এবং কার্যকর করে৷

এর দ্বারা প্রয়োজনীয়: setInWindow , copyFromWindow , callInWindow , createQueue , createArgumentsQueue

প্রশ্ন স্বাক্ষর: queryPermission('access_globals', 'read', <key to read from>) অথবা queryPermission('access_globals', 'write', <key to write to>) অথবা queryPermission('access_globals', 'readwrite', <key to read and write>) বা queryPermission('access_globals', 'execute', <key of function to execute>)

নোট: একটি কাস্টম টেমপ্লেট বিশ্বব্যাপী মান পড়তে এবং/বা লিখতে পারে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
  const dataLayerPush = createQueue('dataLayer');
}

অ্যাক্সেস_লোকাল_স্টোরেজ

প্রদর্শনের নাম: স্থানীয় স্টোরেজ অ্যাক্সেস করে

বর্ণনা: স্থানীয় সঞ্চয়স্থানে নির্দিষ্ট কীগুলিতে অ্যাক্সেসের অনুমতি দেয়।

কনফিগারেশন: স্থানীয় স্টোরেজ কীগুলির তালিকা যা অ্যাক্সেস করা যেতে পারে। এটি কীগুলির একটি সাধারণ বিন্যাস, কোন ওয়াইল্ডকার্ড ছাড়াই। পড়া এবং লেখার চেকবক্স রয়েছে যা অ্যাক্সেস নিয়ন্ত্রণ করে।

এর দ্বারা প্রয়োজনীয়: localStorage

প্রশ্ন স্বাক্ষর: queryPermission('access_local_storage', 'read', <key to read from>) অথবা queryPermission('access_local_storage', 'write', <key to write to>) অথবা queryPermission('access_local_storage', 'readwrite', <key to read and write>)

উদাহরণ কোড

const queryPermission = require('queryPermission');
const localStorage = require('localStorage');
const key = 'my_key';
if (queryPermission('access_local_storage', 'read', key)) {
  const value = localStorage.getItem(key);
}

অ্যাক্সেস_টেমপ্লেট_স্টোরেজ

প্রদর্শনের নাম: টেমপ্লেট স্টোরেজ অ্যাক্সেস করে

বর্ণনা: টেমপ্লেটের জন্য অস্থায়ী সঞ্চয়স্থানে অ্যাক্সেসের অনুমতি দেয় যা পৃষ্ঠার জীবনকাল ধরে চলতে পারে।

কনফিগারেশন: কোনোটিই নয়

এর দ্বারা প্রয়োজনীয়: templateStorage

প্রশ্ন স্বাক্ষর: queryPermission('access_template_storage')

উদাহরণ কোড

const queryPermission = require('queryPermission');
const templateStorage = require('templateStorage');
const key = 'my_key';
if (queryPermission('access_template_storage')) {
  const value = templateStorage.getItem(key);
}

get_cookies

প্রদর্শনের নাম: কুকি মান(গুলি) পড়ে

বর্ণনা: নির্দিষ্ট নামের সাথে কুকিজের মান পড়ে।

কনফিগারেশন: পড়ার জন্য অনুমোদিত কুকিজের নামের তালিকা।

এর দ্বারা প্রয়োজনীয়: getCookieValues

প্রশ্ন স্বাক্ষর: queryPermission('get_cookies', <name>)

দ্রষ্টব্য: একটি কুকির নামের উপর নির্ভর করে পড়া যাবে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const getCookieValues = require('getCookieValues');
const cookieName = 'info';
let cookieValues;
if (queryPermission('get_cookies', cookieName)) {
  cookieValues = getCookieValues(cookieName);
}

get_referrer

প্রদর্শনের নাম: রেফারার URL পড়ে

বর্ণনা: রেফারারের সংকীর্ণ অংশে পড়ার অ্যাক্সেসের অনুমতি দেয়।

কনফিগারেশন: নিম্নলিখিত বুলিয়ানগুলি রেফারারের কোন অংশটি পড়া যেতে পারে তা নিয়ন্ত্রণ করে। রেফারারের একটি প্রদত্ত অংশ শুধুমাত্র তখনই পড়া যাবে যদি সংশ্লিষ্ট অংশটি true হয়। এই সমস্ত বুলিয়ান true সেট করা থাকলে কলার সম্পূর্ণ রেফারার URL পেতে নির্দিষ্ট কোনো উপাদান ছাড়া getReferrerUrl কল করতে পারে। যদি কোন মান সেট করা না থাকে, ডিফল্ট মান হল all । যদি একটি মান সেট করা হয়, মানটি অবশ্যই উপাদানগুলির একটি অ্যারে হতে হবে যেখানে একটি উপাদান নিম্নলিখিতগুলির মধ্যে একটি: protocol , host , port , path , query , বা extension

queryKeys : যদি ক্যোয়ারী নির্বাচন করা হয়, তাহলে টেমপ্লেট লেখক আরও ক্যোয়ারী কীগুলির সেটটি সীমিত করতে পারে যেগুলি থেকে তারা পড়তে পারে। এটি কীগুলির একটি সাধারণ বিন্যাস, কোন ওয়াইল্ডকার্ড ছাড়াই।

এর দ্বারা প্রয়োজনীয়: getReferrerUrl , getReferrerQueryParameters

প্রশ্ন স্বাক্ষর: queryPermission('get_referrer', <url_component>)

উদাহরণ কোড

const queryPermission = require('queryPermission');
const getReferrerUrl = require('getReferrerUrl');
let referrer;
if (queryPermission('get_referrer', 'query')) {
  referrer = getReferrerUrl('queryParams');
}

get_url

প্রদর্শনের নাম: ইউআরএল পড়ে

বর্ণনা: বর্তমান পৃষ্ঠার অংশ বা সমস্ত URL প্রদান করে।

কনফিগারেশন: নিম্নলিখিত বুলিয়ানগুলি ইউআরএলের কোন অংশ পড়া যাবে তা নিয়ন্ত্রণ করে। URL এর একটি প্রদত্ত অংশ শুধুমাত্র তখনই পড়া যাবে যদি সংশ্লিষ্ট অংশটি সত্য হয়। কলার পুরো ইউআরএল পাওয়ার জন্য নির্দিষ্ট কোনো কম্পোনেন্ট ছাড়া getUrl কল করতে পারে যদি এবং শুধুমাত্র এই সমস্ত বুলিয়ান true সেট করা থাকে। যদি কোন মান সেট করা না থাকে, ডিফল্ট মান হল all । যদি একটি মান সেট করা হয়, মানটি অবশ্যই উপাদানগুলির একটি অ্যারে হতে হবে যেখানে একটি উপাদান নিম্নলিখিতগুলির মধ্যে একটি: protocol , host , port , path , query , extension , বা fragment

queryKeys : যদি ক্যোয়ারী নির্বাচন করা হয়, তাহলে টেমপ্লেট লেখক আরও ক্যোয়ারী কীগুলির সেটটি সীমিত করতে পারে যেগুলি থেকে তারা পড়তে পারে। এটি কীগুলির একটি সাধারণ বিন্যাস, কোন ওয়াইল্ডকার্ড ছাড়াই।

এর দ্বারা প্রয়োজনীয়: getUrl

ক্যোয়ারী স্বাক্ষর: queryPermission('get_url', <optional url component>, <optional query key>)

সরবরাহ করা হলে, Url উপাদানটি 'protocol' , 'host' , 'port' , 'path' , 'query' , 'extension' , 'fragment' এর একটি হওয়া উচিত। যদি বাদ দেওয়া হয়, অনুমতি ক্যোয়ারী পুরো ইউআরএল অ্যাক্সেসের জন্য একটি অনুরোধ।

সরবরাহ করা হলে, ক্যোয়ারী কীটি কোয়েরি স্ট্রিং আর্গুমেন্ট হওয়া উচিত যা টেমপ্লেট কোড পড়তে চায়।

দ্রষ্টব্য: বর্তমান অবস্থান থেকে একটি কাস্টম টেমপ্লেট পড়তে পারে কিনা তা নিয়ন্ত্রণ করে। অবস্থানের একটি নির্দিষ্ট অংশে সীমাবদ্ধ করার অনুমতি দেয়।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const getUrl = require('getUrl');
if (queryPermission('get_url', 'query', 'gclid')) {
  const gclid = getUrl('query', false, null, 'gclid');
}

inject_hidden_iframe

প্রদর্শনের নাম: লুকানো আইফ্রেমগুলি ইনজেক্ট করে

বর্ণনা: একটি প্রদত্ত URL সহ একটি অদৃশ্য আইফ্রেম ইনজেক্ট করে।

কনফিগারেশন: URL প্যাটার্নের তালিকা

এর দ্বারা প্রয়োজনীয়: injectHiddenIframe

প্রশ্ন স্বাক্ষর: queryPermission('inject_hidden_iframe', <url>)

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট একটি অদৃশ্য iFrame ইনজেক্ট করতে পারে কিনা এবং কোন উৎস থেকে এটি তা করতে পারে তা নিয়ন্ত্রণ করে৷

উদাহরণ কোড

const queryPermission = require('queryPermission');
const injectHiddenIframe = require('injectHiddenIframe');
const url = 'https://www.example.com/iframes';
if (queryPermission('inject_hidden_iframe', url)) {
  injectHiddenIframe(url);
}

inject_script

প্রদর্শনের নাম: স্ক্রিপ্ট ইনজেক্ট করে

বর্ণনা: পৃষ্ঠায় একটি স্ক্রিপ্ট ইনজেক্ট করে।

কনফিগারেশন: URL প্যাটার্নের তালিকা

এর দ্বারা প্রয়োজনীয়: injectScript

প্রশ্ন স্বাক্ষর: queryPermission('inject_script', <url>)

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট জাভাস্ক্রিপ্ট ইনজেক্ট করতে পারে কিনা এবং এটি কোন উৎস থেকে তা করতে পারে তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const injectScript = require('injectScript');
const url = 'https://www.example.com?api.js';
if (queryPermission('inject_script', url)) {
  injectScript(url);
}

লগিং

প্রদর্শনের নাম: কনসোলে লগ

বর্ণনা: বিকাশকারী কনসোল এবং GTM এর পূর্বরূপ মোডে লগ করে।

কনফিগারেশন: লগ ইন উৎপাদন সক্ষম করার বিকল্প। শুধুমাত্র ডিবাগ/প্রিভিউতে লগিং সক্ষম করতে ডিফল্ট। অনুমতি অস্বীকৃত হলে, logToConsole একটি ত্রুটি নিক্ষেপ করবে না, কিন্তু লগ বার্তাটি দমন করবে।

এর দ্বারা প্রয়োজনীয়: logToConsole

প্রশ্ন স্বাক্ষর: queryPermission('logging')

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট বিকাশকারী কনসোলে লগ করতে পারে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const logToConsole = require('logToConsole');
// Note that it's fine to call log, since the log call will be ignored if
// logging isn't permitted in the current environment.
logToConsole('diagnostic info');

পড়া_ডেটা_লেয়ার

প্রদর্শনের নাম: ডেটা স্তর পড়ে

বর্ণনা: ডেটা লেয়ার থেকে ডেটা পড়ে।

কনফিগারেশন: কী ম্যাচ এক্সপ্রেশনের সেট, যেখানে একটি কী ম্যাচ ডটেড রেফারেন্সের একটি অগ্রণী সিরিজ হতে পারে, একটি ট্রেলিং ওয়াইল্ডকার্ড সহ। কী ম্যাচ এক্সপ্রেশনগুলি ডাটা স্তর থেকে কোন বৈশিষ্ট্যগুলি পড়া যেতে পারে তা নিয়ন্ত্রণ করে৷

এর দ্বারা প্রয়োজনীয়: copyFromDataLayer

প্রশ্ন স্বাক্ষর: queryPermission('read_data_layer', <data layer key to read from>)

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট ডেটা স্তর থেকে পড়তে পারে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const copyFromDataLayer = require('copyFromDataLayer');
const dlKey = 'foo.bar';
if (queryPermission('read_data_layer', dlKey)) {
  const dlContents = copyFromDataLayer(dlKey);
}

পড়া_অক্ষর_সেট

প্রদর্শনের নাম: নথির অক্ষর সেট পড়ে

বর্ণনা: document.characterSet পড়ে।

কনফিগারেশন: কোনোটিই নয়

এর দ্বারা প্রয়োজনীয়: readCharacterSet

প্রশ্ন স্বাক্ষর: queryPermission('read_character_set')

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট document.characterSet পড়তে পারে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const readCharacterSet = require('readCharacterSet');
if (queryPermission('read_character_set')) {
  const characterSet = readCharacterSet();
}

Read_container_data

প্রদর্শনের নাম: কন্টেইনার ডেটা পড়ে

বর্ণনা: ধারক সম্পর্কে ডেটা পড়ে।

কনফিগারেশন: কোনোটিই নয়

এর দ্বারা প্রয়োজনীয়: getContainerVersion

প্রশ্ন স্বাক্ষর: queryPermission('read_container_data')

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট কন্টেইনার সম্পর্কে ডেটা পড়তে পারে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const getCookieValues = require('getContainerVersion');
let version;
if (queryPermission('read_container_data')) {
  version = getContainerVersion();
}

পড়ুন_ইভেন্ট_মেটাডেটা

প্রদর্শনের নাম: ইভেন্ট মেটাডেটা পড়ে

বর্ণনা: ইভেন্ট কলব্যাকে ইভেন্ট মেটাডেটা পড়ে

কনফিগারেশন: কোনোটিই নয়

এর দ্বারা প্রয়োজনীয়: addEventCallback

প্রশ্ন স্বাক্ষর: queryPermission('read_event_metadata')

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট কলব্যাকে ইভেন্ট মেটাডেটা পড়তে পারে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const addEventCallback = require('addEventCallback');
if (queryPermission('read_event_metadata')) {
  addEventCallback((containerId, eventMetadata) => {
    // Read event metadata.
  });
}

read_title

প্রদর্শনের নাম: নথির শিরোনাম পড়ে

বর্ণনা: document.title পড়ে।

কনফিগারেশন: কোনোটিই নয়

দ্বারা প্রয়োজনীয়: readTitle

প্রশ্ন স্বাক্ষর: queryPermission('read_title')

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট document.title পড়তে পারে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const readTitle = require('readTitle');
if (queryPermission('read_title')) {
  const title = readTitle();
}

send_pixel

প্রদর্শনের নাম: পিক্সেল পাঠায়

বর্ণনা: একটি নির্দিষ্ট URL-এ একটি GET অনুরোধ পাঠায়। প্রতিক্রিয়া প্রক্রিয়া করা হয় না.

কনফিগারেশন: অনুমোদিত URL প্যাটার্নের তালিকা।

এর দ্বারা প্রয়োজনীয়: sendPixel

প্রশ্ন স্বাক্ষর: queryPermission('send_pixel', <url>)

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট একটি GET অনুরোধ পাঠাতে পারে কিনা এবং কোন উৎস থেকে এটি তা করতে পারে তা নিয়ন্ত্রণ করে৷

উদাহরণ কোড

const queryPermission = require('queryPermission');
const sendPixel = require('sendPixel');
const url = 'https://www.example.com?foo=3';
if (queryPermission('send_pixel', url)) {
  sendPixel(url);
}

সেট_কুকিজ

প্রদর্শনের নাম: একটি কুকি সেট করে

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

কনফিগারেশন: অনুমোদিত কুকি নামের একটি টেবিল, প্রতিটিতে নাম, ডোমেন, পাথ, secure বৈশিষ্ট্য এবং মেয়াদ শেষ হওয়ার উপর ঐচ্ছিক সীমাবদ্ধতা রয়েছে।

দ্বারা প্রয়োজনীয়: setCookie

প্রশ্ন স্বাক্ষর: queryPermission('set_cookies', <name>, <options>)

দ্রষ্টব্য: কুকির নাম, ডোমেন, পাথ, secure বৈশিষ্ট্য এবং মেয়াদ শেষ হওয়ার উপর নির্ভর করে একটি কুকি লেখা যাবে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const setCookie = require('setCookie');
const options = {
  'domain': 'www.example.com',
  'path': '/',
  'max-age': 60*60*24*365,
  'secure': true
};
if (queryPermission('set_cookies', 'info', options)) {
  setCookie('info', 'xyz', options);
}

লিখুন_ডেটা_লেয়ার

প্রদর্শনের নাম: ডাটা লেয়ার লেখে

বর্ণনা: ডেটা লেয়ারে ডেটা লেখে।

কনফিগারেশন: কী ম্যাচ এক্সপ্রেশনের সেট, যেখানে একটি কী ম্যাচ ডটেড রেফারেন্সের একটি অগ্রণী সিরিজ হতে পারে, একটি ট্রেলিং ওয়াইল্ডকার্ড সহ। কী ম্যাচ এক্সপ্রেশনগুলি নিয়ন্ত্রণ করে কোন বৈশিষ্ট্যগুলি ডেটা স্তরে লিখতে পারে৷

এর দ্বারা প্রয়োজনীয়: gtagSet

প্রশ্ন স্বাক্ষর: queryPermission('write_data_layer', <data layer key to write from>)

দ্রষ্টব্য: একটি কাস্টম টেমপ্লেট ডেটা স্তরে লিখতে পারে কিনা তা নিয়ন্ত্রণ করে।

উদাহরণ কোড

const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
  gtagSet({dlKey: 'baz'});
}