Monitoring API Geliştirici Kılavuzu

Monitoring API, etiketlerinizin davranışını ve performansını izlemek için araçlar oluşturmanıza olanak tanır. Bu işlem, addEventCallback Custom Template API yöntemiyle gerçekleştirilir. Bu yöntem, bir etkinliğin sonunda çağrılacak bir etkinlik geri çağırma işlemini belirtmenize olanak tanır. Bu geri çağırma, etkinlik hakkında bilgi alır. Bu da kendi etiket izleme uygulamalarınızı oluşturmanıza olanak tanır. Daha ayrıntılı bir izleme için etiketlerinize meta veri de ekleyebilirsiniz.

Monitoring API; etiket durumu, yürütme süreleri ve meta veriler gibi çeşitli izleme kullanım alanlarını destekleyebilir. Bu izleme piksellerinin nihai hedefi, seçtiğiniz bir uç noktaya veri göndermektir. Ardından, izleme verilerini toplamak için bu uç noktadan günlüklere erişilebilir ve bu veriler kontrol panelinde görüntülenebilir veya bir uyarı sistemini tetiklemek için kullanılabilir.

Etiket durumu

Bu örnekte gösterilen etiket durumu tekniğinde, bir sayfadaki etiketlerin etkinleşme durumunu hesaplamak için addEventCallback kullanılmaktadır. Bu işlem, etkinlik için tetiklenen tüm etiketleri döngüye alır ve başarılı, başarısız olan, istisna oluşturan veya zaman aşımına uğrayan etiketlerin sayısını sayar. Daha sonra bu toplamlar, izleme pikseli URL'sine sorgu parametreleri olarak eklenir. İzleme pikseli şuna benzer bir URL'ye sahip olur:

https://www.example.com/monitoring?ctid=GTM-XXXXXX&success=4&failure=1&exception=1&timeout=0

Piksel URL'si aşağıdaki kod örneği kullanılarak ayarlanabilir:

const addEventCallback = require('addEventCallback');
const sendPixel = require('sendPixel');

addEventCallback(function(containerId, eventData) {
  let successCount = 0;
  let failureCount = 0;
  let exceptionCount = 0;
  let timeoutCount = 0;

  const tagData = eventData['tags'];
  const timingData = [];
  for (let i in tagData) {
    let entry  = tagData[i];
    switch (entry.status) {
      case 'success':
        successCount++;
        continue;
      case 'failure':
        failureCount++;
        continue;
      case 'exception':
        exceptionCount++;
        continue;
      case 'timeout':
        timeoutCount++;
        continue;
    }
  }
  let url = 'https://www.example.com/monitoring?ctid=' + containerId +
      '&success=' + successCount +
      '&failure=' + failureCount +
      '&exception=' + exceptionCount +
      '&timeout=' + timeoutCount;
  sendPixel(url);
});
data.gtmOnSuccess();

Yürütme süreleri

Bu teknik, etiketlerinizin yürütme süreleri hakkında veri toplamanıza yardımcı olmak için addEventCallback kullanır. Bu etkinlik için tetiklenen her etiket için piksel URL'sine etiketin kimliğini ve yürütme zamanını içeren bir sorgu parametresi eklenir. Bu işlem, şuna benzeyen bir piksel gönderir:

https://www.example.com/monitoring?ctid=GTM-XXXXXX&tag12=1200&tag50=400&tag1=6000

Piksel URL'si aşağıdaki kod örneği kullanılarak ayarlanabilir:

const addEventCallback = require('addEventCallback');
const sendPixel = require('sendPixel');

addEventCallback(function(containerId, eventData) {
  let url = 'https://www.example.com/monitoring?ctid=' + containerId;
  const tagData = eventData['tags'];
  const timingData = [];
  for (let i in tagData) {
    let entry = tagData[i];
    timingData.push('&tag' + entry['id'] + '=' + entry['executionTime']);
  }
  url += timingData.join('');
  sendPixel(url);
});
data.gtmOnSuccess();

Meta veri

Monitoring API tarafından sağlanan temel verileri kullanarak faydalı kontrol panelleri oluşturabilirsiniz. Bununla birlikte, etiketlerin yalnızca bir alt kümesini izlemek isteyebileceğiniz durumlar da olabilir. Bunu kolaylaştırmak için Etiket Meta Verileri bölümünü kullanarak bir etiket tanımında rastgele anahtar/değer çiftleri belirtin. Bu değerler, bir etkinlik geri çağırma gerçekleştiğinde etkinlik veri nesnesine eklenir.

Örneğin: Yeni bir reklam kampanyası için kapsayıcıya bir etiket eklenir. Kapsayıcıda çok sayıda mevcut etiket var, ancak siz yalnızca bu yeni etiketi izlemek istiyorsunuz.

Bu etiketi bir etkinlik geri çağırmasından tanımlamak için etikete meta veri ekleyin:

  1. Etiket tanımında, Gelişmiş Ayarlar > Ek Etiket Meta Verileri'ni tıklayın.
  2. İşaretlenmesi için Etiket Adını Dahil Et'i tıklayın.
  3. Etiket adı anahtarı alanına bir değer girin. Bu örnekte değer olarak "name" kullanılmıştır. Bu işlem, etiket adını gönderildikleri şekilde etkinlik verilerine dahil eder.
  4. +Meta Veri Ekle'yi tıklayın, bir Anahtar ve Değer çifti girin. Bu örnekte "grup" adlı bir Anahtar ve "Kampanya 2019" değeri kullanılmıştır.
  5. İstediğiniz gibi ilave anahtar/değer çifti satırları eklemek için +Meta Veri Ekle'yi kullanın.

Ek Etiket Meta Verileri bölümünün konumunu gösteren Etiket Yöneticisi kullanıcı arayüzünün ekran görüntüsü

Geliştirici, özel bir şablonda, meta veride ayarlanan değerleri kontrol ederek bu etiketi tanımlayabilir:

const addEventCallback = require('addEventCallback');
const sendPixel = require('sendPixel');

addEventCallback(function(containerId, eventData) {
  let url = 'https://www.example.com/monitoring/campaignPixel?ctid=' + containerId;
  const tagData = eventData['tags'];
  for (let i in tagData) {
    let entry = tagData[i];
    if (entry['name'] === 'Conversion Pixel 2019') {
      url += '&status=' + entry['status'];
      break;
    }
  }
  sendPixel(url);
});
data.gtmOnSuccess();

Bu işlem, şuna benzeyen bir piksel URL'siyle sonuçlanır:

https://www.example.com/monitoring/campaignPixel?ctid=GTM-XXXXXX&status=success

İsterseniz daha sonra "Kampanya 2019" grubuna ilişkin tüm etiketleri izleyebilirsiniz:

const addEventCallback = require('addEventCallback');
const encode = require('encodeUriComponent');
const sendPixel = require('sendPixel');

addEventCallback(function(containerId, eventData) {
  let url = 'https://www.example.com/monitoring/campaign2019?ctid=' + containerId;
  const tagData = eventData['tags'];
  for (let i in tagData) {
    let entry = tagData[i];
    if (entry['group'] === 'Campaign 2019') {
      url += '&' + encode(entry['name']) + '=' + entry['status'];
      break;
    }
  }
  sendPixel(url);
});
data.gtmOnSuccess();

Bunun sonucunda aşağıdakine benzer bir izleme pikseli elde edilir:

https://www.example.com/monitoring/campaign2019?ctid=GTM-XXXXXX&Conversion%20Pixel%202019=failure