कॉन्टेंट की सुरक्षा के बारे में नीति के साथ Tag Manager का इस्तेमाल करना

कॉन्टेंट की सुरक्षा के लिए नीति (सीएसपी), वेब की सुरक्षा का एक ऐसा स्टैंडर्ड है जिसे ज़्यादातर ब्राउज़र पर इस्तेमाल किया जा सकता है. इसका मकसद, इंजेक्शन पर आधारित कुछ तरह के हमलों को रोकना है. इसके लिए, डेवलपर को यह कंट्रोल दिया जाता है कि उनके ऐप्लिकेशन कौनसे रिसॉर्स लोड करें. सीएसपी का इस्तेमाल करने वाली साइटों पर Google Tag Manager को डिप्लॉय करने का तरीका जानने के लिए, इस गाइड का इस्तेमाल करें.

सीएसपी का इस्तेमाल करने के लिए, कंटेनर टैग चालू करना

सीएसपी वाले किसी पेज पर Google Tag Manager का इस्तेमाल करने के लिए, सीएसपी को Tag Manager के कंटेनर कोड को चलाने की अनुमति देनी होगी. यह कोड, इनलाइन JavaScript कोड के तौर पर बनाया जाता है. यह gtm.js स्क्रिप्ट को इंजेक्ट करता है. इसे कई तरीकों से किया जा सकता है. जैसे, नॉनस या हैश का इस्तेमाल करके. हमारा सुझाव है कि नॉनस का इस्तेमाल किया जाए. यह एक ऐसी रैंडम वैल्यू होनी चाहिए जिसका अनुमान न लगाया जा सके. सर्वर, हर जवाब के लिए इसे अलग-अलग जनरेट करता है. Content-Security-Policy के script-src-elem डायरेक्टिव में, नॉनस की वैल्यू डालें:

Content-Security-Policy:
script-src-elem 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com www.google.com

इसके बाद, Tag Manager के इनलाइन कंटेनर कोड के नॉनस-अवेयर वर्शन का इस्तेमाल करें. इनलाइन स्क्रिप्ट एलिमेंट पर, नॉनस एट्रिब्यूट की वैल्यू को इसी वैल्यू पर सेट करें:

<!-- Google Tag Manager -->
<script nonce='{SERVER-GENERATED-NONCE}'>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;var n=d.querySelector('[nonce]');
n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

इसके बाद, Tag Manager, पेज में जोड़ी गई सभी स्क्रिप्ट में नॉनस को शामिल करेगा.

इनलाइन स्क्रिप्ट को चलाने की अनुमति देने के अन्य तरीके भी हैं. जैसे, सीएसपी में इनलाइन स्क्रिप्ट का हैश डालना.

अगर नॉनस या हैश के सुझाए गए तरीके काम नहीं करते हैं, तो सीएसपी के script-src-elem सेक्शन में 'unsafe-inline' डायरेक्टिव जोड़कर, Tag Manager की इनलाइन स्क्रिप्ट को चलाने की अनुमति दी जा सकती है.

इस तरीके का इस्तेमाल करने के लिए, सीएसपी में ये डायरेक्टिव होने चाहिए:

डायरेक्टिव कॉन्टेंट
script-src-elem 'unsafe-inline' https://www.googletagmanager.com
img-src www.googletagmanager.com
connect-src www.googletagmanager.com www.google.com

कस्टम JavaScript वैरिएबल

कस्टम JavaScript वैरिएबल को लागू करने के तरीके की वजह से, सीएसपी की मौजूदगी में उनकी वैल्यू undefined होगी. ऐसा तब तक होगा, जब तक सीएसपी के script-src सेक्शन में 'unsafe-eval' डायरेक्टिव नहीं दिया जाता.

डायरेक्टिव कॉन्टेंट
script-src 'unsafe-eval'

झलक मोड

Google Tag Manager के झलक मोड का इस्तेमाल करने के लिए, सीएसपी में ये डायरेक्टिव शामिल होने चाहिए:

डायरेक्टिव कॉन्टेंट
script-src-elem https://www.googletagmanager.com https://tagmanager.google.com
style-src https://www.googletagmanager.com https://tagmanager.google.com https://fonts.googleapis.com
img-src https://www.googletagmanager.com https://ssl.gstatic.com https://www.gstatic.com
font-src https://fonts.gstatic.com data:

Google Analytics

Google Analytics टैग का इस्तेमाल करने के लिए, सीएसपी में ये डायरेक्टिव शामिल होने चाहिए. 1 से मार्क किए गए एंडपॉइंट, खास तौर पर विज्ञापन सुविधाओं के लिए हैं. हालांकि, हमारा सुझाव है कि इन्हें शुरुआती सेटअप के दौरान शामिल किया जाए. इससे, अगर बाद में Google Ads को लिंक किया जाता है, तो आपको सीएसपी को अपडेट करने की ज़रूरत नहीं पड़ेगी.

डायरेक्टिव कॉन्टेंट
script-src-elem https://www.googletagmanager.com
img-src https://*.google-analytics.com
https://www.googletagmanager.com
https://*.g.doubleclick.net 1
https://*.google.com 1
https://*.google.<TLD> 1
connect-src https://*.google-analytics.com
https://*.analytics.google.com
https://www.googletagmanager.com
https://*.g.doubleclick.net 1
https://*.google.com 1
https://*.google.<TLD> 1
https://pagead2.googlesyndication.com 1
frame-src https://www.googletagmanager.com 1

