AMP

amp-auto-ads

Description

Uzaktan sunulan bir yapılandırma dosyası kullanarak reklamları bir AMP sayfasına dinamik şekilde yerleştirir.

 

Required Scripts

<script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script>

Uzaktan sunulan bir yapılandırma dosyası kullanarak reklamları bir AMP sayfasına dinamik şekilde yerleştirir.

Durum Deneme
Zorunlu Komut Dosyası <script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script>
Desteklenen Düzenler Yok

Davranış

Yeterli sayıda geçerli yerleşim göz önünde bulundurulduğunda (yapılandırmada sağlanır) amp-auto-ads, bir yandan reklam ağı tarafından belirtilen kısıtlamalara uyarken diğer yandan ek reklamlar yerleştirmeye çalışır. Bu kısıtlamalar şunları sınırlandırır:

  • Eklenebilecek toplam reklam sayısı
  • Bitişik reklamlar arasında olması gereken minimum mesafe

Buna ek olarak, reklamlar yalnızca sayfada kabul edilemez yeniden akışa neden olmayacak (attemptChangeSize ile belirlenir) konumlara eklenir.

<amp-auto-ads> etiketi, <body> öğesinin ilk alt öğesi olarak yerleştirilmelidir.

Reklam ağı türü ve (reklam ağının gerektirdiği) ek bilgiler etikette belirtilmelidir.

<amp-auto-ads
    type="adsense"
    data-ad-client="ca-pub-5439573510495356">
  </amp-auto-ads>

Desteklenen reklam ağları

Özellikler

type (zorunlu) Reklam ağı için bir tanımlayıcı.
data-foo-bar Çoğu reklam ağı, HTML data- özelliklerini kullanarak ağa geçirilebilecek ek yapılandırma gerektirir. Parametre adlarında, standart veri özelliği çizgisi büyük/küçük harfe dönüştürülür. Örneğin, "data-foo-bar" adı, yapılandırma için reklama "fooBar" olarak gönderilir. Özelliklerin kullanılabileceği reklam ağı ile ilgili dokümanlara bakın.
common attributes Bu öğe, AMP bileşenlerine genişletilmiş ortak özellikleri içerir.

Yapılandırma Spesifikasyonu

Yapılandırma, <amp-auto-ads> etiketinin reklamları sayfada yerleştirebileceği yerleri tanımlar. Yapılandırma, ad-network-config.js dosyasında tanımlanan URL'deki bir üçüncü taraf reklam ağından getirilir. Yapılandırma, aşağıda açıklanan ConfigObj tanımına uygun serileştirilmiş bir JSON nesnesi olmalıdır.

Örnek Yapılandırma

Aşağıdaki örnekte, reklamın sayfada üçüncü <DIV id='domId'> öğesi içindeki tüm <P class='paragraph'> öğelerinden hemen sonra yerleştirilmesi gerektiği belirtilmektedir. Bu konumların herhangi birine yerleştirilen bir reklamın BANNER türünde olması ve 4 piksel üst ve 10 piksel alt kenar boşluğu olması gerekir.

{
  "placements": [
    {
      "anchor": {
        "selector": "DIV#domId",
        "index": 2,
        "sub": {
          "selector": "P.paragraph",
          "all": true,
        },
      },
      "pos": 4,
      "type": 1,
      "style": {
        "top_m": 5,
        "bot_m": 10,
      },
    },
  ]
}

Nesne Tanımları

ConfigObj

Yapılandırma nesnesinde belirtilecek alanlar:

Alan Adı Tür Açıklama
placements Array<!PlacementObj> Sayfada reklamların eklenebileceği potansiyel yerleri belirten zorunlu bir alandır.
attributes Object<string, string> Bu yapılandırma kullanılarak yerleştirilen tüm <amp-ad> öğelerine uygulamak üzere özellik adından özellik değerlerine bir eşleme belirten isteğe bağlı bir alandır. Yalnızca aşağıdaki özellik adlarına izin verilir:
  • type
  • layout
  • data-* (ör. herhangi bir veri özelliği)
adConstraints AdConstraintsObj Reklamları sayfaya yerleştirirken kullanılması gereken kısıtlamaları belirten isteğe bağlı bir alandır. Belirtilmezse amp-auto-ads etiketi, [ad-network-config.js](0.1/ad-network-config.js) içinde belirtilen varsayılan kısıtlamaları kullanmaya çalışır.

