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

নীতিগুলি একটি ওয়েব পৃষ্ঠায় প্রয়োগ করা হয়। যখন একটি ধারক পৃষ্ঠায় চলে, তখন নির্দিষ্ট বৈশিষ্ট্য এবং কার্যকারিতা কীভাবে ব্যবহার করা যেতে পারে তা নিয়ন্ত্রণ করতে ট্যাগ ম্যানেজারের কাস্টম টেমপ্লেট সংজ্ঞাগুলিতে নীতিগুলি প্রয়োগ করা হয়৷ নীতিগুলি gtag('policy', ...) API এর সাথে প্রয়োগ করা হয়।

gtag('policy', ...) API-এর জন্য dataLayer এবং gtag() সংজ্ঞা প্রয়োজন। স্ক্রিপ্টে পরে gtag('policy', ...) আগে আপনার কোডে dataLayer এবং gtag() সংজ্ঞায়িত করা হয়েছে তা নিশ্চিত করুন:

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

কাস্টম টেমপ্লেট অনুমতির জন্য নীতি সেট করতে একটি ওয়েব পৃষ্ঠায় gtag('policy', ...) API ব্যবহার করুন:

gtag('policy', <permissionId>, <function>)

<permissionId> আর্গুমেন্ট হল সমর্থিত অনুমতির প্রকারগুলির একটি, যেমন inject_script । যখনই একটি কন্টেইনার সেই অনুমতিটি অনুমোদিত কিনা তা পরীক্ষা করতে চায় তখনই নীতিটি কল করা হবে৷

gtag('policy', 'inject_script', function(containerId, permissionId, data) {
  // Specific inject_script check goes here.
});

সমস্ত পলিসি চেকের সাথে ইন্টারঅ্যাক্ট করতে 'all' নির্দিষ্ট করুন।

gtag('policy', 'all', function(containerId, permissionId, data) {
  // System-wide check goes here.
});

তৃতীয় যুক্তি— <function> — একটি ফাংশন যা এই স্বাক্ষরের সাথে নির্দেশিত নীতি প্রয়োগ করে:

function(containerId, permissionId, data) {...}
  • containerId হল ট্যাগ ম্যানেজার কন্টেইনার আইডি, যেমন 'GTM-1234'
  • permissionId হল একটি স্ট্রিং যা চেক করা নীতির ধরন নির্দিষ্ট করে।
  • data হল এমন একটি বস্তু যাতে নির্দেশিত অনুমতির প্রকারের জন্য কোনো প্রাসঙ্গিক তথ্য থাকে, যেমন 'send_pixel' অনুমতির জন্য 'url'

একটি নীতি ফাংশন একটি অনুমতি অনুরোধ প্রত্যাখ্যান করে যখন এটি false ফেরত দেয় বা একটি ব্যতিক্রম নিক্ষেপ করে। প্রিভিউ মোড সক্ষম হলে ডিবাগ ফলকের ত্রুটি বিভাগে কোনো ধরনের string বা Error কোনো ব্যতিক্রম প্রদর্শিত হবে। যখন একাধিক পলিসি চেক নিবন্ধিত হয়, তখন প্রতিটি চেককে ডাকা হয় এবং প্রতিটি চেকের একটি নীতি অনুরোধ প্রত্যাখ্যান করার ক্ষমতা থাকে।

এই উদাহরণটি একটি নীতি তৈরি করে যা 'inject_script' অনুমতি পরীক্ষা করে:

gtag('policy', 'inject_script', function(containerId, permissionId, data) {

  // reference the url of the script to be injected
  let url = data.url || '';

  // if the url of the injected script exactly matches, allow it.
  // otherwise throw an error
  if (url === 'https://scripts.example.com/analytics.js') {
    return true;
  } else {
    throw 'Only permitted to inject https://scripts.example.com/analytics.js';
  }
});

এই উদাহরণটি একাধিক নীতি পরিস্থিতি পরীক্ষা করতে 'all' কীওয়ার্ড ব্যবহার করে:

gtag('policy', 'all', function(containerId, permissionId, data) {

  // Only set policy for 1 specific container.
  // This enables other containers loaded on the page to
  // operate without restrictions on permissions.
  if (container != 'GTM-4321') return true;

  // Since the policy is 'all', adjust permissions conditionally.
  switch (permissionId) {

    case 'send_pixel':
      return true;

    case 'write_globals':
      return data.key && data.key == '_gaq';

    case 'inject_script':
      let url = data.url || '';
      if (url.indexOf('https://example.com') != 0)
        throw 'Only example.com scripts are permitted';

    default:
      // IT staff decides that all unknown permissions
      // are rejected.
      return false;
  }
});