Etiket Yöneticisi'ni İçerik Güvenliği Politikası ile Kullanma

İçerik Güvenliği Politikası (CSP), geliştiricilere uygulamaları tarafından yüklenen kaynaklar üzerinde kontrol vererek belirli türde enjeksiyon tabanlı saldırıları önlemek için yaygın olarak desteklenen bir web güvenlik standardıdır. CSP kullanan sitelere Google Etiket Yöneticisi'ni nasıl dağıtacağınızı öğrenmek için bu kılavuzdan yararlanabilirsiniz.

CSP'yi kullanmak için kapsayıcı etiketini etkinleştirin

Google Etiket Yöneticisi'ni CSP içeren bir sayfada kullanmak için CSP'nin, Etiket Yöneticisi kapsayıcı kodunuzun yürütülmesine izin vermesi gerekir. Bu kod, gtm.js komut dosyasını ekleyen satır içi JavaScript kodu olarak oluşturulur. Bunu yapmanın birkaç yolu vardır (ör. tek kullanımlık kod veya karma oluşturma). Önerilen yöntem, nonce kullanmaktır. Bu, sunucunun her yanıt için ayrı ayrı oluşturduğu tahmin edilemeyen, rastgele bir değer olmalıdır. Content-Security-Policy script-src yönergesinde tek seferlik değeri sağlayın:

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

Ardından, satır içi Etiket Yöneticisi kapsayıcı kodunun tek seferlik kod bilincine sahip sürümünü kullanın. Satır içi komut dosyası öğesindeki tek seferlik özelliğini aynı değere ayarlayın:

<!-- 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 -->

Ardından Etiket Yöneticisi, tek seferlik rastgele sayıyı sayfaya eklediği tüm komut dosyalarına dağıtır.

Satır içi komut dosyasının yürütülmesini etkinleştirmenin başka yaklaşımları da vardır. Örneğin, CSP'de satır içi komut dosyasının karmasını sağlamak gibi.

Önerilen tek seferlik veya karma yaklaşımlar uygun değilse CSP'nin script-src bölümüne 'unsafe-inline' yönergesini ekleyerek Etiket Yöneticisi satır içi komut dosyasını etkinleştirmek mümkündür.

Bu yaklaşımın kullanılabilmesi için İGP'de aşağıdaki yönergeler gereklidir:

Yönerge İçerik
script-src 'unsafe-inline' https://www.googletagmanager.com
img-src www.googletagmanager.com
connect-src www.googletagmanager.com

Özel JavaScript Değişkenleri

Özel JavaScript değişkenleri, CSP'nin script-src bölümünde 'unsafe-eval' yönergesi sağlanmadığı sürece CSP'nin varlığında undefined olarak değerlendirilir.

Yönerge İçerik
script-src 'unsafe-eval'

Önizleme Modu

Google Etiket Yöneticisi'nin Önizleme Modu'nu kullanmak için İGP'nin aşağıdaki yönergeleri içermesi gerekir:

Yönerge İçerik
script-src https://googletagmanager.com https://tagmanager.google.com
style-src https://googletagmanager.com https://tagmanager.google.com https://fonts.googleapis.com
img-src https://googletagmanager.com https://ssl.gstatic.com https://www.gstatic.com
font-src https://fonts.gstatic.com verileri:

Google Analytics 4 (Google Analytics)

Google Analytics 4 (Google Analytics) etiketini kullanmak için İGP'nin aşağıdaki yönergeleri içermesi gerekir:

Yönerge İçerik
script-src https://*.googletagmanager.com
img-src https://*.google-analytics.com https://*.googletagmanager.com
connect-src https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com

Google sinyallerini kullanan Google Analytics 4 (Google Analytics) dağıtımları için İGP'de aşağıdaki yönergeler bulunmalıdır:

Yönerge İçerik
script-src https://*.googletagmanager.com
img-src https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com
https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
connect-src https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com
https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
frame-src https://td.doubleclick.net

Google Ads dönüşüm, yeniden pazarlama veya dönüşüm bağlayıcı etiketi kullanmak için İGP'nin aşağıdaki yönergeleri içermesi gerekir:

Yönerge İçerik
script-src 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://google.com https://www.google.com.<TLD> https://pagead2.googlesyndication.com
frame-src https://www.googletagmanager.com https://td.doubleclick.net
connect-src https://pagead2.googlesyndication.com https://www.googleadservices.com
https://www.google.com https://google.com

Google Ads kullanıcı verisi işaretçilerini güvenli bağlamlarda çalıştırırken kullanmak için İGP'nin aşağıdaki yönergeleri içermesi gerekir:

Yönerge İçerik
script-src https://www.googletagmanager.com
frame-src https://www.googletagmanager.com
connect-src https://google.com https://www.google.com

Google Ads kullanıcı verisi işaretçisi güvenli olmayan bağlamlarda çalışmaz. Bu nedenle, bu durumlarda CSP yapılandırması geçerli değildir.

Floodlight

Floodlight kullanıcıları aşağıdaki yapılandırmaları kullanarak CSP'leri etkinleştirebilir. <FLOODLIGHT-CONFIG-ID> değerlerini belirli bir Floodlight reklamveren kimliğiyle veya herhangi bir reklamveren kimliğine izin vermek için * ile değiştirin:

Tüm kullanıcılar için:

Yönerge İçerik
img-src https://ad.doubleclick.net https://ade.googlesyndication.com https://adservice.google.com
https://www.googletagmanager.com
frame-src https://td.doubleclick.net
connect-src https://pagead2.googlesyndication.com https://www.google.com https://www.googleadservices.com

"Özel komut dosyaları" işaretçileri için:

Yönerge İçerik
frame-src https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net

Resim etiketleri için:

Yönerge İçerik
img-src https://ad.doubleclick.net https://ade.googlesyndication.com