rcmdnk's blog

20230917_analytics_200_200

7月まででGoogle Analyticsのユニバーサルアナリティクス(UA)が停止し、 Googleアナリティクス4(GA4)のみ使える状態になりました。

ちょっと放置してたのですが対応しました。

UAからGA4へのタグ等の変更

サイトに埋めてあるアナリティクス用のタグに関しては、 アナリティクス側で元々あるUAのプロパティから新たに作成したGA4のプロパティ に接続するとそのままでもGA4側にもデータが送られるようになります。

ということで、とりあえずしばらくはアナリティクス上での操作だけでそのままにしてました。

この状態でUA、GA4両方のプロパティにデータが送られる状態になってました。

7月でUAの方のデータは停止しましたが、古いタグのままでもGA4にはデータが送られている状態。

このままでも良さそうですが、UA側はもう使えないのでちゃんとGA4のプロパティのタグを導入。

アナリティクスの管理画面上で、該当のプロパティの

管理プロパティデータストリーム<該当のストリーム名>タグの実装手順を表示する

へ行くと

1
2
3
4
5
6
7
8
9
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=<測定ID>"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', '<測定ID>');
</script>

といったタグが得られるのでこれを参考に。

とはいえ、以前のUAでもgtag.jsを使えるようになっているので、すでにgtagを使ってる場合はIDの部分を変えるだけでOK。

analytics.jsを使ってる場合はGA4ではgtag.jsの上記のスクリプトに置き換えないといけません。

ページビューを取得するプラグインのアップデート

Jekyllでビルドする際にRubyのgoogle-api-client を使ってましたが、 これを google-analytics-data を使う様に変更。

とりあえず新しいAPIを使うための準備として、

  • Google Cloud Consoleでの準備
    • 他でもAPI関連で使ってるプロジェクトの中でサービスアカウントを追加し、作られたメールアドレスをメモしておく。
    • 作ったサービスアカウントのキーからJSON形式の鍵を作成して鍵ファイルを入手。
    • Analyticsを有効にするため、プロジェクトでGoogle analytics Data APIを有効に。
  • Analyticsでの準備
    • 該当するプロパティの管理プロパティ設定などに行き、9桁のプロパティIDを取得。
    • 該当するプロパティの管理アカウントのアクセス管理で上で取得したメールアドレスを追加する(権限は閲覧者)。

これで準備ができたので、 google-analytics-dataをgem install gogole-analytics-dataなどでインストールして、 テストコードを走らせてみます。

Ref: Ruby client library Google Cloud

get_page_view.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env ruby

require "google/analytics/data"


def page_view(property_id, credentials, start_date, end_date)
  client = Google::Analytics::Data.analytics_data do |config|
      config.credentials = credentials
  end

  request = Google::Analytics::Data::V1beta::RunReportRequest.new(
    property: "properties/#{property_id}",
    dimensions: [Google::Analytics::Data::V1beta::Dimension.new(name: "pagePath")],
    metrics: [Google::Analytics::Data::V1beta::Metric.new(name: "screenPageViews")],
    date_ranges: [Google::Analytics::Data::V1beta::DateRange.new(start_date: start_date, end_date: end_date)]
  )

  response = client.run_report(request)

  response.rows.each do |row|
    puts "Page: #{row.dimension_values.first.value}, Page view: #{row.metric_values.first.value}"
  end
end

page_view("<property_id>", "<key_file.json>", "30daysAgo", "today")

といった感じのテストコードを実行してみます。 (peoperty_idkey_file.jsonを上で取得したアナリティクスのプロパティIDと保存した鍵ファイルへのパスへ変更。)

RunReportRequestで取得する際の設定として

  • dimensions: pagePathを指定してページごとの値を取得
  • metrics: screenPageViewsで表示数を取得
  • date_ranges: 30daysAgoからtodayまで

screenPageViews以外にも色々取れるものは以下を参照。

また、date_rangesのところで、以前のAPIだと指定の仕方も色々違いますが、 値として 1 month ago, 1 day agoといった指定だったのに対してこのAPIではmonthとかyearとかweekとかは使えずに全てdaysNdaysAgoといった感じで指定するか、yesterday, todayでの指定、もしくはYYYY-MM-DDでの直接日付指定をするようになっています。

これで動いたら適当にこれを使ってプラグインなどを作ります。 以下関連プラグインの変更点など。

feat: Update Google Analytics API V3->V4 in page_view.rb · rcmdnk/octopress-page-view@a79c715

feat: update Google Analytics API v3 -> v4 (following octopress-popul… · rcmdnk/octopress-share-numbers@94fed6e

feat: update Google Analytics API v3 -> v4 · rcmdnk/octopress-popular-posts@9c7e364

Sponsored Links
Sponsored Links

« GitHubで自分のレポジトリにstarが付いたのが分かる前のダッシューボードを見る conf-finder: コマンドラインツールの設定ファイルを探し出すPythonのライブラリ »

}