Mevcut bir etiketi dönüştürme

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:

  1. Fields sekmesine gidin ve Add Field düğmesini tıklayın.

    Alan ekle

  2. Text input alan türünü seçin.

    Metin Girişi&#39;ni seçin

  3. text1 olan kimliği trackingId olarak değiştirin.

    Kimliği güncelleyin

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 ile injectScript() kullanan diğer özel şablonlar
ziyaret edin.

İzinler

Bu kodu bu noktadan önce çalıştırmayı denediyseniz, örneğin birkaç kontrol edebilirsiniz.

Global öğelere erişilirken hata oluştu

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:

  1. Permissions sekmesine gidin, Accesses Global Variables bölümünü genişletin ve Add Key simgesini tıklayın.

    Kullanıcı arayüzüne anahtar ekle

  2. Anahtar için ga kullanın, Read, Write vene ait kutuları işaretleyin. Execute.

    Ga add key UI

  3. Bu işlemi ga.q ve ga.l için tekrarlayın. Bu alanlar için Execute izni.

    Genel Değişkenler Tamamlandı

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.

Komut Dosyası Yerleştirin Konsol Hatası

Inject Scripts iznini yapılandırmak için:

  1. Allowed URL Match Patterns içine https://www.google-analytics.com/analytics.js ekleyin.

    Komut Dosyası Ekleme Tamamlandı

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