AMP

AMP Analytics Derinlemesine Giriş

Bu kılavuz amp-analitik bileşen içerisine derinlemesine girerek, bir örnek amp-analytics yapılandırmasını temel yapıtaşlarına ayırır:

Kılavuzun kalan kısmında bu yapılandırma örneği kullanılarak, sayfa görünümeleri ve kullanıcının bağlantı tıklamaları izlenir ve analitik veriler üçüncü şahıs sağlayıcıya, Google Analytics gönderilir:

<amp-analytics type="googleanalytics" config="https://example.com/analytics.account.config.json">
<script type="application/json">
{
  "requests": {
    "pageview": "https://example.com/analytics?url=${canonicalUrl}&title=${title}&acct=${account}",
    "event": "https://example.com/analytics?eid=${eventId}&elab=${eventLabel}&acct=${account}"
  },
  "vars": {
    "account": "ABC123"
  },
  "extraUrlParams": {
    "cd1": "AMP"
  },
  "triggers": {
    "trackPageview": {
      "on": "visible",
      "request": "pageview"
    },
    "trackAnchorClicks": {
      "on": "click",
      "selector": "a",
      "request": "event",
      "vars": {
        "eventId": "42",
        "eventLabel": "clicked on a link"
      }
    }
  },
  'transport': {
    'beacon': false,
    'xhrpost': false,
    'image': true
  }
}
</script>
</amp-analytics>

Not: Yukarıdaki örnek kod öğrenmenize yardımcı olmak için verilmiştir, gerçek bir örnek değildir. Analitik sağlayıcılarla çalışıyorsanız, yukarıdaki örnek sizin için bir anlam ifade etmeyebilir; sağlayıcı yapılandırmaları karmaşıklığı ortadan kaldırır. Örnek yapılandırmalar için analitik sağlayıcınızın belgelerine başvurun.

Analitik verilerin gönderileceği yer: yazma özelliği

AMP, iki yaygın veri toplama şeklini destekleyecek şekilde tasarlanmıştır:

  • Kurum içi analitik sistemler için yayıncıya ait son nokta ile alınım.
  • Bir satıcı çözümü ile birlikte işlerlik için satıcıya ait bir son nokta ile alınım (örneğin, Adobe Analytics, Chartbeat, Google Analytics).

Analitik verileri bir analitik sağlayıcıya göndermek için, amp-analytics etiketine type özelliği ekleyin ve amp-analytics spesifikasyonu içerisinde belirlenen şekilde değerini ilgili satıcıya ayarlayın.

Örneğin: <amp-analytics type="googleanalytics"> analitik verileri üçüncü şahıs analitik sağlayıcı, Google Analytics›e gönderir. Verileri yayıncıya ait bir son noktaya göndermek için, type özelliğini eklememeniz yeterlidir; analitik veriler her bir istekiçin tanımlanan son noktalara gönderilir.

Analytics satıcı yapılandırmaları amp-analytics‹e başlamanın hızlı bir yoludur. Ayrıntılı rehberlik için satıcı belgelerine ve yardım kaynaklarına danışmanız gerekir. Daha önce bahsedildiği gibi, halihazırda AMP ile entegre ettiğiniz satıcıların listesi, aynı zamanda spesifik belgelerin bağlantıları amp-analytics spesifikasyonu içerisinde bulunabilir.

Bir analitik satıcıysanız,

AMP HTML›sine kendi analitik yapılandırmanızı entegre etme hakkında daha fazla öğrenin.

Uzaktan yapılandırma yükle: yapılandırma özelliği

AMP sayfanıza amp-analytics yapılandırmasının tamamını eklemeniz gerekli değildir. Bunun yerine, yapılandırmaların tamamı ya da bir kısmı için uzaktan bir URL talep edebilirsiniz.

Bu şekilde, belli bir isteğe göre yapılandırmayı değiştirme gibi işlemleri yapabilirsiniz. Yayıncı olarak, uzaktan dosya üzerinde kontrolünüz varsa, yapılandırma verilerini şekillendirmek için gerekli sunucu tarafı işlemlerinin tümünü gerçekleştirebilirsiniz.

Uzaktan yapılandırmaları yüklemenin ilk adımı amp-analytics etiketine yapılandırma özelliğinin eklenmesidir:

<amp-analytics config="https://example.com/analytics.account.config.json">

Bir sonraki adım, uzaktan URL içerisinde yer alan JSON içeriğinin oluşturulmasıdır. Bu basit örnekte, JSON nesnesi içerisinde yer alan yapılandırma, analitik hesabının yalnızca değişken değeridir.

https://example.com/analytics.account.config.json‹deki örnek içeriği:

{
  "vars": {
    "account": "UA-XXXXX-Y"  // Replace with your property ID.
  }
}