1 विज्ञापन एंडपॉइंट: इन डोमेन की ज़रूरत सिर्फ़ Google Analytics के उन डिप्लॉयमेंट के लिए होती है जो Google Ads से लिंक हैं या विज्ञापन सुविधाओं का इस्तेमाल कर रहे हैं.

Google Ads के कन्वर्ज़न, रीमार्केटिंग या कन्वर्ज़न लिंक करने वाले टैग का इस्तेमाल करने के लिए, सीएसपी में ये डायरेक्टिव शामिल होने चाहिए:

डायरेक्टिव कॉन्टेंट
script-src-elem https://www.googleadservices.com https://www.google.com https://www.googletagmanager.com
https://pagead2.googlesyndication.com https://googleads.g.doubleclick.net
img-src https://www.googletagmanager.com https://googleads.g.doubleclick.net https://www.google.com
https://pagead2.googlesyndication.com https://www.googleadservices.com
https://google.com https://www.google.<TLD>
frame-src https://www.googletagmanager.com
connect-src https://pagead2.googlesyndication.com https://www.googleadservices.com https://googleads.g.doubleclick.net
https://ad.doubleclick.net https://www.google.com https://google.com https://www.google.<TLD>

सुरक्षित कॉन्टेक्स्ट में चलने के दौरान, Google Ads के उपयोगकर्ता डेटा के बीकन का इस्तेमाल करने के लिए, सीएसपी में ये डायरेक्टिव शामिल होने चाहिए:

डायरेक्टिव कॉन्टेंट
script-src-elem https://www.googletagmanager.com
frame-src https://www.googletagmanager.com
connect-src https://google.com https://www.google.com

Google Ads के उपयोगकर्ता डेटा का बीकन, असुरक्षित कॉन्टेक्स्ट में नहीं चलता. इसलिए, इन मामलों में सीएसपी का कॉन्फ़िगरेशन लागू नहीं होता.

Floodlight

Floodlight के उपयोगकर्ता, इन कॉन्फ़िगरेशन का इस्तेमाल करके सीएसपी चालू कर सकते हैं. <FLOODLIGHT-CONFIG-ID> वैल्यू को, Floodlight के किसी खास विज्ञापन देने वाले व्यक्ति या कंपनी के आईडी या * से बदलें, ताकि किसी भी विज्ञापन देने वाले व्यक्ति या कंपनी के आईडी को अनुमति दी जा सके:

सभी उपयोगकर्ताओं के लिए:

डायरेक्टिव कॉन्टेंट
img-src https://ad.doubleclick.net https://ade.googlesyndication.com https://adservice.google.com
https://www.googletagmanager.com
frame-src https://www.googletagmanager.com
connect-src https://pagead2.googlesyndication.com https://www.google.com https://www.googleadservices.com
https://ad.doubleclick.net

"कस्टम स्क्रिप्ट" वाले बीकन के लिए:

डायरेक्टिव कॉन्टेंट
frame-src https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net

इमेज टैग के लिए:

डायरेक्टिव कॉन्टेंट
img-src https://ad.doubleclick.net https://ade.googlesyndication.com

Merchant Center

Merchant Center को डेटा भेजने के लिए, सीएसपी में ये डायरेक्टिव शामिल होने चाहिए:

डायरेक्टिव कॉन्टेंट
script-src-elem https://www.googletagmanager.com
img-src https://*.merchant-center-analytics.goog
connect-src https://*.merchant-center-analytics.goog

सर्विस वर्कर

बेहतर मैच, उपयोगकर्ता के डेटा के बीकन, और Google Ads के कन्वर्ज़न के लिए सर्विस वर्कर का इस्तेमाल करने के लिए, सीएसपी में ये डायरेक्टिव शामिल होने चाहिए:

डायरेक्टिव कॉन्टेंट
frame-src https://www.googletagmanager.com

Tag Assistant की मदद से समस्या हल करना

कॉन्टेंट की सुरक्षा के लिए नीति (सीएसपी) से जुड़ी समस्याओं को हल करने के लिए, Tag Assistant का इस्तेमाल करें. Tag Assistant, उन रिसॉर्स की सूची दिखाएगा जिन्हें आपकी कॉन्टेंट की सुरक्षा के लिए नीति ने ब्लॉक किया है.

  1. Tag Assistant खोलें और अपनी वेबसाइट का यूआरएल डालें. आपकी वेबसाइट एक नए टैब में खुल जाएगी.

  2. अगर आपके पेज पर कॉन्टेंट की सुरक्षा के लिए नीति, किसी रिसॉर्स को ब्लॉक कर रही है, तो Tag Assistant के पेज की समस्याएं सेक्शन में, सीएसपी से जुड़ी समस्या दिखती है.

    Tag Assistant का स्क्रीनशॉट, जिसमें सीएसएपी से जुड़ी समस्या दिख रही है

  3. अपने पेज पर ब्लॉक किए गए सभी रिसॉर्स की सूची देखने के लिए, सीएसपी से जुड़ी समस्या के बगल में मौजूद समस्या देखें को चुनें. Tag Assistant का स्क्रीनशॉट, जिसमें सीएसएपी से जुड़ी समस्या का स्लाइडर दिखाया गया है

  4. ब्लॉक किए गए सभी रिसॉर्स को, कॉन्टेंट की सुरक्षा के लिए नीति में जोड़ें.