さくらインターネットのPHPでAnalytics-G4 APIを使う
POSTED BY
2024-09-29
2024-09-29


さくらインターネットだとPythonよりPHPのほうがGoogleのモジュールがエラーになりにくく簡単に使える。
まず、自分のホームにPHPの拡張モジュールをインストールする。
cd composer-pchar require google/analytics-data
「vendor」ディレクトリができていることを確認。
あとはソースを置く(実行する)ディレクトリに、このベンダーへのシンボリックリンクを貼る。
mkdir analytics-work cd analytics-work ln -s $HOME/vendor
以下のようなソースを書く
| PHP | analytics_g4.php | GitHub Source |
<?php
require 'vendor/autoload.php';
use Google\Analytics\Data\V1beta\Client\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\RunReportRequest;
/**
* TODO(developer): Replace this variable with your Google Analytics 4
* property ID before running the sample.
*/
$property_id = 'YOUR PROPERTY ID';
// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
putenv("GOOGLE_APPLICATION_CREDENTIALS=/your/key/directory/analytics-key.json");
$client = new BetaAnalyticsDataClient();
// Make an API call.
$request = (new RunReportRequest())
->setProperty('properties/' . $property_id)
->setDateRanges([
new DateRange([
'start_date' => '7daysAgo', //'2020-03-31',
'end_date' => 'today',
]),
])
->setDimensions([
new Dimension([
//'name' => 'city',
'name' => 'pageTitle',
]),
new Dimension([
'name' => 'fullPageUrl',
]),
])
->setMetrics([
new Metric([
'name' => 'screenPageViews', //'activeUsers',
])
]);
$response = $client->runReport($request);
// Print results of an API call.
//print 'Report result: ' . PHP_EOL;
foreach ($response->getRows() as $row) {
print $row->getDimensionValues()[1]->getValue()
. "\t" . $row->getMetricValues()[0]->getValue()
. "\t" . $row->getDimensionValues()[0]->getValue() . PHP_EOL;
}
PROPERTY_IDとanalytics-key.jsonは自分の所有する本物のものと差し替える。
php analytics_g4.php
この例では、1週間分のアクセスランキングがURL、ページタイトル、アクセス数のタブ区切りで表示される。
【前の記事】インクルードパスの調べ方
Android
iPhone/iPad
Flutter
MacOS
Windows
Debian
Ubuntu
CentOS
FreeBSD
RaspberryPI
HTML/CSS
C/C++
PHP
Java
JavaScript
Node.js
Swift
Python
MatLab
Amazon/AWS
CORESERVER
Google
仮想通貨
LINE
OpenAI/ChatGPT
IBM Watson
Microsoft Azure
Xcode
VMware
MySQL
PostgreSQL
Redis
Groonga
Git/GitHub
Apache
nginx
Postfix
SendGrid
Hackintosh
Hardware
Fate/Grand Order
ウマ娘
将棋
ドラレコ
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!ご連絡は以下アドレスまでお願いします★
【キーワード検索】
【最近の記事】【全部の記事】
LetsEncrypt/certbotの証明書自動更新がエラーになる場合Wav2Lipのオープンソース版を改造して外部から呼べるAPI化する
Wav2Lipのオープンソース版で静止画の口元のみを動かして喋らせる
【iOS】アプリアイコン・ロゴ画像の作成・設定方法
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【2】
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【1】
【Xcode】iPhone is not available because it is unpairedの対処法
【Let's Encrypt】Failed authorization procedure 503の対処法
【Debian】古いバージョンでapt updateしたら404 not foundでエラーになる場合
ファイアウォール内部のWindows11 PCにmacOS Sequoiaからリモートデスクトップする
【人気の記事】【全部の記事】
進研ゼミチャレンジタッチをAndroid端末化する【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
GitLabにHTTPS経由でリポジトリをクローン&読み書きを行う
Windows11のコマンドプロンプトでテキストをコピーする
Googleスプレッドシートを編集したら自動で更新日時を入れる
タスクスケジューラで変更を適用できません。ユーザーアカウントが不明であるか、パスワードが正しくないか、またはユーザーアカウントにタスクを変更する許可がありません。と出た
【Apache】サーバーに同時接続可能なクライアント数を調整する
【Raspberry Piメモ・3】オンボード無線LANでWi-fi Direct対応機器に接続する
【カテゴリーリンク】
Android
iPhone/iPad
Flutter
MacOS
Windows
Debian
Ubuntu
CentOS
FreeBSD
RaspberryPI
HTML/CSS
C/C++
PHP
Java
JavaScript
Node.js
Swift
Python
MatLab
Amazon/AWS
CORESERVER
Google
仮想通貨
LINE
OpenAI/ChatGPT
IBM Watson
Microsoft Azure
Xcode
VMware
MySQL
PostgreSQL
Redis
Groonga
Git/GitHub
Apache
nginx
Postfix
SendGrid
Hackintosh
Hardware
Fate/Grand Order
ウマ娘
将棋
ドラレコ