さくらインターネットの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/管理人】
自営業プログラマーです。お仕事ください!ご連絡は以下アドレスまでお願いします★
【キーワード検索】
【最近の記事】【全部の記事】
【Node.js】chrono-nodeを使用して自然言語を日付に変換するCUDA13環境下でGPU使用版のllama.cppを導入しC++ライブラリを使う
CUDA13環境下でGPU使用版のllama-cpp-pythonを導入する
CUDA13環境下でGPU使用版のPyTorchを導入する
LetsEncrypt/certbotの証明書自動更新がエラーになる場合
Wav2Lipのオープンソース版を改造して外部から呼べるAPI化する
Wav2Lipのオープンソース版で静止画の口元のみを動かして喋らせる
【iOS】アプリアイコン・ロゴ画像の作成・設定方法
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【2】
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【1】
【人気の記事】【全部の記事】
進研ゼミチャレンジタッチをAndroid端末化するCUDA13環境下でGPU使用版のPyTorchを導入する
Googleスプレッドシートを編集したら自動で更新日時を入れる
【ひかり電話+VoIPアダプタ】LANしか通ってない環境でアナログ電話とFAXを使う
【ウマ娘】デイリーレースに雨の状態で出走するには
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
Windows11でMacのキーボードを使うには
Microsoft EdgeでURLコピーがページタイトルになってしまうのを修正する
Debian 12で固定IPアドレスを使う設定をする
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【カテゴリーリンク】
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
ウマ娘
将棋
ドラレコ