<?php
mb_language("Japanese");
mb_internal_encoding("UTF-8");
//---初期設定---
//取得対象期間
$start = "2018-04-20";
$end = "2018-05-01";
$url = "サーチコンソールで管理しているURL";
//取得上限件数(Google API側の制約でMax5000まで)
$limit = 5000;
//上限件数以上あったら、更に取得するか?
$limit_add = True;
//--------------
require_once (__DIR__.'/vendor/autoload.php'); // 自分の環境に合わせて書き換えてね
$client = new Google_Client();
// Googleからダウンロードした.jsonファイルを置いた場所
$client->setAuthConfig(stream_resolve_include_path('サービスアカウント名-〇〇~~~〇〇.json'));
// ↑普通のWebディレクトリに置くとセキュリティ的に良くないかもなので、php.iniでinclude_pathに設定してあるフォルダに置く。
// ちなみにstream_resolve_include_pathはPHP5.3.2以上で使える関数なので、動かない場合は適切に書き換えてね。
$client->addScope(Google_Service_Webmasters::WEBMASTERS_READONLY);
$webmaster = new Google_Service_Webmasters($client);
$request = array();
$request = new Google_Service_Webmasters_SearchAnalyticsQueryRequest;
$request->setRowLimit($limit);
$request->setDimensions(array('query','page'));
$request->setStartDate($start);
$request->setEndDate($end);
$request->setSearchType('web');
$resulets = array(array());
$temp_array = array();
$resulets[0] = $webmaster->searchanalytics->query($url, $request);
if (!empty($resulets[0])) {
echo "対象期間:".$start."~".$end."<br>";
echo "<table border='1'><tr><td>キーワード</td><td>リンク先</td><td>表示順位</td><td>クリック回数</td><td>クリック率</td></tr>\n";
for ($i=0; $i<10; $i++) { // 念のため繰り返しは10回まで(理論上5万件取得できる)
foreach ($resulets[$i] as $key => $result) {
$temp_array[] = array($result->keys[0],$result->keys[1],$result->position,$result->clicks,$result->ctr);
}
foreach ($temp_array as $value_array) {
echo "<tr><td>".$value_array[0]."</td><td>".$value_array[1]."</td><td align='right'>".$value_array[2].
"番目</td><td align='right'>".$value_array[3]."回</td><td align='right'>".round($value_array[4]*100,3)."%</td></tr>\n";
}
var_dump($resulets[0]);
if ((count($resulets[$i])==$limit)&&($limit_add)) { // 上限満タン且つ追加取得モードだったら
$request->setStartRow($limit+1); // 継続して取得
$resulets[$i+1] = $webmaster->searchanalytics->query($url, $request);
Continue;
}
else Break;
}
echo "</table><br>";
}
//var_dump($resulets);
//print_r($temp_array);
?>