トイレのうず

Simple GA4 Rankingでランキングが表示されないのを対処した

当記事はアフィリエイト広告を掲載しています。

Simple GA4 Ranking がランキングを表示しれくれなくなって早 1 年半が経ち、試行錯誤の結果やっと表示されるよう対処したのでその方法の備忘録です。

1 年半以上 Simple GA4 Ranking の人気記事が表示されない

2024 年 7 月に WordPress の PHP を 8 系にしたタイミングで、人気記事を Google アナリティクスから取得して表示する Simple GA4 Ranking (Simple GA 4 Ranking) が動かなくなりました。

公式サイトを見て何をどうやっても取得してくれなかったので、 1 年半以上放置していました。

→ DigitalCube LabWorks :ユニバーサル アナリティクス停止に伴う「 Simple GA Ranking 」プラグインのご利用について

Simple GA4 Ranking にて人気記事が表示されない

でもやはり気になるので最近再び検索してみると以下の記事を見つけました。

→ kennzo の備忘録: GA4 から人気記事を取得し表示する

3. 「 ADD USERS 」に, wordpress に登録しているメールアドレスを登録.

「対象」の「テストユーザー」に WordPress に登録してあるメールアドレスを追加

とあるので、「 Google Cloud 」にて上部メニューにて以前設定したプロジェクト名が表示されているのを確認し、「 API とサービス」→「 OAuth 同意画面」→「対象」の「テストユーザー」に WordPress に登録してあるアドレスを入れてみました。

→ Google Cloud – プラットフォーム

メールアドレスは、有効な Google アカウント、 Google Workspace アカウント、 Cloud Identity アカウントのいずれかに関連付けられている必要があります

すると上図のように表示されました。

メールアドレスは、有効な Google アカウント、 Google Workspace アカウント、 Cloud Identity アカウントのいずれかに関連付けられている必要があります

どうやら Google アカウントに登録してあるメールアドレスでないとダメなようです。 WordPress に登録してあるメールアドレスを Gmail のアドレスを取得しない方法で Google アカウントに登録しました。

WordPress の管理者のメールアドレスを Google アカウントに登録するとテストユーザーに登録できアクセストークンが取得できた

すると「 Google API 認証 ( 未認証 ) 」の「認証する」をクリックすると、トークンが取得できました。

しかしランキングが表示されません。キャッシュが残っているのかもと思い、データベースのバックアップを取った上で、 phpAdmin から Simple GA4 Ranking 関連のキャッシュデータをすべて消しましたが表示されないのは変わりません。そこで 5 日ほど放置しましたがやはり表示されません。

Google API にアクセスはできるがエラー

1 日 1 回 Google API にアクセスはできるがエラーになっている

なんとなく WordPress 側の問題ではなく Google API 側の設定の問題のような感じがしました。 Google Cloud のメニューから 「 API とサービス」を見てみると、 1 日 1 回午前 1 時頃にアクセスしているようですが、すべてエラーになっています。 Google Analytics Data API を読み込む権限がないのが原因だと予想されます。

→ Google Cloud – プラットフォーム

WordPress の登録メールアドレスに Google アナリティクスの閲覧者権限を与える

そこでいろいろ調べて「 Google アナリティクス の管理」→「アカウント」→「アカウントのアクセス管理」にて、 WordPress に登録してあるメールアドレスを追加して権限を「閲覧者」にしました。

→全力君の Zen-Production : Google Analytics 4(GA4) の API を実行する方法

でもここで気がついてしまったのですよね、別に WordPress に登録してあるメールを使う必要はないのではないかと。

クライアントシークレットがわからなくなったので新しく OAuth 2.0 クライアント ID を作成

そこで新しく OAuth 2.0 クライアント ID を作成して、 Google Analytics を運用している Google アカウントをテストユーザーに追加し、管理画面の「設定」→「 Google 認証」にて「認証する」をクリックしました。(直前に phpAdmin からデータベースの Simple GA4 Ranking 関連データを削除し、 Simple GA4 Ranking も再インストールしたので、クライアントシークレットがわからなくなったから、新しく作成しただけで既存のものを使って再認証すれば大丈夫です。)

データの取得は午前 1 時頃なので焦っても仕方ないので放置して寝ました。

エラーなくデータが取得できた

次の日「 API とサービス」を確認すると、エラーなくデータが取得できているようです。しかしまだランキングが表示されません。(あとで気がついたのですが、管理画面の「 Simple GA4 Ranking 」にて「キャッシュ時間 ( 秒 ) 」を短くしたら、すぐに取得されそうです。)

Simple GA4 Ranking のキャッシュを削除

Simple GA4 Ranking のキャッシュを削除

WordPress の管理画面の「 Simple GA4 Ranking 」の「 Cache 」にて確認すると、空の配列がキャッシュされていることがわかりました。そこで「 DELETE 」をクリックしキャッシュを消して、表示ページを更新するとやっとランキングが表示されました。

Simple GA4 Ranking にて人気記事が表示された

