Np-Urのデータ分析教室

オーブンソースデータなどWeb上から入手できるデータを用いて、RとPython両方使って分析した結果を書いていきます

ShinyとGoogle PageSpeed Insights API を連携してみる【前編】

本記事は、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を使うのに必要な情報を取得します。
f:id:Np-Ur:20181224185908p:plain

ボタンクリック後に表示される文字列は、コピーしておくかどこかに保存しておいてください。

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を叩いてみます。