2021年3月23日

マーケティング

Google Analyticsの新バージョン!「Google Analytics 4(GA4)」のレポートデータをRubyで取得する

目次

  1. はじめに
  2. 導入
  3. Google Analytics Data APIの取得方法
  4. まとめ

はじめに

2005年からリリースされているGoogle社の無料アクセス解析ツール「Google Analytics(GA))」が、2020年10月に新バージョンの「Google Analytics 4(以下「GA4」)」をリリースしました。

リリースに伴いアナリティクスのページや考え方も変わったので、Google Analytics Data APIでのデータ取得方法も変わったようです。
この記事ではRubyを使用してGA4のレポートデータの取得方法を紹介していきます!

導入

GA4で何が変わった?

GA4は次世代のGoogle Analyticsと呼ばれています。
今までのGAは「ページ」単位という考え方から「滞在率」、「直帰率」というよう分析を行うことができました。

しかし、アプリのようなページの概念のないものから、SPAのようなページ遷移を行わずコンテンツを切り替えるようなサイトが現れてからは「ページ」単位での解析では追いつかないようになっていました。

そこでリリースされたのがGA4です!ベータ版の時の名称は「アプリ + ウェブプロパティ」といい、アプリにもウェブにも対応したデータを組み合わせることで分析ができるようになりました。

またGA4では、そのページで何をしたかという「イベント」という考え方が重要になってきます。GA4上ではページビューもひとつの「イベント」という扱いになります。

Google Analytics Data APIとは?

GAのデータを取得できるAPIで、GAのレポートのデータにプログラムを使ってアクセスすることができます。

データを自分が見たいように自由にカスタムできたり、自分のWebページにアクセス数を表示したりなど柔軟にGAデータを活用することができます。

多く使われている人気プログラミング言語では「Google API クライアントライブラリ」が使用でき、ライブラリを使用すれば、API を簡単に使用できるようになります!

Google Analytics Data APIの取得方法

では、早速Rubyを使用してGA4のデータを取得してみましょう。Rubyを使う場合、gemで簡単にデータを取得することができます。

導入手順

GoogleAPIを叩くクライアント用のgemはいくつかあるのですが、GA4の公式APIクイックスタートに記載されている「google-analytics-data-v1alpha」を使います。

以下、GoogleAPI公式ドキュメントを参考にRailsアプリに導入していきます。

前提としてGA4のプロジェクトは作成ずみのものとします。
未作成の場合はGAプロジェクト作成手順を基に作成します。

環境

  • Ruby 2.6.6(2.5.0以上推奨)
  • Rails 6.0.3

1. gemのインストール
Gemfileに以下を追加しbundle installをします。

gem install google-analytics-data-v1alpha

2. Google Cloud Platform(GCP)でプロジェクトを作成する

こちらから作成できます。詳しい手順はGCP公式ドキュメントを参考にします。
また、作成したプロジェクトの課金を有効にします。

3.作成したプロジェクトのGoogle APIs から、サービスアカウント認証情報を登録して、JSON ファイルを取得する

APIとサービス>認証情報>認証情報を作成をクリックします。
スクリーンショット 2021-03-19 17.27.32.png (172.1 kB)

サービスアカウントを選択して名前をつけて保存を押すとアカウントが作成されます。
スクリーンショット 2021-03-19 17.37.36.png (37.9 kB)

作成されたアカウントをクリックし、詳細>キーのタブをクリックし、鍵を追加>新しい鍵を追加と進み、JSONを選択して作成しキーファイルをダウンロードします。
スクリーンショット 2021-03-19 17.33.15.png (102.1 kB)
スクリーンショット 2021-03-19 18.53.57.png (59.6 kB)

中身は以下のようにとなっています。
ダウンロードしたJSONファイルは、ライブラリがAPIリクエストを認証するために使用するので、安全な場所に保存して下さい。
スクリーンショット 2021-03-19 17.30.06.png (67.8 kB)

5. 作成したプロジェクトでGoogle Analytics Data APIを有効化する
こちらから有効化します。
スクリーンショット 2021-03-19 17.18.47.png (73.9 kB)

6. GAプロジェクトにサービスアカウントをユーザー追加

GAのプロジェクトページにて管理(左サイドバーの歯車マーク)>アカウントユーザーの管理>アカウントの権限から作成したサービスアカウントのメールアドレスを入力しユーザーを追加します。

7. GA4のアカウントIDを控える

プロジェクトページにて管理>アカウント設定からアカウントIDを控えます。
スクリーンショット 2021-03-19 17.39.33.png (75.5 kB)

以上が導入までの手順となります。次にデータを取得するサンプルソースは以下になります。

サンプルソース

環境変数

作成したjsonキーを保存したパスを「ANALYTICS_CREDENTIALS」という環境変数に入れ、.envファイルに記入します。

ディメンションとメトリクス

取得したいディメンションとメトリクスは
Analytics DataAPIクエリでサポートされているディメンションと指標を参考に設定します。

ディメンションとメトリクスについてはこちら。

今回は昨日のURLごとのページビューを取得していこうと思います。

ソース

require "google/analytics/data/v1alpha"
require 'date'

def execute
  ga = ::Google::Analytics::Data::V1alpha
  client = ga::AnalyticsData::Client.new

  # 昨日の日付の開始から終了までのデータ
  yesterday = Date.yesterday.strftime('%Y-%m-%d')

  entity = ga::Entity.new(property_id: "任意のGAアカウントID" )
  # screenPageViews(旧ページビューと同じデータ取得できる)を指定
  metric =  ga::Metric.new(name: 'screenPageViews')
  # ディメンションはページのURLごとに取得
  dimension = ga::Dimension.new(name: 'pagePathPlusQueryString')
  date_range = ga::DateRange.new(start_date: yesterday, end_date: yesterday)