PlacementObj

placements yapılandırma nesnesinde belirtilecek alanlar:

Alan Adı Tür Açıklama
anchor AnchorObj Yerleşim konumunun bağlantılı olduğu sayfadaki öğeleri aramak için kullanılan bilgileri sağlayan zorunlu bir alandır.
pos RelativePositionEnum Yerleşimin sabit öğesine göre konumunu belirten zorunlu bir alandır.
type PlacementTypeEnum Yerleşim türünü belirten zorunlu bir alandır.
style PlacementStyleObj Bu yerleşim konumuna eklenen bir reklama uygulanması gereken stilleri belirten isteğe bağlı bir alandır.
attributes Object<string, string> Bu yerleşim kullanılarak yerleştirilen tüm <amp-ad> öğelerine uygulanmak üzere özellik adından özellik değerine bir eşleme için isteğe bağlı bir alandır. Burada belirtilen bir özellik, üst ConfigObj nesnesinde de belirtilen aynı adlı diğer özellikleri geçersiz kılar. Yalnızca aşağıdaki özellik adlarına izin verilir:
  • type
  • layout
  • data-* (ör. herhangi bir veri özelliği)

AnchorObj

anchor yapılandırma nesnesinde belirtilecek alanlar:

Alan Adı Tür Açıklama
selector string Sabit tanımın bu düzeyindeki öğeleri seçmek için bir CSS seçici tanımlayan zorunlu bir alandır.
index number Bu sabit tanım düzeyini sınırlandıracak, seçici tarafından seçilen öğe dizinini belirtmek için kullanılan isteğe bağlı bir alandır. Varsayılan olarak 0 değerine ayarlanır (all alanı false (yanlış) değerine ayarlanmışsa).
all boolean index alanı belirtilmişse yoksayılır. true (doğru) değerine ayarlanmışsa seçici tarafından seçilen tüm öğelerin eklenmesi gerektiğini belirtir; aksi takdirde, false (yanlış) değerine ayarlanır.
min_c number Bir öğenin textContent özelliğinin eklenecek minimum uzunluğunu belirten isteğe bağlı bir alandır. Varsayılan değer 0'dır.
sub AnchorObj Bu sabit tanım düzeyinde seçilen öğeler içinden öğeler seçecek yinelemeli bir AnchorObj nesnesinin belirtildiği isteğe bağlı bir alandır.

PlacementStyleObj

style yapılandırma nesnesinde belirtilecek alanlar:

Alan Adı Tür Açıklama
top_m number Bu konuma eklenen bir reklamın sahip olması gereken üst kenar boşluğunun piksel cinsinden belirtildiği isteğe bağlı bir alan. Varsayılan değer: 0.
bot_m number Bu konuma eklenen bir reklamın sahip olması gereken alt kenar boşluğunun piksel cinsinden belirtildiği isteğe bağlı bir alan. Varsayılan değer: 0.

RelativePositionEnum

placements yapılandırma nesnesindeki pos alanı için ENUM değerleri:

Ad Değer Açıklama
BEFORE 1 Reklam, sabit öğeden hemen önce eşdüzey öğe olarak eklenmelidir.
FIRST_CHILD 2 Reklam, sabit öğenin ilk alt öğesi olarak eklenmelidir.
LAST_CHILD 3 Reklam, sabit öğenin son alt öğesi olarak eklenmelidir.
AFTER 4 Reklam, sabit öğeden hemen sonra eşdüzey öğe olarak eklenmelidir.

PlacementTypeEnum

placements yapılandırma nesnesindeki type alanı için ENUM değerleri:

Ad Değer Açıklama
BANNER 1 Yerleşim, bir banner reklam konumunu tanımlar.

AdConstraintsObj

adConstraints yapılandırma nesnesinde belirtilecek alanlar:

Alan Adı Tür Açıklama
initialMinSpacing string Bir reklamın ekleme sırasında halihazırda sayfada bulunan (manuel olarak veya önceden amp-auto-ads tarafından yerleştirilmiş) diğer reklamlarla aralarında olması gereken minimum mesafeyi gösteren zorunlu bir alandır. Değerler, bir sayı ve birim öneki şeklinde ifade edilir. Örneğin, "10px", 10 piksel veya "0,5vp", yarım görüntü alanı yüksekliği anlamına gelir. Negatif değerler geçersizdir. Şu birimler desteklenir:
  • px - piksel
  • vp - görüntü alanı yüksekliğinin katı
