本記事は、Shiny Advent Calendar 2018の16日目の記事です。
そして、Shiny100本ノックの第35弾です。
今回から数回に渡り、Google PageSpeed Insights API とShinyを連携させてアプリケーションを作ってみます。
本記事では、 PageSpeed Insightsの説明からAPIを使えるようになるまでを説明します。
PageSpeed Insightsとは?
PageSpeed Insights は、Googleが提供するサービスの一つで、URLを入力するとそのページの読み込み速度をスコアリングしてくれます。https://developers.google.com/speed/pagespeed/insights/
まだ使ったことが無い方は、試しに自社サイトや自分が管理しているサイトのURLを入力してみてください。
ページの読み込み速度が遅いと、せっかく訪問してくれたユーザーがすぐに離脱してしまいます。ユーザーにとっての体験が悪くなるということは、SEO的にも当然影響が出てきます。
PageSpeed Insights APIの導入方法
読み込み速度を上げるための施策は- 画像の最適化
- CSSやJSファイルのキャッシュ設定
など様々あり、それぞれ行うたびにPageSpeed Insights を試して数値が改善したか調査する必要あります。
毎回、各URLを入力するのは大変なので、APIから実行できるようにしておきましょう。
といっても既にGoogle のAPIを使ったことのある方にとってはとても簡単です。
まだGoogle のAPIを使うためのプロジェクトを作成していない場合は、以下を参考に作っておいてください。
www.randpy.tokyo
プロジェクトを作成したGoogleアカウントにログインしている状態で、以下のページにいきます。
https://developers.google.com/speed/docs/insights/v5/get-started
ページ中部の「Get A Key」ボタンをクリックして、APIを使うのに必要な情報を取得します。
ボタンクリック後に表示される文字列は、コピーしておくかどこかに保存しておいてください。
RからPageSpeed Insights APIを使ってみる
では、Rから使ってみましょう。Rコンソール上で以下を実行してください。
> library(httr) > GET("https://www.googleapis.com/pagespeedonline/v4/runPagespeed?url=http://www.randpy.tokyo/&strategy=desktop&key=XXXXXXXX")
XXXXXXXX のところは、先ほどコピーしたキーを入力してください。
色々結果が返ってくると思いますが、
...
"ruleGroups": {
"SPEED": {
"score": 77
}.
..
このように、"ruleGroups" の "SPEED"の下に、スコアが格納されています。とても簡単にRから取得することができました。
まとめ
今回は、導入編として、Google PageSpeed Insights API をRから使うための準備を整えました。次回は、ShinyからAPIを叩いてみます。