如何使用PHP在Google Analytics Core reporting API V4上设置维度别名

如何使用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

我正在使用以下工具将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_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"
    }
  ]
}