🐷
GA4 phpライブラリでnextPageTokenを使う風
GA4ベータユーザーさん こんにちは
ga4 V1alpha V1beta を使用しているみなさまこんにちは。
pageTokenはGoogle全般で使われている10000件以降はこのトークン指定して
次の10000件取得してねという仕様です。
GA4のドキュメントにも記載してあります。でも少なくともphpライブラリにはなさそうです。
サンプルを世界中で検索しましたがでてきません。なさそうです。
chatGPT3.5に聞いてもホラばっか吹いて、
PHP Fatal error: Uncaught Error: Call to undefined method
PHP Fatal error: Uncaught Error: Cannot use object of type
に、なりまくりです。そりゃそうです。
ドキュメントに偽りが記載されているからです。
githubのソースもクロールしてほしいです。chatGPT4なら解決?
いえ解決しません、ないんだからnextPageTokenが。
解決方法
レコードをチェックします。テストしたい場合は1万ではなくlimit2件とかにします。
$date = "2023-06-01";
$limit = 10000; // 1ページあたりの最大レコード数
$offset = 0; // オフセットの初期値
do {
//GA4からレコードを取得
$response = getGa4Data($date);
//ここで件数があれば、BigQueryにいれてます。
if(count($response->getRows())) {
#var_dump("レコード数: " .count($response->getRows()), $offset);
insertBqRecord($date, $response);
}
} while (count($response->getRows()));//ここで0じゃなければループさせます。
GA4の取得や、BQの中身は今回本題ではないのではしょった記載にします。
do-whileで回すたびにoffsetを進めないといけません。
/**
* getGa4Data GA4データの取得
*
* @param str 日付
**/
function getGa4Data($date) {
global $limit, $offset;
//省略
//...
//...
//次のオフセットを指定
$offset += $limit;
//取得したレコードを返す
return $response;
}
こんな感じ。
Discussion