しかしカテゴリーごとに表示させるランキングを変えているので、表示されないページがあります。ランキングが表示されないページを開くと、「 Simple GA4 Ranking 」の「 Cache 」ページに空の配列が表示されるので「 DELETE 」をクリックして、ブラウザで該当ページを更新するという作業を主なページにて行うとやっとランキングが表示されました。

テストユーザーだと 1 週間後に認証が切れる

1 週間後 API のトラフィックがなくなった

そのまま問題なく動いていたのですが、 1 週間後にまたランキングが表示されなくなりました。 WordPress の管理画面の「設定」→「 Google 認証」を見てみると、「 Google API 認証 ( 未認証 ) 」となっています。どうやらテストユーザーだと認証が 1 週間で切れるようです。

→ no+t : n8n で Google 認証が 7 日で切れる問題を完全解決!サービスアカウント設定の詳細手順

7 日後また API にアクセスできなくなったので「 API とサービス」→「 OAuth 同意画面」→「対象」にて「アプリを公開」をクリック

そこで「 API とサービス」→「 OAuth 同意画面」→「対象」にて「アプリを公開」をクリックして、「テスト」から「本番環境」に変更しました。「管理画面」→「設定」→「 Google 認証」から「認証する」をクリックしてアクセストークンを取得します。

「このアプリは Google で確認されていません」と警告が出るが左下の「詳細」をクリック

アカウントは Google アナリティクスに閲覧者以上のアクセス権があるアカウントを選択します。「このアプリは Google で確認されていません」と警告が出ますが、左下の「詳細」をクリックします。一番下の「 xxx.com ( 安全でないページ ) に移動」をクリックします。「 xxx.com が Google アカウントへのアクセスを求めています」と表示されるので「続行」をクリックします。これでアクセストークンが取得できます。

すぐにはデータが取得できないので、また午前 1 時がすぎるのを待ちます。

次の日エラーなくデータが取得できた

次の日 API にアクセスがありデータを取得できたようです。キャッシュが残っているので「 Simple GA4 Ranking 」の「 Cache 」ページに空の配列を消していくとランキングが正常に表示されるようになりました。

Simple GA4 Ranking が表示されないの対処法まとめ

Simple GA4 Ranking でランキングが表示されない場合の対処法をまとめました。

Google Cloud の API とサービスにてトラフィックを確認

まず Google Cloud の API とサービスにてトラフィックを確認し、 Simple GA4 Ranking がデータを取得しようとしているか確認します。

「公開ステータス」を「本番環境」にする

「対象」→「公開ステータス」にて「テスト環境」にてユーザーを追加すると、 1 週間で認証が切れてしまいます。「本番環境」にして Simple GA4 Ranking の「 Google 認証」にて「認証する」をクリックして再認証します。(サービスアカウントを使う方法もあるようです。)

Google アナリティクスを閲覧できる権限があるユーザーを使う

OAuth のトークンを取得するときにログインするユーザーは Google アナリティクスで閲覧以上の権限があるアカウントにします。 Google アナリティクスを運用しているアカウント名でログインするのが一番簡単です。(必ずしも WordPress に登録されているメールアドレスである必要はありません。)

Google アナリティクスを運用しているアカウントと違うメールアドレスで認証を行った場合、 Google アナリティクスの「管理」→「アカウント」→「アカウントのアクセス管理」にて「閲覧者」以上の権限を与えます。

デフォルトではデータ取得は 1 日 1 回なので気長に待つ

デフォルト設定ではデータの取得が 1 日 1 回なので、アクセストークンが取得できたら、気長に待ち Google Cloud の「 API とサービス」にてトラフィックにてエラーなくアクセスが確認できたら、 Simple GA 4 Ranking の空のキャッシュを削除するとランキングが表示されるようになります。

未確認ですが、管理画面の「 Simple GA4 Ranking 」の「キャッシュ時間 ( 秒 ) 」を短くして、 1 回目の取得を早くする方法もあると思います。一度取得できたら元の値(デフォルトでは 86400 )に戻しておきましょう。

とにかく長らく表示されなかった Simple GA4 Ranking で人気記事が表示できるようになってよかったです。

関連記事

WordPress の Simple GA Ranking でカテゴリ別の人気記事をウィジェットに表示する
WordPress
人気記事一覧にアイキャッチを表示
Google Analytics Top Content Widget の人気記事アクセスランキングが更新されない
WordPress
人気記事ランキングが更新されない
Ktai Style のタイトルタグの重複をどうにかする
WordPress
thumbnail
SELENE.GA4K の設置を相対パスで行えるようにする
WordPress
thumbnail
WordPress の携帯版に Google Analytics を設置してみる【 SELENE.GA4K 】
WordPressWeb制作
Google Analytics:ウェブプロパティIDとウェブサイトのURL
WordPress のブログカードが表示されないのは Permalink Redirect のせいなので動くように改造した
WordPress
Permalink Redirectを無効にするとWordPress標準のブログカードが表示される