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

इस दस्तावेज़ में वेब कस्टम टेंप्लेट की अनुमतियों के बारे में बताया गया है.


हर अनुमति:

  • उन एपीआई से जांच की गई जिन्हें इनकी ज़रूरत है.
  • इस्तेमाल किए गए एपीआई के आधार पर, सैंडबॉक्स की गई JavaScript में अपने-आप पहचान की जाती है. ऐसा तब होता है, जब कस्टम टेंप्लेट एडिटर में बदलाव किए जाते हैं (तेज़ी से फ़ीडबैक लूप) शामिल होते हैं और जब कोड को कंपाइल किया जाता है (यह सत्यापित करने के लिए कि अनुमतियां लागू होती हैं).
  • कस्टम टेंप्लेट एडिटर में जाकर, अनुमति में बदलाव किया जा सकता है.
  • queryPermission एपीआई के ज़रिए, सैंडबॉक्स की गई JavaScript में क्वेरी की जा सकती है.

access_globals

डिसप्ले नेम: ग्लोबल वैरिएबल को ऐक्सेस करता है

जानकारी: इससे ग्लोबल वैरिएबल (इसमें ये शामिल हो सकते हैं) का ऐक्सेस मिलता है संवेदनशील एपीआई).

कॉन्फ़िगरेशन: ऐक्सेस की जा सकने वाली कुंजियों की सूची. हर बटन एक बिंदु होता है से अलग किया गया हो. उदाहरण के लिए: foo.bar हर पाथ में पहला टोकन यह नहीं होना चाहिए और न ही किसी JavaScript कीवर्ड के लिए, ब्राउज़र के ग्लोबल स्कोप के लिए पहले से तय की गई कुंजी का इस्तेमाल किया जाता है. पढ़ चुका है, उन चेकबॉक्स को लिखें और एक्ज़ीक्यूट करें जो ऐक्सेस को कंट्रोल करते हैं.

इसके लिए ज़रूरी है: 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');
}

access_local_storage

डिसप्ले नेम: डिवाइस के स्टोरेज को ऐक्सेस करता है

जानकारी: इससे लोकल स्टोरेज में तय की गई कुंजियों को ऐक्सेस करने की अनुमति मिलती है.

कॉन्फ़िगरेशन: लोकल स्टोरेज की उन कुंजियों की सूची जिन्हें ऐक्सेस किया जा सकता है. यह है किसी वाइल्डकार्ड के बिना, कुंजियों का आसान कलेक्शन. इसमें ऐसे चेकबॉक्स होते हैं जिन्हें पढ़ा और लिखा जाता है खाते का ऐक्सेस कंट्रोल करता है.

इसके लिए ज़रूरी है: 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);
}

access_template_storage

डिसप्ले नेम: टेंप्लेट के स्टोरेज को ऐक्सेस करता है

जानकारी: इससे उन टेंप्लेट को अस्थायी तौर पर सेव किए जा सकने वाले स्टोरेज को ऐक्सेस करने की अनुमति मिलती है जो हमेशा के लिए बनी रहती है.

कॉन्फ़िगरेशन: कोई नहीं

इसके लिए ज़रूरी है: 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

डिसप्ले नेम: रेफ़रल देने वाले का यूआरएल पढ़ता है

जानकारी: इससे आपको रेफ़रर के छोटे हिस्सों को पढ़ने का ऐक्सेस मिलता है.

कॉन्फ़िगरेशन: यहां दिए गए बूलियन से यह तय होता है कि रेफ़रर का कौनसा हिस्सा आसानी से पढ़ा जा सकता है. रेफ़रर का कोई हिस्सा सिर्फ़ तब पढ़ा जा सकता है, जब उससे जुड़ा हिस्सा true हो. कॉल करने वाला (कॉलर) getReferrerUrl को कॉल कर सकता है. इसके लिए कोई कॉम्पोनेंट नहीं दिया गया है अगर ये सभी बूलियन मान true पर सेट हैं, तो पूरा रेफ़रल देने वाला यूआरएल पाएं. अगर कोई मान नहीं है सेट है, तो डिफ़ॉल्ट वैल्यू 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

डिसप्ले नेम: यूआरएल को पढ़ता है

ब्यौरा: मौजूदा पेज के यूआरएल का कुछ हिस्सा या पूरा यूआरएल दिखाता है.

कॉन्फ़िगरेशन: यहां दिए गए बूलियन से यह तय होता है कि यूआरएल का कौनसा हिस्सा पढ़ें. यूआरएल के किसी हिस्से को सिर्फ़ तब पढ़ा जा सकता है, जब उससे जुड़ा हिस्सा सही है. कॉल करने वाला (कॉलर) getUrl को कॉल कर सकता है. इसके लिए कोई कॉम्पोनेंट नहीं दिया गया है, ताकि सिर्फ़ तब, जब ये सभी बूलियन true पर सेट हों. अगर कोई मान नहीं है सेट है, तो डिफ़ॉल्ट वैल्यू all है. अगर कोई वैल्यू सेट है, तो वैल्यू कोई कैटगरी होनी चाहिए कॉम्पोनेंट, इनमें से कोई एक कॉम्पोनेंट होता है: protocol, host, port, path, query, extension या fragment.

