如何使用PHP在Google Analytics Core reporting API V4上设置维度别名
我正在使用以下工具将Google Analytics Reporting API v4集成到我的网站 我设置了报告api,最多返回10个结果。我的问题是,我找不到如何获得下一个或前10个结果,因为它总是返回前10个 有没有办法通过Google Analytics Core Reporting API v4获得下一个和/或前10个结果 我的PHP代码如下:如何使用PHP在Google Analytics Core reporting API V4上设置维度别名,php,pagination,google-analytics-api,Php,Pagination,Google Analytics Api,我正在使用以下工具将Google Analytics Reporting API v4集成到我的网站 我设置了报告api,最多返回10个结果。我的问题是,我找不到如何获得下一个或前10个结果,因为它总是返回前10个 有没有办法通过Google Analytics Core Reporting API v4获得下一个和/或前10个结果 我的PHP代码如下: // Create the ReportRequest object. $request = new Google_Service_A
// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($VIEW_ID);
$request->setDateRanges($dateRange);
$request->setPageSize(10);
//===========================================================
// HOW DO I SET TO SHOW DIFFERENT PAGE THAN A FIRST PAGE
// HOW DO I SHOW RESULTS 20-30
//===========================================================
//$request->setPageToken($page_token);
$request->setDimensions($dimensions);
$request->setMetrics($metrics);
$request->setDimensionFilterClauses($dimensionFilterClause);
$request->setMetricFilterClauses(array($metricFilterClause));
$request->setOrderBys($ordering);
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
return $analytics->reports->batchGet( $body );
我发现有一个函数setPageToken()和一个函数getPageToken(),我认为它与此有关
有人能解释一下怎么做吗?这个例子将非常有用。谢谢。客户端库
从中找到的资源描述生成。任何Object()
都将成为PHP客户端库中的一个类。例如,将成为。能够查看资源描述并理解生成的类的结构非常重要,除此之外,使用生成的源代码指导您了解类的结构
因此,在问题标题中,您会问:“如何设置维度别名?”如果查看资源描述和生成的源,您将注意到只有度量
类具有属性别名
。这是因为度量
对象采用的是表达式
字段,而不是名称
字段。实际上,您可以提供一个数学表达式,例如ga:sessions*ga:users
,但这样的字符串可能会让人困惑,因此您可能需要为该表达式设置一个别名
空气污染指数限额及配额
您一次请求10行,并希望对它们进行分页。我强烈鼓励您提出最大限度的要求,以最有效地利用您的资源。API是一种共享资源,如果您对它的使用效率低下,它就不会带您走那么远。说到这里,我将在下面描述如何进行分页
分页
假设您已经仔细阅读了本指南,知道如何使用auth和其他工具成功请求:
棒极了,干得好。困难的部分就在你身后。你是一个聪明的编码员,所以你要抓住$response
和$request
,因为你怀疑它们可能很重要。因此,请继续分析响应:
for ( $reportIndex = 0; $reportIndex < count( $response ); $reportIndex++ ) {
$report = $response[ $reportIndex ];
$header = $report->getColumnHeader();
$dimensionHeaders = $header->getDimensions();
$metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
$rows = $report->getData()->getRows();
$nextPageToken = $report->getNextPageToken();
...
}
因此,您刚刚对多个页面进行了分页。冲洗并重复。
对于那些希望获得类似的JSON
的用户,请点击这里:
JSON分页示例
原始请求:
{
"reportRequests":
[
{
"viewId": "XXXX",
"metrics":
[
{
"expression": "ga:users"
}
],
"dimensions":
[
{
"name": "ga:pagepath"
},
{
"name": "ga:browser"
},
{
"name": "ga:country"
}
]
}
]
}
答复:
{
"reports": [
{
"columnHeader": {
"dimensions": [
"ga:pagepath",
"ga:browser",
"ga:country"
],
"metricHeader": {
"metricHeaderEntries": [
{
"name": "ga:users",
"type": "INTEGER"
}
]
}
},
"data": {
"rows": [
...
],
"totals": [
{
"values": [
"3739"
]
}
],
"rowCount": 1109,
"minimums": [
{
"values": [
"1"
]
}
],
"maximums": [
{
"values": [
"359"
]
}
]
},
"nextPageToken": "1000"
}
]
}
第二项请求:
{
"reportRequests":
[
{
"viewId": "XXXX",
"metrics":
[
{
"expression": "ga:users"
}
],
"dimensions":
[
{
"name": "ga:pagepath"
},
{
"name": "ga:browser"
},
{
"name": "ga:country"
}
],
"pageToken": "1000"
}
]
}
如果稍后有时间,我将在中提供完整答案,但第一个解决方案是:setPageSize>10。使用API比发出多个请求(配额到位)更有效。其次,当您的响应返回时,getnextpGetOken()中应该有一个值。
通过调用下一个请求,使用该令牌发出下一个请求。您好,我在哪个类中找到getnextpGetOken()方法?我尝试使用ReportRequest类,但该类给了我一个错误,因为没有名为getNextPageToken的方法:PHP致命错误:调用未定义的方法Google_Service_Analytics Reporting_ReportRequest::getNextPageToken()。您能给出一个示例和一点指导吗?PHP客户机库是根据资源描述生成的,可以在中找到。因此,getNextPageToken
方法将位于响应中的类上。
{
"reports": [
{
"columnHeader": {
"dimensions": [
"ga:pagepath",
"ga:browser",
"ga:country"
],
"metricHeader": {
"metricHeaderEntries": [
{
"name": "ga:users",
"type": "INTEGER"
}
]
}
},
"data": {
"rows": [
...
],
"totals": [
{
"values": [
"3739"
]
}
],
"rowCount": 1109,
"minimums": [
{
"values": [
"1"
]
}
],
"maximums": [
{
"values": [
"359"
]
}
]
},
"nextPageToken": "1000"
}
]
}
{
"reportRequests":
[
{
"viewId": "XXXX",
"metrics":
[
{
"expression": "ga:users"
}
],
"dimensions":
[
{
"name": "ga:pagepath"
},
{
"name": "ga:browser"
},
{
"name": "ga:country"
}
],
"pageToken": "1000"
}
]
}