Son adım, uzaktan dosya içindekilerin amp-analytics yapılandırmasında uygun yerlere çekilmesidir. Buradaki hem pageview hem de event isteklerinde, account değişken değeri uzaktan URL ("account": "UA-XXXXX-Y") içindeki hesap değerine otomatik olarak ayarlanır:

"requests": {
  "pageview": "https://example.com/analytics?url=${canonicalUrl}&title=${title}&acct=${account}",
  "event": "https://example.com/analytics?eid=${eventId}&elab=${eventLabel}&acct=${account}"
}

Önemli: AMP aynı değişkenin birden çok kullanımını doğrulamaz. Değerler, önceliğe göre değişken değiştirme sırasına göre çoğaltılır ve uzaktan URL›lerin içindeki değerler bu sıranın en üzerindedir (bkz. Değişken değiştirme sıralaması.

İstek, tetikleme ve taşıma

requests özelliği ‹hangi verilerin gönderileceğini› (örneğin, pageviews, events) ve bu verilerin nereye gönderileceğini tanımlar (verileri aktarmak için kullanılan URL›ler).

triggers özelliği analitik verilerinin ne zaman gönderileceğini; örneğin, kullanıcının bir sayfayı ne zaman görüntülediğini, bir bağlantıya ne zaman tıkladığını tanımlar.

transport özelliği bir isteğin, daha spesifik olarak protokolün nasıl gönderileceğini belirler.

Bu yapılandırmalar hakkında daha fazla bilgi için okumaya devam edin. (Bu yapılandırmalar hakkında bilgi için amp-analitik referansı bölümünü de okuyabilirsiniz.)

Hangi veriler gönderilir: istek özelliği

request-name tetikleme yapılandırmasında belli bir etkinliğe karşı hangi isteğin gönderileceğini belirlemek için kullanılır. request-value bir https URL›sidir. Bu değerler, diğer istek veya değişkenlere referans verebilen yer tutucu işaretlerini içerebilir.

"requests": {
  "pageview": "https://example.com/analytics?url=${canonicalUrl}&title=${title}&acct=${account}",
  "event": "https://example.com/analytics?eid=${eventId}&elab=${eventLabel}&acct=${account}"
}

Bazı analitik sağlayıcıları (Google Analytics dahil) halihazırda type özelliği aracılığıyla kullandığınız yapılandırma sağlamıştır. Bir analitik sağlayıcı kullanıyorsanız, requests bilgilerini eklemeniz gerekli olmayabilir.

requests yapılandırması gerekli olup olmadığını ve nasıl yapılacağını öğrenmek için satıcı belgelerine başvurun.

İstek URL›si ekleme: Ekstra URL Parametreleri

extraUrlParams özelliği normal "&foo=baz" kuralı aracılığıyla istek URL›sinin sorgu dizesine eklenecek ek parametreleri belirler.

amp-analytics özelliği isteğe ek bir cd1 parametresi ekler ve parametre değerini «AMP» olarak ayarlar:

"extraUrlParams": {
  "cd1": "AMP"
}

Veri ne zaman gönderilir: tetikleme özelliği

triggers özelliği bir analitik isteğinin ne zaman gönderilmesi gerektiğini tanımlar. Tetikleme adı ve tetikleme yapılandırmasının bir anahtar değer çiftini içerir. Tetikleme adı alfanümerik karakterlerden (a-zA-Z0-9) oluşan herhangi bir dize olabilir.

Örneğin, aşağıdaki amp-analytics ögesi belge ilk yüklendiğinde ve bir a etiketine her tıklandığında https://example.com/analytics‹e bir istek gönderilecek şekilde yapılandırılmıştır:

"triggers": {
  "trackPageview": {
    "on": "visible",
    "request": "pageview"
  },
  "trackAnchorClicks": {
    "on": "click",
    "selector": "a",
    "request": "event",
    "vars": {
      "eventId": "42",
      "eventLabel": "clicked on a link"
    }
  }
}

AMP aşağıdaki tetikleme yapılandırmalarını destekler:

Tetikleme Yapılandırması Tanım
on (gerekli) Dinleyici etkinliği. Geçerli değerler click, scroll, timer vevisible‹dır.
request (gerekli) Gönderilecek isteğin adı (isteklerinde belirtilen şekilde).
vars En üst seviye yapılandırmada tanımlanan vars geçersiz kılmak veya bu tetiklemeye özgüvars belirlemek için anahtar değer çiftlerini içeren bir nesne (ayrıca bkz. Değişken değiştirme sıralaması).
selector (on, click olarak ayarlandığında gereklidir) Hangi ögelerin seçilmesi gerektiğini işlemek için kullanılan bir CSS selektörü. Tüm ögeleri izlemek için * değerini kullanın. Bu yapılandırma click tetikleme ile birlikte kullanılır. Selektörü kullanarak sayfa tıklamalarını ve sosyal medya etkileşimlerini nasıl izleyeceğinizi öğrenin.
scrollSpec (on, scroll olarak ayarlandığında gereklidir) Hangi koşullar altında sayfa kaydırıldığında scroll etkinliğinin uyarı verdiğini kontrol eder. Bu nesne verticalBoundaries vehorizontalBoundaries içerebilir. Bir scroll etkinliğinin uyarı vermesi için iki özellikten en az biri gereklidir. Her iki özelliğin değerleri bir kaydırma etkinliğinin oluşturulduğu sınırları içeren sayılar dizini olmalıdır. kaydırma izleme ile ilgili örneğe bakın.
timerSpec (on, timer olarak ayarlandığında gereklidir) timer etkinliğinin ne zaman uyarı vereceğini kontrol eder. Zamanlayıcı anında ve ardından belirlenen bir zaman aralığında tetiklenir. Bu yapılandırma timer tetikleme ile birlikte kullanılır.

Önemli: Düşük öncelikli bir yapılandırmadaki tetiklemeler, yüksek öncelikli yapılandırmadaki aynı adlı tetiklemelerle geçersiz kılınır (bkz. Değişken değiştirme sıralaması.

Verileri gönderme: aktarma özelliği

transport özelliği bir isteğin nasıl gönderileceğini tanımlar. Aşağıdaki üç yöntem varsayılan olarak etkinleştirilir:

Taşıma Yöntemi Tanım
beacon navigator.sendBeacon isteği aktarmak için kullanılabilir. Bu kimlik bilgileri ile birlikte bir POST isteği ve boş bir gövde gönderir.
xhrpost XMLHttpRequest isteği aktarmak için kullanılabileceğini gösterir. Bu kimlik bilgileri ile birlikte bir POST isteği ve boş bir gövde gönderir.
image İsteğin bir Image etiketi oluşturarak gönderilebileceğini gösterir. Bu bir GET isteği gönderecektir.

Yalnızca bir aktarma yöntemi kullanılır, bu da etkinleştirilen, izin verilen ve kullanılabilir en yüksek önceliğe sahip yöntemdir. Öncelik beacon > xhrpost > image şeklindedir. İstemci kullanıcı aracısı bir yöntemi desteklemiyorsa, etkinleştirilen en yüksek yöntem kullanılır.

transport özelliğini yapılandırmanıza yalnızca taşıma seçeneklerini sınırlamak istediğinizde ekleyin, aksi halde, istekleri durdurabilirsiniz.

Aşağıdaki örnekte, beacon ve xhrpost yanlış olarak ayarlanmıştır, bu nedenle image‹den daha yüksek önceliğe sahip olsalar da kullanılmazlar. İstemcinin kullanıcı aracısı image yöntemini destekliyorsa, bu yöntem kullanılır; aksi halde hiçbir istek gönderilmez.

'transport': {
  'beacon': false,
  'xhrpost': false,
  'image': true
}

Değişken değiştirme sıralaması

AMP bir öncelik sırasına göre değişkenleri değerlerle doldurur:

  1. Uzaktan yapılandırmalar (config aracılığıyla).
  2. vars, triggers içerisinde bir tetikleme içinde yuvalanmıştır.
  3. amp-analytics içerisinde en üst seviyede yuvalanan vars.
  4. Platform tarafından sağlanan değerler.

Bu örnekte, uzaktan bir yapılandırma vardır, değişkenler en üst seviyede, tetiklemelerde ve platform seviyesinde tanımlanmıştır:

<amp-analytics config="http://example.com/config.json">
<script type="application/json">
{
  "requests": {
    "pageview": "https://example.com/analytics?url=${canonicalUrl}&title=${title}&acct=${account}&clientId=${clientId(cid-scope)}",
  },
  "vars": {
    "account": "ABC123",
    "title": "Homepage"
  },
  "triggers": {
    "some-event": {
      "on": "visible",
      "request": "pageview",
      "vars": {
        "title": "My homepage",
        "clientId": "my user"
      }
  }
}
</script>
</amp-analytics>

Aynı var birden fazla yerde tanımlanmışsa, değişkenin öncelik sırası değerini bir kez belirler. Dolayısıyla, uzaktan yapılandırma yukarıdaki örnekteaccount UA-XXXXX-Y olarak tanımlandıysa, çeşitli değişkenlerin değerleri aşağıdaki gibi olacaktır:

var Değer Tanımlanan
canonicalUrl http://example.com/path/to/the/page Platform
title My homepage Tetikleme
account UA-XXXXX-Y Uzaktan yapılandırma
clientId my user Tetikleme