queryKeys: अगर क्वेरी चुनी जाती है, तो टेम्प्लेट लेखक क्वेरी कुंजियां जिन्हें वे पढ़ सकते हैं. यह कुंजियों का एक आसान कलेक्शन है. इसमें कोई वाइल्डकार्ड.

इसके लिए ज़रूरी है: getUrl

क्वेरी हस्ताक्षर: queryPermission('get_url', <optional url component>, <optional query key>)

अगर यूआरएल कॉम्पोनेंट दिया गया है, तो यह '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

डिसप्ले नेम: छिपे हुए iframe इंजेक्ट करता है

जानकारी: दिए गए यूआरएल के साथ, न दिखने वाला iframe इंजेक्ट करता है.

कॉन्फ़िगरेशन: यूआरएल पैटर्न की सूची

इसके लिए ज़रूरी है: 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

डिसप्ले नेम: स्क्रिप्ट इंजेक्ट करता है

जानकारी: इसकी मदद से, पेज में स्क्रिप्ट डाली जाती है.

कॉन्फ़िगरेशन: यूआरएल पैटर्न की सूची

इसके लिए ज़रूरी है: injectScript

क्वेरी हस्ताक्षर: queryPermission('inject_script', <url>)

ध्यान दें: यह तय करता है कि कस्टम टेंप्लेट, JavaScript को इंजेक्ट कर सकता है या नहीं. साथ ही, यह किस ऑरिजिन के लिए इस्तेमाल किया जा सकता है.

कोड का उदाहरण

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

read_data_layer

डिसप्ले नेम: डेटा लेयर को पढ़ता है

ब्यौरा: dataLayer से डेटा पढ़ता है.

कॉन्फ़िगरेशन: कुंजी मिलान एक्सप्रेशन का सेट, जहां कुंजी मिलान कोई बिंदुक के संदर्भ वाली सीरीज़, जिसके बाद में एक वाइल्डकार्ड है. की मैच एक्सप्रेशन यह तय करते हैं कि डेटा लेयर से किन प्रॉपर्टी को पढ़ा जा सकता है.

इसके लिए ज़रूरी है: 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);
}

read_character_set

डिसप्ले नेम: दस्तावेज़ के वर्ण सेट को पढ़ता है

ब्यौरा: 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();
}

read_event_metadata

डिसप्ले नेम: इवेंट का मेटाडेटा पढ़ता है

जानकारी: इवेंट कॉलबैक में मौजूद इवेंट का मेटाडेटा पढ़ता है

कॉन्फ़िगरेशन: कोई नहीं

इसके लिए ज़रूरी है: 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

डिसप्ले नेम: पिक्सल भेजता है

जानकारी: यह बताए गए यूआरएल पर जीईटी अनुरोध भेजता है. जवाब यह नहीं है प्रोसेस किया गया.

कॉन्फ़िगरेशन: अनुमति वाले यूआरएल पैटर्न की सूची.

इसके लिए ज़रूरी है: sendPixel

क्वेरी हस्ताक्षर: queryPermission('send_pixel', <url>)

अहम जानकारी: यह तय करता है कि कस्टम टेंप्लेट, जीईटी अनुरोध भेज सकता है या नहीं. साथ ही, किस ऑरिजिन से यह ऐसा किया जा सकता है.

कोड का उदाहरण

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

set_cookies

डिसप्ले नेम: कुकी सेट करता है

जानकारी: इस विकल्प की मदद से, किसी खास नाम और पैरामीटर के साथ कुकी सेट की जाती है.

कॉन्फ़िगरेशन: मंज़ूर किए गए कुकी के नामों की टेबल, जिसमें हर एक वैकल्पिक नाम होगा नाम, डोमेन, पाथ, 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);
}

write_data_layer

डिसप्ले नेम: डेटा लेयर में बदलाव करता है

विवरण: डेटा स्तर में डेटा लिखता है.

कॉन्फ़िगरेशन: कुंजी मिलान एक्सप्रेशन का सेट, जहां कुंजी मिलान कोई बिंदुक के संदर्भ वाली सीरीज़, जिसके बाद में एक वाइल्डकार्ड है. की मैच एक्सप्रेशन यह कंट्रोल करते हैं कि डेटा लेयर को कौनसी प्रॉपर्टी लिखी जा सकती हैं.

इसके लिए ज़रूरी है: 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'});
}