Bu değer yalnızca halihazırda sayfada bulunan reklam sayısı, subsequentMinSpacing alanında belirtilen adCount eşleyicisinden daha az olduğunda uygulanır.
subsequentMinSpacing Array<!SubsequentMinSpacingObj> Ekleme sırasında halihazırda sayfada bulunan reklam sayısına dayalı olarak uygulanması gereken reklam aralıklarını belirten isteğe bağlı bir alandır.
maxAdCount number amp-auto-ads etiketinin sayfada yer almasına neden olabileceği maksimum reklam sayısını belirten zorunlu bir alandır. Hem manuel olarak yerleştirilmiş reklamlar hem de amp-auto-ads tarafından yerleştirilenler bu toplama dahil edilir. Örneğin, bu alan 5 değerine ayarlandıysa ve sayfada manuel olarak yerleştirilmiş 3 reklam bulunuyorsa amp-auto-ads, en fazla 2 reklam daha yerleştirebilir.

SubsequentMinSpacingObj

subsequentMinSpacing yapılandırma nesnesinde belirtilecek alanlar. subsequentMinSpacing girişleri, halihazırda sayfada bulunan reklamların sayısına dayalı olarak ilave reklamlar arasında bulunması gereken aralıkları değiştirmek için kullanılabilir. Örneğin, aşağıdaki senaryoyu inceleyin:

  • Sayfada 2 reklam vardır
  • subsequentMinSpacing alanı şöyledir: [ {adCount: 3, spacing: "500px"}, {adCount: 5, spacing: "1000px"}, ]

Başlangıçta, sayfada 2 reklam olduğundan herhangi bir eşleme gerçekleşmez. Dolayısıyla, minimum aralık varsayılan olarak AdConstraints nesnesindeki initialMinSpacing değerine ayarlanır. amp-auto-ads, adConstraints kısıtlamasını bozmadan kullanabileceği yerleşimler tükeninceye kadar tekrarlanan bir şekilde reklam yerleştirmeyi dener. amp-auto-ads ilk reklamını yerleştirdikten sonra sayfada artık 3 reklam vardır. subsequentMinSpacing alanında 3 (veya daha fazla) reklam için bir eşleme olduğundan minimum aralık şimdi 500 px olur. 5. reklam için bir kural olduğundan, bu durum sayfada 5 reklam yer alıncaya kadar uygulanır. 6. ve sonraki reklamların eklenmesi için eklenen reklamın, diğer reklamlardan en az 1.000 px uzakta olması gerekir.

Alan Adı Tür Açıklama
adCount number Zorunlu bir alandır. Bu kuralın uygulanmasına (başka hiçbir kuralın daha iyi eşleşmediği varsayıldığında) neden olan, halihazırda bu sayfada bulunan minimum reklam sayısı. Daha ayrıntılı bilgi için yukarıdaki açıklamaya bakın.
spacing string Bu kural, adCount alanına dayalı olarak eşleştirildiğinde uygulanacak minimum reklam aralığını belirten zorunlu bir alandır. Değerler, bir sayı ve birim öneki şeklinde ifade edilir. Örneğin, "10px", 10 piksel veya "0,5vp", yarım görüntü alanı yüksekliği anlamına gelir. Negatif değerler geçersizdir. Şu birimler desteklenir:
  • px - piksel
  • vp - görüntü alanı yüksekliğinin katı

Doğrulama

AMP doğrulayıcı spesifikasyonundaki amp-auto-ads kurallarına bakın.

Daha fazla yardıma mı ihtiyacınız var?

Bu belgeyi defalarca okudunuz ama tüm sorularınıza tatmin edici bir yanıt bulamadınız mı? Belki başka kişiler de bu şekilde hissetmiştir: Stack Overflow'dan onlara ulaşın.

Stack Overflow'a git
Bir hata veya eksik bir özellik mi buldunuz?

AMP projesi, katılımınızı ve katkılarınızı güçlü bir şekilde teşvik ediyor! Açık kaynak topluluğumuzun devamlı bir katılımcısı olacağınızı umuyoruz ancak özel olarak ilgilendiğiniz konularla ilgili tek seferlik katkıları da memnuniyetle karşılıyoruz.

GitHub'a git