最近、Google広告主コミュニティでもAMPに関するトピックが増えて来たように感じます。この傾向は、Google広告主コミュニティだけの話ではなく、Googleプロダクトフォーラム(ウェブマスターヘルプフォーラム)でもその傾向が強く出ているようです。
このブログもコンテンツページだけではあるもののAMP化したこともあり、自分もAMPの情報を色々探しています。そんな中で、Google広告主コミュニティでとある質問が目に止まり、調査などをした結果、AMPプロジェクトのドキュメントの誤りが原因であったこととが判明しましたそして、ちょうどそのプロジェクトが公開Githubで管理されていたこともあり、Forkから修正、Pull requestsの送信と行い、マージされたので、そのことについて書いてみます。
どんな質問だったのか。
お世話になります。
amp上でabテストを行いたく、下記を参考に実装しました。 https://ampbyexample.com/components/amp-experiment/ http://gawkerdata.kinja.com/a-b-testing-in-amp-with-google-analytics-getting-start-1785967152
特にjsエラーやampのエラーチェックツールでのエラーはなく、また、#amp-x-button-color-experiment=redのような指定で想定通りの表示の確認まではできました。
しかし、その結果をGoogle Analyticsで確認する方法がわかっていません。
試してみたことは下記の通りです。(ampのウェブテストのGoogle Analyticsでの設定方法のページが見つけられず、一般的なGoogle Analyticsのウェブテストを参考に指定しました)
Google Analyticsのウェブテストで「テストを作成」をクリック
テストを設定では、オリジナルのページにurl#amp-x-button-color-experiment=red、パターン1のページにurl#amp-x-button-color-experiment=blue を指定しました。
テスト用のコードはjavascriptなので、ampではエラーとなるので、貼り付けていません。(ampの仕様に則ってテスト用のコードは記載してあります。)
検証を行ったところ、「Google アナリティクストラッキングコードが見つかりません」と出ます。
開始をしても、データはないままとなっております。
ご教授頂けますと、助かります。
よろしくお願いします。
ウェブテスト機能をセットアップした時に表示されることがある「Google アナリティクストラッキングコードが見つかりません」は、指定したページをクロールた時に、トラッキングコードが見つかったかどうかをどのように判断するかの条件の問題なので、自分は深く考えないようにしています。
ここだけ見ると、「Google アナリティクストラッキングコードが見つかりません」の表示は気にせずにそのままウェブテストを開始して、数時間待てば計測が行われそうに感じます。
とはいえ、この時点では自分自身は、AMPアナリティクスについては詳しくなく、ようやく自身のブログのAMP化を開始したタイミングでした。そんなこともあって、最初の返信時点では、"triggers"オブジェクト内の"request"属性が重複している、という初歩的なミスにしか気づきませんでした。なお、ここで見つけたミスについては、Github(amp-by-example)のIssue amp-experiment: sample code is missing?にて報告を行い、その日のうちに修正されていました。
そもそものサンプルが間違っている疑念が浮上
最初の時点では、上記の"requests"の重複を取り除き、一定時間が経過すればレポートにも数字が載ってくると思っていましたが、数日後の返信でもデータが反映されないということでした。
ここにきて、自分でも少し細かく<amp-experiment>について調べてみることにしました。まずは、amp-by-exampleに載っているサンプルの通りのAMPページを作成し、Googleアナリティクスのウェブテストを作成し、テストするという単純なものです。自身は、過去にGoogleアナリティクスのウェブテスト機能を何度も使っており、どういう挙動をすれば正解かが分かっていたので比較的簡単でした。
このテストの結果、
- xvar変数として送るべき値(どのテストパターンを表示したか)が整数値インデックスではなく、制作者側が決めた文字列になっていた
- データ送信時のヒットタイプに許容されていない文字列「exp」が使われていた
という2つのバグがある疑惑が浮上しました。
Issueだけ送って直してもらうか、自分で直してPull Requestを送るか
前回の"requests"の重複の時のように、Issueだけ送って直してもらうことも可能でした。しかしながら、今回はそうはせずに、
- 該当のプロジェクトをForkする
- 自分でソースコードの改修を行う
- Pull Requestを送信し、レビューしてもらう
- 問題なければマージして公開してもらう
といったフローをとってみました。というのも、自分でも修正方針が思いついて、比較的簡単に直すことができそうだったというのが大きいです。
修正とPull Requestを行う
プログラムの修正は比較的簡単に行うことができました。しかしながらオープンソースの世界でそれを実際のプロダクトに反映させるには、プログラムの修正だけでは不十分です。プロダクトに反映させるには「修正を行ったので、問題がないか確認してください」といったレビューと呼ばれるプロセスが必要になり、その工程をGithubでは「Pull Request」と呼んでいます。
当然、AMPは世界レベルで展開されているプロジェクトなので、公用語は英語です。従って、Pull Requestは英語で行われます。このブログでは一部の記事の翻訳版も公開していますが、翻訳版を作る時は、自分自身で翻訳版を作成したあとに、クラウドソーシングを利用して英語とWebマーケティングに堪能な方にレビューしてもらい修正するべき箇所を全て修正していただいた上で公開しています(実際、レビュー時に上がってくる指摘は多岐に渡っており、最初から全部翻訳してもらった方が早いくらい、自分の英語力は皆無です)。
とはいえ、こういった技術英語は日常英語と比べると簡単で、分からない時はプログラムコードで示すことも可能ですし、Google Japan Blogの記事 - Google 翻訳が進化しました。にあるように、Google翻訳の精度が格段に向上したことで英語も書きやすくなりました(実際、Pull Request上でのやりとりは、投稿前にGoogle翻訳でチェックしました)。
Pull Request上の会話では、プログラムコードを書いて示したり、Google翻訳を活用したりすることで、英語が支障をきたすことはなかったように思います。
実際のPull Requestのやりとりは、Github: Modify google analytics experiment code, #493にて確認いただくことが可能です。おそらく会話としては成り立ってるんじゃないかと思っています。
そんなことで、少し時間はかかりましたが、修正の開始からレビューの完了まで約20日かけて昨日レビューが完了しました(そのうち返信待ちが10日間ありましたが)。2016/12/15 08:00時点では、 AMP BY EXAMPLE - amp-experimentへの反映は行われていないようですが、次のサイト更新で反映されることと思います。
まとめ
今回は今までの記事とは少し違って、自身の体験談を描いてみました。AMPのGithub(exampleサイトだけでなく、本家も含め)を見ていると、発展途上のプロダクトということもあり、様々な要望がIssueの形で寄せられており、日々やりとりが行われているようです。今後も引き続きAMPプロジェクトのIssueの動きなどを見ながら、自分が貢献できる所があれば積極的に関わっていこうと思っています。