Bu kılavuzda, mevcut bir özel HTML etiketini korumalı alana alınmış JavaScript kullanmak.
Bu eğitimde injectScript
API kullanılır. injectScript
, üçüncü taraf komut dosyalarına dayanan mevcut bir etiketi dönüştürmek için kullanılan yaygın bir API'dir. Bu
etiketleri genellikle bir komut dosyası yüklenirken temel işlevleri sağlar ve daha sonra,
ek işlevsellik sağlayabilir.
Orijinal etiket
<!-- Google Analytics -->
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXXX-1', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->
Kodu dönüştürme
Yukarıdaki etiketin JavaScript bölümünü düşünün:
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXXX-1', 'auto');
ga('send', 'pageview');
Korumalı alana alınmış gerekli JavaScript'i oluşturmak için hangi yerel JavaScript'in Bu komut dosyasının kullandığı ve kodunuzu korumalı alana alınan eşdeğer API'leri kullanacak şekilde dönüştürür JavaScript API'leri.
Örneğin, analytics.js
etiketinde şu yerel JavaScript API'leri kullanılır:
Yerel JavaScript | Korumalı Alana Sahip JavaScript |
---|---|
window.ga |
setInWindow |
arguments |
createArgumentsQueue |
+ new Date |
getTimestamp |
Komut dosyanızda korumalı alana alınan JavaScript API'lerini kullanmak için bunları require
yapmanız gerekir.
Örneğin, setInWindow()
API'yi kullanmak için komut dosyanızın en üstüne ekleyin:
const setInWindow = require('setInWindow');
Ardından window.ga
değerini dönüştürün:
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)}
// becomes
const createArgumentsQueue = require('createArgumentsQueue');
const ga = createArgumentsQueue('ga', 'ga.q');
Ardından ga.l
atamasını dönüştürün:
ga.l=+new Date;
// becomes
const getTimestamp = require('getTimestamp');
setInWindow('ga.l', getTimestamp(), true);
Son olarak, iki çağrıyı ga()
öğesine dönüştürün:
ga('create', 'UA-XXXXXX-1', 'auto');
ga('send', 'pageview');
// becomes
const trackingId = data.trackingId;
ga('create', trackingId, 'auto');
ga('send', 'pageview');
data.trackingId
özelliğini kullanmak için şablonunuza bir alan ekleyin:
Fields
sekmesine gidin veAdd Field
düğmesini tıklayın.Text input
alan türünü seçin.text1
olan kimliğitrackingId
olarak değiştirin.
Bu noktada, ilk <script/>
etiketini dönüştürmüş oldunuz. Ancak, aşağıdakileri de yapmanız gerekir:
destekleyici komut dosyasına yükleyin.
Bunun için:
<script async src='https://www.google-analytics.com/analytics.js'></script>
// becomes
const injectScript = require('injectScript');
const url = 'https://www.google-analytics.com/analytics.js';
injectScript(url, data.gtmOnSuccess, data.gtmOnFailure, url);
injectScript()
öğesine cacheToken
iletmek optimizasyon yapılmasını sağlar.
aşağıdaki senaryolarda analytics.js
komut dosyası yalnızca bir kez yüklenir:
- Birden çok kez çalışan bir etiket
- Bu özel şablonda yer alan birden fazla etiket aynı kapsayıcıda.
- Aynı
cacheToken
değeri ileinjectScript()
kullanan diğer özel şablonlar
İzinler
Bu kodu bu noktadan önce çalıştırmayı denediyseniz, örneğin birkaç kontrol edebilirsiniz.
Bu hatalar, korumalı alan JavaScript'i eriştiğiniz değerleri ve URL'leri belirtmenizi gerektirdiği için görünür. Bu örnekte, ga.q
,
ga.l
ve ga
genel değişkenleri içeriyor ve barındırılan bir komut dosyası yerleştirmek istiyorsunuz
saat: https://www.google-analytics.com/analytics.js
.
Global Variables
izinlerini yapılandırmak için:
Permissions
sekmesine gidin,Accesses Global Variables
bölümünü genişletin veAdd Key
simgesini tıklayın.Anahtar için
ga
kullanın,Read
,Write
vene ait kutuları işaretleyin.Execute
.Bu işlemi
ga.q
vega.l
için tekrarlayın. Bu alanlar içinExecute
izni.
Bu noktada tekrar Kodu Çalıştır'ı tıklarsanız konsolda yeni bir hata mesajı alırsınız.
Bu kez hatada Inject Scripts
yer alıyor.
Inject Scripts
iznini yapılandırmak için:
Allowed URL Match Patterns
içinehttps://www.google-analytics.com/analytics.js
ekleyin.
Artık Kodu Çalıştır'ı tıkladığınızda konsolda herhangi bir hata olmayacaktır. Bakiyeniz
etiketi özel bir şablona başarıyla dönüştürdü. Save
simgesini tıklayın ve yeni etiketinizi Google Etiket Yöneticisi'ndeki diğer etiketler gibi kullanın.
Tamamen dönüştürülmüş etiket
Korumalı alana alınmış son JavaScript sonucunuz şu şekilde görünmelidir:
const setInWindow = require('setInWindow');
const copyFromWindow = require('copyFromWindow');
const createArgumentsQueue = require('createArgumentsQueue');
const getTimestamp = require('getTimestamp');
const injectScript = require('injectScript');
const trackingId = data.trackingId;
const ga = createArgumentsQueue('ga', 'ga.q');
setInWindow('ga.l', getTimestamp(), false);
ga('create', trackingId, 'auto');
ga('send', 'pageview');
const url = 'https://www.google-analytics.com/analytics.js';
injectScript(url, data.gtmOnSuccess, data.gtmOnFailure, url);