Genişletilmiş AMP bileşenleri ekleme
AMP bileşen sistemi, makalelerinize en az çaba ile hızlı bir şekilde verimli ve duyarlı özellikler oluşturmanıza olanak tanır. AMP HTML kütüphanesi, AMP bileşenleri için üç sınıflandırmaya sahiptir:
-
kurulu: Bunlar,
amp-img
veamp-pixel
gibi temel AMP JavaScript kitaplığında (<head>
etiketinde belirtilen) bulunan bileşenlerdir. Bu bileşenler bir AMP belgesinde hemen kullanılabilir. -
genişletilmiş: Bunlar, belgeye özel öğeler olarak açıkça dahil edilmesi gereken temel kitaplığın eklentileridir. Özel öğeler,
<head>
bölümüne eklenen özel komut dosyaları gerektirir (örneğin,<script async custom-element="
amp-video
...
). -
deneysel: Bunlar, serbest bırakılan ancak henüz geniş kullanıma hazır olmayan bileşenlerdir. Geliştiriciler, tamamen piyasaya sürülmeden önce bu özellikleri kullanmayı seçebilirler. Deneysel özellikler hakkında daha fazla bilgi edinin.
Örneğimiz zaten yerleşik bir bileşen olan amp-img
'yi kullanıyor ve bu bileşenin "HTML'nizi AMP'ye dönüştürün" öğreticisinde AMP yerleşim sistemi ile nasıl ilişkili olduğunu keşfettik. Şimdi, haber makalemize yaygın olarak kullanılan bazı genişletilmiş AMP bileşenlerini ekleyelim.
Reklamlarla para kazanma
AMP'deki reklamlar amp-ad
bileşeni kullanılarak oluşturulur. amp-ad
bileşeni, reklamları genişlik, yükseklik ve yerleşim modu gibi çeşitli şekillerde yapılandırmanıza olanak tanır. Bununla birlikte, birçok reklam platformu, reklam ağının hesap kimliği, hangi reklamın sunulması gerektiği veya reklamı hedefleme seçenekleri gibi ek yapılandırma gerektirir. Bu seçenekler, amp-ad
bileşeninde HTML öznitelikleri kullanılarak kolayca belirtilir.
DoubleClick reklamının bu örneğine bir göz atın:
<amp-ad
width="300"
height="250"
type="doubleclick"
data-slot="/35096353/amptesting/image/static"
>
</amp-ad>
Gördüğünüz gibi, bu çok basit bir yapılandırma. Kullanmak istediğimiz reklam platformunun amp-ad
bileşenini bilgilendiren type
özniteliğine dikkat edin. Bu durumda, DoubleClick platformunu kullanmak istiyoruz, bu yüzden doubleclick
'i değer olarak belirttik.
data-slot
özniteliği daha benzersizdir. amp-ad
'de, data-
ile başlayan tüm öznitelikler sağlayıcıya özgü özniteliklerdir. Bu, tüm sağlayıcıların mutlaka bu özel özniteliğe ihtiyaç duymayacağı ve sağlanırsa mutlaka tepki vermeyeceği anlamına gelir. Örneğin, yukarıdaki DoubleClick örneğini A9 platformundaki aşağıdaki test reklamıyla karşılaştırın:
<amp-ad
width="300"
height="250"
type="a9"
data-aax_size="300x250"
data-aax_pubname="test123"
data-aax_src="302"
>
</amp-ad>
Yukarıdaki örneklerin her ikisini de <header>
etiketinden hemen sonra makalenize eklemeyi deneyin.
Tüm bileşenlerin çekirdek AMP kitaplığı JavaScript dosyasına dahil edilmediğini unutmayın. Reklam bileşeni için ek bir JavaScript isteği eklememiz gerekiyor.
Aşağıdaki komut dosyasını <head>
etiketine ekleyin:
<script
async
custom-element="amp-ad"
src="https://cdn.ampproject.org/v0/amp-ad-0.1.js"
></script>
Sayfayı yenileyin ve iki test reklamı görmelisiniz:
Mixed Content
veya XMLHttpRequest cannot load
gibi olabilir. İlk hata muhtemelen A9 reklamıyla ilgilidir, çünkü yüklediği tüm içerik güvenli değildir. Bu, AMP'de sunulan tüm reklamlar için dikkate değer bir gerekliliktir. Aşağıdaki iki amp-ad
s, amp-ad
'ın reklam platformu özelliklerini desteklemek için sağladığı esnekliğin bir örneğini sağlar. Bu durumda, iki DoubleClick test reklamını yalnızca belirli ülkelerde gösterilecek şekilde (DoubleClick'in kontrol panelini kullanarak) yapılandırdık. İlki yalnızca Birleşik Krallık'ta ve ikincisi yalnızca ABD'de gösterilecek. Bu iki coğrafi hedefleme reklam yapılandırmasını AMP belgesine, daha önce eklediğiniz reklamların altına eklemeyi deneyin:
<amp-ad
width="300"
height="250"
type="doubleclick"
data-slot="/35096353/amptesting/geo/uk"
>
<div fallback>No ad appeared because you're not browsing from the UK!</div>
</amp-ad>
<amp-ad
width="300"
height="250"
type="doubleclick"
data-slot="/35096353/amptesting/geo/us"
>
<div fallback>No ad appeared because you're not browsing from the US!</div>
</amp-ad>
Sayfayı yenileyin ve bir göz atın. Aşağıdaki ekran görüntüsü Kanada'dan alındı, bu yüzden hiçbir reklam yüklenmedi:
amp-ad
etiketlerinin içinde, fallback
adlı bir özniteliğe sahip ek div
etiketleri olduğunu fark edebilirsiniz. fallback
özniteliğinin neyi ifade ettiğini tahmin edebilir misiniz? AMP yükleme sistemini, yalnızca ana öğe başarıyla yüklenemediğinde bu öğenin içeriğini göstermesi için bilgilendirir. Yer tutucular ve geri dönüşler hakkında daha fazla bilgi edinin.
amp-ad
bileşeninin referans belgelerini okuyun.
AMP belgemiz artık bir hikaye anlatmak ve içeriğinizden para kazanmak için önemli bileşenler olan sayfaya gömülü metin, resim ve reklam içeriyor. Bununla birlikte, modern web siteleri genellikle sadece resim ve metinden daha fazla işlevsellik içerir.
AMP belgemizi bir sonraki seviyeye taşıyalım ve haber makalelerinde yaygın olarak bulunan daha gelişmiş web işlevselliği ekleyelim:
- YouTube videoları
- Tweetler
- Makale alıntıları
Bir YouTube videosu yerleştirin
Belgeye bir YouTube videosu yerleştirmeyi deneyelim. AMP belgenizdeki <header>
öğesinden hemen sonra aşağıdaki kodu ekleyin (yeni eklediğiniz amp-ad
s üstünde):
<amp-youtube
data-videoid="npum8JsITQE"
layout="responsive"
width="480"
height="270"
>
<div fallback>
<p>The video could not be loaded.</p>
</div>
</amp-youtube>
Sayfayı yenileyin. Videonun yerine şu metni göreceksiniz: "Video yüklenemedi."
Tarayıcınız YouTube videolarını sorunsuz bir şekilde gösterebilse bile, yine de bu hatayı alırsınız. Neden? Video aslında yüklenemedi, daha ziyade bileşenin kendisi başarısız oldu.
Tüm bileşenlerin çekirdek AMP kitaplığı JavaScript dosyasına dahil edilmediğini unutmayın. YouTube bileşeni için ek bir JavaScript isteği eklememiz gerekiyor.
#development=1
varsa, bu noktada amp-youtube
JavaScript'ini eklemenizi hatırlatan bir AMP validator hatası ve eklenecek script
etiketini size bildiren belgelere bir bağlantı görürsünüz. Aşağıdaki komut dosyasını <head>
etiketine ekleyin:
<script
async
custom-element="amp-youtube"
src="https://cdn.ampproject.org/v0/amp-youtube-0.1.js"
></script>
Sayfayı yenileyin ve YouTube videosunu görmelisiniz:
Sayfadaki diğer öğelerde olduğu gibi, AMP yerleşim sisteminin en boy oranını hesaplayabilmesi için videonun width
ve height
özniteliklerini belirttik. Ayrıca, layout
responsive
olarak ayarlıyoruz, böylece video ana öğesinin genişliğini dolduruyor.
YouTube videolarını yerleştirme hakkında daha fazla bilgi edinmek için amp-youtube
bileşen belgelerini okuyun. Daha fazla video ve medya bileşeni için medya AMP bileşenlerinin listesine göz atın.
fallback
özniteliğini kullanın. Bir Tweet görüntüleme
Twitter'dan önceden biçimlendirilmiş tweet'leri yerleştirmek, haber makalelerindeki yaygın bir özelliktir. amp-twitter
bileşeni bu işlevselliği kolaylıkla sağlayabilir.
Belgenizin <head>
etiketine aşağıdaki JavaScript isteğini ekleyerek başlayın:
<script
async
custom-element="amp-twitter"
src="https://cdn.ampproject.org/v0/amp-twitter-0.1.js"
></script>
Şimdi, makalenize Tweet yerleştirmek için bu kodu ekleyin:
<amp-twitter
width="486"
height="657"
layout="responsive"
data-tweetid="638793490521001985"
>
</amp-twitter>
data-tweetid
özniteliği, belirli bir platformun gerektirdiği özel bir özniteliğin başka bir örneğidir. Bu durumda Twitter, data-tweetid
özniteliğinin değerini belirli bir Tweet ile ilişkilendirir.
Tarayıcınızı yenileyin ve sayfaya bir göz atın. Tweetin göründüğünü görmelisiniz:
Twitter tweet'lerini yerleştirme hakkında daha fazla bilgi edinmek için amp-twitter
bileşen belgelerini okuyun.
Bir makale alıntısını vurgulayın
Haber makalelerinde ortak bir özellik, makaleden özellikle ilgi çekici metin parçacıklarını vurgulamaktır. Örneğin, belirli bir kaynaktan bir alıntı veya önemli bir gerçek, okuyucunun dikkatini çekmek için daha büyük bir yazı tipinde tekrarlanabilir.
Bununla birlikte, tüm metin parçacıkları mutlaka aynı karakter uzunluğuna sahip değildir, bu da metnin sayfada tükettiği alan miktarıyla daha büyük bir yazı tipi boyutunu dengelemeyi zorlaştırabilir.
AMP, bu tür bir durum için özel olarak tasarlanmış başka bir bileşen sağlar, buna amp-fit-text
bileşeni denir. amp-fit-text
bileşeni, sabit bir genişlik ve yükseklik öğesinin yanı sıra maksimum yazı tipi boyutunu tanımlamanıza olanak tanır. Bileşen, metni kullanılabilir genişlik ve yüksekliğe sığdırmak için yazı tipi boyutunu akıllıca ölçeklendirir.
Bunu bir deneyelim. İlk olarak, bileşenin kitaplığını <head>
etiketine ekleyin:
<script
async
custom-element="amp-fit-text"
src="https://cdn.ampproject.org/v0/amp-fit-text-0.1.js"
></script>
Sayfanıza aşağıdakileri ekleyin:
<amp-fit-text width="400" height="75" layout="responsive" max-font-size="42">
Big, bold article quote goes here.
</amp-fit-text>
Sayfayı yenileyin ve sonuca bakın!
Şimdi, daha fazla deney yapın. Alıntı çok daha kısaysa ne olur?
<amp-fit-text width="400" height="75" layout="responsive" max-font-size="42">
Hello!
</amp-fit-text>
Ya da alıntı daha uzunsa ne olur?
<amp-fit-text width="400" height="75" layout="responsive" max-font-size="42">
And the Raven, never flitting, still is sitting, still is sitting. On the
pallid bust of Pallas just above my chamber door; And his eyes have all the
seeming of a demon’s that is dreaming, And the lamp-light o’er him streaming
throws his shadow on the floor; And my soul from out that shadow that lies
floating on the floor. Shall be lifted—nevermore!
</amp-fit-text>
amp-fit-text
ile yapılan son bir deney olarak, çok daha büyük bir yüksekliğe (örneğin, 400 değeri) sahip "Merhaba" gibi kısa bir metin parçası oluşturmayı ve maksimum yazı tipi boyutu öznitelik değerini 42 olarak korumayı deneyin. Ortaya çıkan sayfa nasıl görünecektir? Metin dikey olarak ortalanmış mı? Veya amp-fit-text
etiketinin yüksekliği maksimum yazı tipi boyutuna uyacak şekilde küçülüyor mu? AMP'nin yerleşim sistemi hakkında zaten bildiklerinizi kullanarak, kodla oynamadan önce soruyu yanıtlamaya çalışın!
amp-fit-text
hakkında daha fazla bilgiyi AMP by Example'ın canlı demosundan öğrenebilirsiniz.