2016.04.08

AMP(Accelerated Mobile Pages)に対応した件

こんにちは。UI/UXD領域を担当しているT.I.です。
2月24日からGoogleの検索結果に導入されたモバイルサイトの高速表示化プロジェクトであるAccelerated Mobile Pages(以降、AMPと表記)ですが、当ブログもこれに対応してみましたので、フロント実装の内容共有エントリーです。

AMPとは

Googleが推進するモバイルでの検索結果表示を高速化するためのオープンソース仕様に沿って作成された仕様です。Google側でAMP形式で書かれたウェブページをキャッシュすることで表示速度が向上できるというものです。


参考
Accelerated Mobile Pages プロジェクトについて — 導入ガイド日本語版を本日公開しました


過去の投稿をAMP化したもの(UserAgentをスマホにして確認ください)
http://recruit.gmo.jp/engineer/jisedai/blog/customerjourneymap_201503/?amp=1

AMPの導入方法

通常ページとAMP対応ページを作ることになります。

CMSなどの場合、プラグインが開発されている

WordpressやDrupalといったメジャーなCMSでは既にPlug-inが公開されています。便利な世の中ですね。
https://wordpress.org/plugins/amp/
https://www.drupal.org/project/amp

独自デザインやCMSでない場合の実装

基本的に以下の3点の対応があります。

1. head / meta
2. xml(html)
3. css / JavaScript など外部ファイル

head / meta

・HTMLタグに[?]を入れる
・canonical と amphtml の設定
<!DOCTYPE html>
<html ?>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<link rel="canonical" href="本来のURL" />
<link rel="amphtml" href="本来のURL?amp=1">

xml (html)

様々なhtmlタグの利用がNGとなっています。imgタグであれば amp-img に、analytics の場合は amp-analytics にして設定する必要があります。

htmlタグについてのAMP公式解説(英語)
https://www.ampproject.org/docs/reference/spec.html#html-tags

amp-analytics についてのAMP公式解説(英語)
https://developers.google.com/analytics/devguides/collection/amp-analytics/

css / js

・AMP用jsライブラリ
・構造化の設定(schema.org)
・他のjsは一切使用の禁止
・インラインでのスタイル設定の禁止
・amp-boilerplateの読み込み

デバッグ

URLの最後に #development=1 を追加すると、コンソールにエラーなどを表示でき、確認ができます。

http://recruit.gmo.jp/engineer/jisedai/blog/customerjourneymap_201503/?amp=1#development=1

さいごに

本サイトにおいては /jisedai/blog/ 配下のページのみ、 ampのif分岐を設定し、amp-header、amp-footerと言った別Templateを読むようにしています。作業時間としては約3時間くらいでした。AMPの理解やコーディングに慣れていれば、もっと早く出来るかもしれませんね。

次世代システム研究室では、新しい技術やユーザー体験最適化に興味を持った開発者を募集しています。特にスマートデバイスのUX設計に興味がある方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いいたします。

募集職種一覧

皆様からのたくさんのご応募、お待ちしてます。

  • Twitter
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