来自 Google WMT 的“搜索查询”数据
“Search Queries” data from Google WMT
我想获取用户用来在 google 上查找网页的关键字(又名“queries
”)。 Google 分析中显示的相同关键字。我想让他们使用 API(Search Console / Webmaster Tool API). As mentioned in the accepted answere 有一段时间 Google WebMaster 工具 API 的这一部分对 public 不可用。
我想知道这是否仍然有效,因为我没有找到官方 google 页面这样说。尽管如此,我还是无法从 API.
中检索数据
我尝试编写脚本(使用带有 Net::Google::WebmasterTools 的 Perl)。我能够授权并发送请求。我还收到状态为 200 但不包含任何数据的回复(尤其是没有关键字,这正是我想要得到的)。不过,我在浏览 Search WebmasterTools 分析报告时可以看到关键字。
#!/usr/bin/perl
use Net::Google::WebmasterTools;
use Net::Google::WebmasterTools::OAuth2;
use Data::Dumper;
use URL::Encode 'url_encode';
my $site_url = url_encode("http://www.example.com");
my $client_id = "[ID]";
my $client_secret = "[SECRET]";
my $refresh_token = "[TOKEN]";
my $wmt = Net::Google::WebmasterTools->new;
my $oauth = Net::Google::WebmasterTools::OAuth2->new(
client_id => $client_id,
client_secret => $client_secret,
);
my $token = $oauth->refresh_access_token($refresh_token);
print Dumper($token);
$wmt->token($token);
# Build request
my $req = $wmt->new_request(
site_url => "$site_url",
report_name => "searchAnalytics",
method => "query",
dimensions => ['Country','Device','Query'],
#search_type => 'web',
start_date => '2015-01-01',
end_date => '2015-09-30',
row_limit => 1000,
);
print $req;
# Send request
my $res = $wmt->retrieve($req);
die("GWMT error: " . $res->error_message) if !$res->is_success;
# Print results
print Dumper($res);
print
"Results: 1 - ", $res->items_per_page,
" of ", $res->total_results, "\n\n";
for my $row (@{ $res->rows }) {
print
$row->get_source, ": ",
$row->get_visits, " visits, ",
$row->get_bounces, " bounces\n";
}
print
"\nTotal: ",
$res->totals("visits"), " visits, ",
$res->totals("bounces"), " bounces\n";
我也尝试使用 API Explorer for webmasters.searchanalytics.query
但作为响应我得到 500 Internal Server Error
.
我不确定我是否以错误的方式使用了 api 或者它是否仍然不受支持。有人 "recent" 有这方面的经验吗? (也许通过使用另一种编程语言或库)。
API 已完全正常运行。
尝试 ['country','device','query'] 而不是对应的适当大小写。
...关于分页的文档是错误的——它确实支持分页,但有一个警告:当页面包含少于 5000 行时停止。此外,您还必须在页面之间进行重复数据删除,因为输出仅在 'clicks' 列上排序,而下方是 randomly/inconsistently 排序,这意味着如果发生分页符,您可以在多个页面中获得同一行当有 2 行或更多行具有该点击次数时(点击次数为 0 的行尤其糟糕)。
我想获取用户用来在 google 上查找网页的关键字(又名“queries
”)。 Google 分析中显示的相同关键字。我想让他们使用 API(Search Console / Webmaster Tool API). As mentioned in the accepted answere
我想知道这是否仍然有效,因为我没有找到官方 google 页面这样说。尽管如此,我还是无法从 API.
中检索数据我尝试编写脚本(使用带有 Net::Google::WebmasterTools 的 Perl)。我能够授权并发送请求。我还收到状态为 200 但不包含任何数据的回复(尤其是没有关键字,这正是我想要得到的)。不过,我在浏览 Search WebmasterTools 分析报告时可以看到关键字。
#!/usr/bin/perl
use Net::Google::WebmasterTools;
use Net::Google::WebmasterTools::OAuth2;
use Data::Dumper;
use URL::Encode 'url_encode';
my $site_url = url_encode("http://www.example.com");
my $client_id = "[ID]";
my $client_secret = "[SECRET]";
my $refresh_token = "[TOKEN]";
my $wmt = Net::Google::WebmasterTools->new;
my $oauth = Net::Google::WebmasterTools::OAuth2->new(
client_id => $client_id,
client_secret => $client_secret,
);
my $token = $oauth->refresh_access_token($refresh_token);
print Dumper($token);
$wmt->token($token);
# Build request
my $req = $wmt->new_request(
site_url => "$site_url",
report_name => "searchAnalytics",
method => "query",
dimensions => ['Country','Device','Query'],
#search_type => 'web',
start_date => '2015-01-01',
end_date => '2015-09-30',
row_limit => 1000,
);
print $req;
# Send request
my $res = $wmt->retrieve($req);
die("GWMT error: " . $res->error_message) if !$res->is_success;
# Print results
print Dumper($res);
print
"Results: 1 - ", $res->items_per_page,
" of ", $res->total_results, "\n\n";
for my $row (@{ $res->rows }) {
print
$row->get_source, ": ",
$row->get_visits, " visits, ",
$row->get_bounces, " bounces\n";
}
print
"\nTotal: ",
$res->totals("visits"), " visits, ",
$res->totals("bounces"), " bounces\n";
我也尝试使用 API Explorer for webmasters.searchanalytics.query
但作为响应我得到 500 Internal Server Error
.
我不确定我是否以错误的方式使用了 api 或者它是否仍然不受支持。有人 "recent" 有这方面的经验吗? (也许通过使用另一种编程语言或库)。
API 已完全正常运行。
尝试 ['country','device','query'] 而不是对应的适当大小写。
...关于分页的文档是错误的——它确实支持分页,但有一个警告:当页面包含少于 5000 行时停止。此外,您还必须在页面之间进行重复数据删除,因为输出仅在 'clicks' 列上排序,而下方是 randomly/inconsistently 排序,这意味着如果发生分页符,您可以在多个页面中获得同一行当有 2 行或更多行具有该点击次数时(点击次数为 0 的行尤其糟糕)。