# リクエストを生成
  request = ga::RunReportRequest.new(
    metrics: [metric],
    entity: entity,
    dimensions: [dimension],
    date_ranges: [date_range],
  )

  # レスポンスを取得する
  response = client.run_report(request)
end

結果

responseには以下のデータが入ってきています。


Google::Analytics::Data::V1alpha::RunReportResponse: dimension_headers: [<google::analytics::data::v1alpha::dimensionheader: name:"pagepath"="">],
metric_headers: [<google::analytics::data::v1alpha::metricheader: name:="viewspersession" ,="" type:="" :type_float="">],
rows: [
<google::analytics::data::v1alpha::row: dimension_values="" :[<google::analytics::data::v1alpha::dimensionvalue:="" value="sample/url/pages">], metric_values: [<google::analytics::data::v1alpha::metricvalue: value:="1014">],...],
metric_values: [<google::analytics::data::v1alpha::metricvalue: value:"1"="">]], totals: [], maximums: [], minimums: [], row_count: 28, meta
data: <google::analytics::data::v1alpha::responsemetadata: data_loss_from_other_row:="" false="">></google::analytics::data::v1alpha::responsemetadata:></google::analytics::data::v1alpha::metricvalue:></google::analytics::data::v1alpha::metricvalue:></google::analytics::data::v1alpha::row:></google::analytics::data::v1alpha::metricheader:></google::analytics::data::v1alpha::dimensionheader:>

無事GA4のデータが取れました!

まとめ

新しくなったGAでよりユーザーの行動に沿った分析ができるようになったので、サービスの向上にどんどん役立てていきたいですね!

また、GA4の情報はかなり少なく自分自身とても困ったので、参考にしていただければと思います!

Google Analyticsのお仕事に関するご相談

Bageleeの運営会社、palanではGoogle Analyticsに関するお仕事のご相談を無料で承っております。
zoomなどのオンラインミーティング、お電話、貴社への訪問、いずれも可能です。
ぜひお気軽にご相談ください。

無料相談フォームへ

0

0

AUTHOR

suzuki

suzuki

アプリでもっと便利に!気になる記事をチェック!

記事のお気に入り登録やランキングが表示される昨日に対応!毎日の情報収集や調べ物にもっと身近なメディアになりました。

簡単に自分で作れるWebAR

「palanAR」はオンラインで簡単に作れるWebAR作成ツールです。WebARとはアプリを使用せずに、Webサイト上でARを体験できる新しい技術です。

palanARへ
palanar

palanはWebARの開発を
行っています

弊社では企画からサービスの公開終了まで一緒に関わらせていただきます。 企画からシステム開発、3DCG、デザインまで一貫して承ります。

webar_waterpark

palanでは一緒に働く仲間を募集しています

正社員や業務委託、アルバイトやインターンなど雇用形態にこだわらず、
ベテランの方から業界未経験の方まで様々なかたのお力をお借りしたいと考えております。

話を聞いてみたい

運営メンバー

eishis

Eishi Saito 総務

SIerやスタートアップ、フリーランスを経て2016年11月にpalan(旧eishis)を設立。 マーケター・ディレクター・エンジニアなど何でも屋。 COBOLからReactまで色んなことやります。

sasakki デザイナー

アメリカの大学を卒業後、日本、シンガポールでデザイナーとして活動。

yamakawa

やまかわたかし デザイナー

フロントエンドデザイナー。デザインからHTML / CSS、JSの実装を担当しています。最近はReactやReact Nativeをよく触っています。

Sayaka Osanai デザイナー

Sketchだいすきプロダクトデザイナー。シンプルだけどちょっとかわいいデザインが得意。 好きな食べものは生ハムとお寿司とカレーです。

はらた

はらた エンジニア

サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

kobori

こぼり ともろう エンジニア

サーバーサイドエンジニア。SIerを経て2019年7月に入社。日々学習しながらRuby on Railsを使った開発を行っています。

sasai

ささい エンジニア

フロントエンドエンジニア WebGLとReactが強みと言えるように頑張ってます。

damien

Damien

WebAR/VRの企画・開発をやっています。森に住んでいます。

ゲスト bagelee

ゲスト bagelee

かっきー

かっきー

まりな

まりな

suzuki

suzuki

miyagi

ogawa

ogawa

雑食デザイナー。UI/UXデザインやコーディング、時々フロントエンドやってます。最近はARも。

いわもと

いわもと

デザイナーをしています。 好きな食べ物はラーメンです。

kobari

taishi kobari

フロントエンドの開発を主に担当してます。Blitz.js好きです。

shogokubota

kubota shogo

サーバーサイドエンジニア。Ruby on Railsを使った開発を行いつつ月500kmほど走っています!

nishi tomoya

aihara

aihara

グラフィックデザイナーから、フロントエンドエンジニアになりました。最近はWebAR/VRの開発や、Blender、Unityを触っています。モノづくりとワンコが好きです。

nagao

SIerを経てアプリのエンジニアに。xR業界に興味があり、unityを使って開発をしたりしています。

kainuma

Kainuma

サーバーサイドエンジニア Ruby on Railsを使った開発を行なっています

sugimoto

sugimoto

asama

ando

iwasawa ayane

oshimo

oshimo

異業界からやってきたデザイナー。 palanARのUIをメインに担当してます。 これからたくさん吸収していきます!

CONTACT PAGE TOP