कस्टम टेंप्लेट से जुड़ी नीतियां

नीतियां वेब पेज पर लागू की जाती हैं. जब कंटेनर, पेज पर चलता है, तो Tag Manager की कस्टम टेंप्लेट डेफ़िनिशन पर नीतियां लागू की जाती हैं. इससे यह तय किया जाता है कि खास सुविधाओं और फ़ंक्शन का इस्तेमाल किस तरह किया जा सकता है. नीतियां gtag('policy', ...) एपीआई के साथ लागू की जाती हैं.

gtag('policy', ...) एपीआई के लिए dataLayer और gtag() की परिभाषाएं ज़रूरी हैं. स्क्रिप्ट में gtag('policy', ...) को कॉल करने से पहले, पक्का करें कि आपके कोड में dataLayer और gtag() के बारे में बताया गया हो:

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

कस्टम टेंप्लेट की अनुमतियों के लिए नीतियां सेट करने के लिए, किसी वेब पेज पर gtag('policy', ...) एपीआई का इस्तेमाल करें:

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, Tag Manager कंटेनर आईडी है, जैसे कि '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;
  }
});