- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
美好的一天,
有没有办法从 Google Analytics API 获取接下来的 10,000 个数据?我想在获得前 10,000 个数据后获得下一组数据。有办法实现吗?我正在使用 google Analytics api php 客户端库。
这是我的代码:
<?php
$analytics = initializeAnalytics();
$response = getReport($analytics);
printResults($response);
function initializeAnalytics()
{
$KEY_FILE_LOCATION = __DIR__ . 'MyFileDirectory';
// Create and configure a new client object.
$client = new Google_Client();
$client->setApplicationName("Hello Analytics Reporting");
$client->setAuthConfig($KEY_FILE_LOCATION);
$client-
>setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
$analytics = new Google_Service_AnalyticsReporting($client);
return $analytics;
}
function getReport($analytics) {
// Replace with your view ID, for example XXXX.
$VIEW_ID = "MyViewId";
// Create the DateRange object.
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate("2017-04-01");
$dateRange->setEndDate("2017-06-19");
// Create the Metrics object.
$totalEvents = new Google_Service_AnalyticsReporting_Metric();
$totalEvents->setExpression("ga:totalEvents");
$totalEvents->setAlias("totalEvents");
//Create the Dimensions object.
$clientId = new Google_Service_AnalyticsReporting_Dimension();
$clientId->setName("ga:dimension4");
$sessionId = new Google_Service_AnalyticsReporting_Dimension();
$sessionId->setName("ga:dimension5");
$eventLabel = new Google_Service_AnalyticsReporting_Dimension();
$eventLabel->setName("ga:eventLabel");
$timestamp = new Google_Service_AnalyticsReporting_Dimension();
$timestamp->setName("ga:dimension3");
// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($VIEW_ID);
//set number of rows
$request->setPageSize(10000);
$request->setDateRanges($dateRange);
$request->setMetrics(array($totalEvents));
$request->setDimensions(array($clientId,$sessionId,$eventLabel,
$timestamp));
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
return $analytics->reports->batchGet( $body );
}
}
?>
最佳答案
这将获取前 10 页数据。我将其限制为 10,以防止它吃掉我的配额。如果您将其删除,它将继续获取所有行并耗尽您的配额。
注意:只有当您只有一个报告时,这才有效。如果您有多个报告,那么您将不得不做一些花哨的事情,将正确的 pageToken 应用于每个报告并删除完整的报告。目前,除了报告数组中的位置之外,没有报告 ID 或匹配您发送到返返回告的内容的方法。
$service = new Google_Service_AnalyticsReporting($client);
// Create the DateRange object.
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate("2016-01-01");
$dateRange->setEndDate("2017-06-30");
// Create the Metrics object.
$sessions = new Google_Service_AnalyticsReporting_Metric();
$sessions->setExpression("ga:sessions");
$sessions->setAlias("sessions");
//Create the Dimensions object.
$date = new Google_Service_AnalyticsReporting_Dimension();
$date->setName("ga:date");
$pagePath = new Google_Service_AnalyticsReporting_Dimension();
$pagePath->setName("ga:pagePath");
// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId("81692014");
$request->setPageSize("10000");
$request->setDateRanges($dateRange);
$request->setDimensions(array($date,$pagePath));
$request->setMetrics(array($sessions));
$request->setMetrics(array($sessions));
$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
$data = $service->reports->batchGet( $body );
// Remove count if you really want everything.
$cnt = 0;
while ($data->reports[0]->nextPageToken > 0 && $cnt < 10) {
// There are more rows for this report.
$body->reportRequests[0]->setPageToken($data->reports[0]->nextPageToken);
$data = $service->reports->batchGet( $body );
$cnt++;
}
我在上面放了一个教程Google Analytics V4 pagination我使用的完整代码可以在 GitHub 上找到请注意,此代码是从我的示例项目中删除的。
关于php - 如何使用 php 从 google Analytics api 获取接下来的 10,000 条数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46191768/
我有一个模型,我想为其检索下一条记录和上一条记录。我想通过模型上的 named_scope 来执行此操作,并且还将要返回的下一个/上一个记录的 X 数作为参数传入。 例如,假设我有 5 条记录: 记录
我有以下数据框: print(df) day month year quantity 6 04 2018 10 8
我在这个网站上看到过这样的问题;但他们只是提供生日数据而不提供计数例如:mysql query to get birthdays for next 10 days SQL Select Upcomin
我有以下数据框: print(dd) dt_op quantity product_code 20/01/18 1 613 21/01/18 8
Julia 中的迭代可以通过实现具有 3 个函数的迭代接口(interface)来为新定义的类型实现:start , next , done 我在这些函数的末尾没有看到感叹号,所以根据我对 julia
我正在阅读 clojure 中关于 rest 与 next 的解释。据我了解,它分解为 next 评估/实现序列的尾部,知道它是否应该返回nil,而rest总是返回序列,所以它更懒。 但是,我不明白的
早上好 我有以下数据框: a = [1,2,3,4,5,6] b = pd.DataFrame({'a': a}) 我想创建一个列,对“a”列的下“n”行求和,包括 a 的现值;我试过: n =
编写一个可以迭代任何可迭代对象的通用函数,返回现在,下一对。 def now_nxt(iterable): iterator = iter(iterable) nxt = iterat
我正在尝试显示接下来 5 分钟的剩余时间(捕捉到当前时间的完整 5 分钟,例如 15:05、15:10..) 我能够在下一个小时(而不是分钟)的剩余时间内实现相同的目标: function sec
我想捕获用户在接下来的 2 小时内执行的步数。 这就是我要说的。 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.H
我有一个如下所示的 DataFrame: ds y 0 2017-02-07 0.154941 1 2017-02-08 0.110595 2
我想通过集合分析计算过去 2 个值的总和 + 当前值 + 接下来的 2 个值。 无论是否使用集合分析,它都按预期工作。无论有无集分析 ( "{}" ),它都按预期工作。但是当缩放时,图形的值会相应地发
我有一个大数据集,低于训练和测试数据集 train_data是从2016-01-29到2017-12-31 head(train_data) date Date_t
另一个“如何删除上一个、下一个、完成按钮”-您可能会想的问题。实际上不是。我对此进行了相当深入的研究,并尝试了不同的方法,但似乎没有任何方法或解决方案能真正做到这一点。下面提到和显示的所有解决方法(就
我是一名优秀的程序员,十分优秀!