あらゆる規模のサイト運営者やクリエイターは、Web Stories の採用を進め、魅力的で物語性のある体験をユーザーに提供しています。パートナーから寄せられている主な要望は、成長を続けるこのコンテンツ形式を簡単かつ効率的に収益化することです。現在まで、サイト運営者が Web Stories を収益化する主な方法は、直販広告とアフィリエイト リンクでした。
Google は Web Stories 向けにプログラム広告ソリューションをリリースし、アド マネージャーや AdSense を使っている世界中のすべてのサイト運営者がこの仕組みを利用できるようにします。サイト運営者は、この新機能を使って Web Stories から簡単に収益を上げることができます。
ストーリー広告
Web Stories は、ユーザーをコンテンツに没入させるタップ可能な全画面のページです。ストーリー広告は、魅力的な全画面の広告クリエイティブです。ユーザーの操作にシームレスに組み込むことができるので、ストーリーのコンテンツへのエンゲージメントや興味を維持できます。Web Stories でストーリー広告を表示する頻度や場所は、ユーザー エクスペリエンスと収益化の可能性の両方を最適化するために動的に決定されます。
今年、AMP Stories の名称を Web Stories に変更することをお知らせしました。これは、#nocode ツールを使ってこのフォーマットを活用しているクリエイターやコンシューマーが増加している状況を受けてのことです。それ以来、サイト運営者やウェブ クリエイターによるこのフォーマットの採用が続いています。
サイト運営者やウェブ クリエイターによる Web Stories フォーマットの採用が続いている
この勢いに乗り、カスタマイズ可能なクイズ、投票機能、360 度動画の組み込み、高機能なオープンソース Story Player を使って Web Stories をサイトに直接埋め込む機能など、Web Stories フォーマットの最新アップデートについてお知らせしました。これは、Google の Web Stories チームからの Discover に Web Stories が登場するという最近の発表に続くものです。Discover は Android および iOS の Google 製アプリの一部で、毎月 8 億人以上が利用しています。
Uno TV のソフトウェア エンジニアリング マネージャーである Violeta Rosales 氏は、このデジタル ニュース局がどのようにウェブサイトを AMP ファーストに移行したかについて説明しました。さらに、その移行作業の間に Uno TV が実際に体験したメリットや課題についてもお話ししています。
Televisa Digital の CTO である Antonio González de León 氏は、Televisa が AMP ファーストに移行した際の教訓を分かち合ってくれました。新しいサイト運営者やデベロッパーがベテランのメディア事業から学ぶことができる、その他の教訓も含まれています。
# Hello AMPHTML World
<amp-carousellightboxamp-fx="fade-in"layout='responsive'width='600'height='400'type='slides'><amp-imgsrc='https://picsum.photos/id/1015/600/400'layout='fill'></amp-img><amp-imgsrc='https://picsum.photos/id/1016/600/400'layout='fill'></amp-img><amp-imgsrc='https://picsum.photos/id/1018/600/400'layout='fill'></amp-img></amp-carousel>
Checkout this video:
{% video "my-video.mp4" %}
Or this tweet (the number specifies the embed height):
{% twitter "1182321926473162752"472 %}
Here is a Youtube video:
{% youtube "v0BVLgEEuMY" %}
And of course Instagram:
{% instagram "BMQ8i4lBTlb" %}
AMP には、この問題を回避するためのテクニックがあります。たとえば、ページに div 要素を追加し、最初のページの API の結果を使ってサーバーサイドでレンダリングを行います。初期状態では、div は表示、amp-list は非表示になっています。ユーザーがボタンをクリックすると、div が更新されて非表示になり、amp-list は表示されます。
<divhidden="false"
[hidden]="filter.changesMade"
>
... server side rendered content ...
</div><amp-listhidden="true"
[hidden]="!filter.changesMade"src="/api/search?order=atoz&size=small"
[src]="'/api/search?order=' + filter.order + '&size=' + filter.size"...>
このアプローチは問題なく動作しますが、いくつか欠点もあります。たとえば、管理が必要な AMP state が増え、サーバー側とブラウザ側で同じようにコンテンツを描画するという複雑な処理を追加する必要もあります。
amp-state プレフィックスの導入
現在の AMP では、もっとシンプルなソリューションがあります。amp-list は API 呼び出しを行わずに AMP state に基づいてコンテンツを描画する機能をサポートしており、それを活用します。API 呼び出しは、amp-list が直接行うのではなく、AMP state が更新されたタイミングで行われます。
先日 AMP に追加された “amp-state:” プレフィックスを使うと、API 呼び出しを行わずに AMP state から初期状態の amp-list をレンダリングできます。“src” 属性と “[src]” 属性の両方で同じ “searchResponse” AMP state を参照している点に注意してください。これにより、整合性が保証されます。これは amp-state 要素と連動して動作します。この要素は JSON コンテンツで初期化し、その後 “[src]” 属性の API 呼び出しで更新されます。
<amp-stateid="searchResponse"
[src]="'/api/search?order=' + filter.order + '&size=' + filter.size"
><scripttype="application/json">
... server side injected initial AMP state goes here ...
</script></amp-state>
つまり、ページ読み込み時の AMP state は、ページに埋め込まれた JSON で初期化されます。その後、amp-list は Mustache テンプレートを使ってその状態を描画します。最初の AMP state は、サーバーサイドでページに注入されます。JSON は多くのプログラミング言語でサポートされているので、注入プロセスは簡単です。(AMP Mustache ライブラリは JavaScript でのみ利用できます。そのため、サーバーサイド レンダリングに PHP を使っているような場合は、組み込みが難しくなります。)
この例では、初期ページが描画された後、ボタンが押されたタイミングで “filter.order” や “filter.size” が更新されます。すると、amp-state コンポーネントが API 呼び出しを行い、“searchResponse” AMP state を更新します。これにより、amp-list コンポーネントが Mustache テンプレートを使って更新されたレスポンスを描画します。
その結果、最初の描画を行うために必要な個別の API 呼び出しは行わず、返されたページに JSON を注入して amp-list を初期化できるようになります。これには、それぞれのボタンやコンポーネントの責任を明確に区別できるようになるという効果もあります。ユーザー インターフェースは状態の更新を制御し、AMP は適切にページを更新するために必要な一連の更新作業と API 呼び出しを行います。
Web Story の各ページでは、ユーザーが目で見る場合と、補助テクノロジー(キーボードによるナビゲーションなど)の両方で、明確な情報フローが確立されている必要があります。そこで重要なのは、Web Story のマークアップが、意図したとおりの順序で体験できることです。これは DOM 構造の中で自然に実現できますが、簡単にはできない場合、意味のある順番で進むように `tabindex` 属性でフォーカス順序を指定できます。
Web Story はアクセシビリティを提供できるように設計されており、ユーザー エクスペリエンス全体にわたって重要な機能を組み込むことができます。しかし、メディア要素にアクセシビリティ テキストや字幕を入れる、重要なテキストのコントラストに注意を払うといったコンテンツのベスト プラクティスへの準拠は、ストーリーの制作者にかかっています。