今の所、Analytics Data APIはベータ版での提供のようです。APIの概要については、Googleの以下のページに記載されています。
Analytics Data APIの概要
https://developers.google.com/analytics/devguides/reporting/data/v1?hl=ja
呼び出し元となるAPEXアプリケーションは、Always FreeのAutonomous Databaseで作成しています。
呼び出し元となるAPEXアプリケーションは、Always FreeのAutonomous Databaseで作成しています。
APIの呼び出しテストに使用したアプリケーションは以下のように動作します。
Analytics Data APIのリクエストに含めるdimensions、metricsおよびdateRangesを指定してボタンSUBMITをクリックすると、Analytics Data APIのrunReportを呼び出します。その応答をページ・アイテムに設定して確認するだけの簡単なアプリケーションです。
上記のAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/sample-google-analytics-4.zip
アプリケーションをインストールすると表GA4_DATA、GA4_DIMENSIONS、GA4_METRICSの3つの表が作成されます。表GA4_DIMENSIONSにはdimensionsとして選択可能なAPI名、表GA4_METRICSにはmetricsとして選択可能なAPI名が設定されています。
アプリケーション定義の置換文字列のG_PROPERY_IDに参照するGA4のプロパティID、G_CREDENTIALとしてGoogleのサービスアカウントによるアクセストークンを保持する Web資格証明の静的IDを設定します。
以下、実施した作業を紹介します。
Google Cloudのコンソールより、プロジェクトにたいしてGoogle Analytics Data APIを有効にしています。
IAMと管理のサービスアカウントを開き、サービスアカウントを作成します。
サービスアカウントの作成とキーの追加の作業については、以前の記事「Google Indexing APIを呼び出す」での作業と同じです。
openssl pkcs12コマンドを実行して、PKCS#8形式の秘密キー・ファイルの作成までを実施します。
プロパティIDの値をメモしておきます。この値は、Analytics Data APIを呼び出すエンドポイントURLに含まれます。
Google側の準備は以上で完了です。
Oracle APEX側での作業を行います。
Googleのサービスアカウントで認証してAPIを呼び出すために使用するアクセス・トークンは、以前の記事「GoogleのGemini APIをOracle APEXから呼び出す」で紹介しているパッケージUTL_CRED_GOOGLEを使って取得します。
以下のコードを実行します。引数p_scopeには以下のどちらかを与えます。サービスアカウントの役割として閲覧者を与えているので、今回はreadonlyの方をp_scopeに与えています。
https://www.googleapis.com/auth/analytics
https://www.googleapis.com/auth/analytics.readonly
上記のコードを実行すると、Web資格証明GOOGLE_GA4_API_TOKENにアクセス・トークンが保存されます。APEX_WEB_SERVICE.MAKE_REST_REQUESTを呼び出す際にp_credential_static_idとしてこのWeb資格証明を指定すると、保存されているアクセス・トークンを使ってAPIにアクセスします。
アクセス・トークンの有効期間は1時間なので、1時間ごとに同じスクリプトを実行してアクセス・トークンを更新する必要があります。
Analytics Data APIを呼び出す処理はホーム・ページに実装しています。
runReportの呼び出しに含めるデータを、ページ・アイテムP1_TITLE、P1_DIMENSIONS、P1_METRICS、P1_START_DATEとP1_END_DATEに設定します。runReportではdateRangesとして4つまでstartDateとendDateの組み合わせを指定できるようですが、今回の実装では1つに限定しています。その他のパラメータについても、細かな設定については省いています。(dimensionのdimensionExpressionやmetricのexpressionなど)
ボタンSUBMITをクリックするとページが送信され、APIの呼び出しが行われます。
APIを呼び出すプロセスをCall GA4 DATA APIとして作成しています。
ソースのPL/SQLコードに、以下を記述しています。
APIを呼び出した結果は表GA4_DATAにJSONのまま保存し、ページ・アイテムP1_RESPONSEに表示させています。
とりあえずGoogle Analytics 4 Data APIをAPEXのアプリケーションから呼び出せることを確認しました。
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完