>
钥匙要点在这种情况下,结果是一个数组,但是API也利用对象,我们只需要在GA_Service :: Init函数中指定它。在以下示例中,我将使用数组结果。
<span>// app/src/GA_Service.php </span><span>public function accounts(){ </span> <span>if( !$this->isLoggedIn() ){ </span> <span>//login </span> <span>} </span> <span>$service = new Google_AnalyticsService($this->client); </span> <span>$man_accounts = $service->management_accounts->listManagementAccounts(); </span> <span>$accounts = []; </span> <span>foreach ($man_accounts['items'] as $account) { </span> <span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ]; </span> <span>} </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/controllers/HomeController.php </span><span>public function accounts(){ </span> <span>$accounts = $this->ga->accounts(); </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/routes.php </span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>
listManagementAccounts函数返回一个包含的数组:
请注意,当您将数组作为响应返回时,Laravel会自动编码结果作为JSON响应并将其发送到浏览器。
<span>$this->client->setUseObjects(true);</span>
如果您想具有结果分页,可以始终将更多选项传递给ListManagementAccount:
<span>{ </span> kind<span>: "analytics#accounts", </span> <span>username: "me@mail.com", </span> <span>totalResults: 3, </span> <span>startIndex: 1, </span> <span>itemsPerPage: 1000, </span> <span>items: [ </span> <span>{ </span> id<span>: "4449308", </span> <span>kind: "analytics#account", </span> <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308", </span> <span>name: "me@mail.com", </span> <span>permissions: { </span> effective<span>: [ </span> <span>"COLLABORATE", </span> <span>"EDIT", </span> <span>"MANAGE_USERS", </span> <span>"READ_AND_ANALYZE" </span> <span>] </span> <span>}, </span> <span>created: "2013-10-01T11:04:28.478Z", </span> <span>updated: "2013-10-01T11:04:28.478Z", </span> <span>childLink: { </span> type<span>: "analytics#webproperties", </span> <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties" </span> <span>} </span> <span>} </span> <span>] </span><span>}</span>
>假设我们将向用户展示其帐户列表,当他们选择一个帐户列表时,我们加载了与之关联的属性列表。
> ga_service :: properties接受帐户ID,并返回该帐户的属性列表。我们基本上具有相同的过程,例如检索帐户。
><span>$service->management_accounts->listManagementAccounts( [ 'max-results' => $max_results, 'start-index' => $start_index ] );</span>
每个属性都有一个视图子集。默认情况下,Google添加了一个为每个新属性的查看称为所有网站数据。
>使用属性列表中的ID和第一部分获取的帐户ID,我们将查询Google Analytics Api中的Aprantics API列表的给定帐户属性的可用视图列表。
<span>// app/src/GA_Service.php </span><span>public function accounts(){ </span> <span>if( !$this->isLoggedIn() ){ </span> <span>//login </span> <span>} </span> <span>$service = new Google_AnalyticsService($this->client); </span> <span>$man_accounts = $service->management_accounts->listManagementAccounts(); </span> <span>$accounts = []; </span> <span>foreach ($man_accounts['items'] as $account) { </span> <span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ]; </span> <span>} </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/controllers/HomeController.php </span><span>public function accounts(){ </span> <span>$accounts = $this->ga->accounts(); </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/routes.php </span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>
<span>$this->client->setUseObjects(true);</span>
google Analytics(分析)为我们提供了一个可用于缓存响应的ETAG属性,因此我们不必在每个请求上查询API。
google_curlio:一个包裹着一些卷曲的课程,用于处理缓存,身份验证等 - 通过使用此类,我们确保使用etagattribute进行响应。
<span>{ </span> kind<span>: "analytics#accounts", </span> <span>username: "me@mail.com", </span> <span>totalResults: 3, </span> <span>startIndex: 1, </span> <span>itemsPerPage: 1000, </span> <span>items: [ </span> <span>{ </span> id<span>: "4449308", </span> <span>kind: "analytics#account", </span> <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308", </span> <span>name: "me@mail.com", </span> <span>permissions: { </span> effective<span>: [ </span> <span>"COLLABORATE", </span> <span>"EDIT", </span> <span>"MANAGE_USERS", </span> <span>"READ_AND_ANALYZE" </span> <span>] </span> <span>}, </span> <span>created: "2013-10-01T11:04:28.478Z", </span> <span>updated: "2013-10-01T11:04:28.478Z", </span> <span>childLink: { </span> type<span>: "analytics#webproperties", </span> <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties" </span> <span>} </span> <span>} </span> <span>] </span><span>}</span>
为了加快流程,我们将使用Bootsnipp。如果用户登录,我们将显示主页。
><span>$service->management_accounts->listManagementAccounts( [ 'max-results' => $max_results, 'start-index' => $start_index ] );</span>
<span>// app/src/GA_Service.php </span><span>public function properties( $account_id ){ </span> <span>if( !$this->isLoggedIn() ){ </span> <span>//login </span> <span>} </span> <span>try { </span> <span>$service = new Google_AnalyticsService($this->client); </span> <span>$man_properties = $service->management_webproperties->listManagementWebproperties($account_id); </span> <span>$properties = []; </span> <span>foreach ($man_properties['items'] as $property) { </span> <span>$properties[] = [ 'id' => $property['id'], 'name' => $property['name'] ]; </span> <span>}//foreach </span> <span>return json_encode($properties); </span> <span>} catch (Google_ServiceException $e) { </span> <span>return Response<span>::</span>json([ </span> <span>'status' => 0, </span> <span>'code' => 3, </span> <span>'message' => $e->getMessage() </span> <span>]); </span> <span>}//catch </span> <span>}//properties </span> <span>// app/controllers/HomeController.php </span><span>public function properties( $account_id ){ </span> <span>$properties = $this->ga->properties( $account_id ); </span> <span>return $properties; </span><span>}//properties </span> <span>// app/routes.php </span><span>Route<span>::</span>get( '/properties/{account_id}', [ 'uses' => 'HomeController@properties' ] )->where('account_id', '\d+');</span>
从屏幕截图中可以看到
>,当用户选择一个帐户时,我们异步更改属性和视图。为了实现这一目标,我编写了一些简单的JS,您可以在最终的存储库中检查一下。>
通过提供所选视图,指标和维度,我们可以获得有关用户和交互的详细统计信息。用户提交后的结果类似于:
>[ { id: "UA-52317977-1", name: "Prop1" }, { id: "UA-52317977-2", name: "Prop1" } ]
我们的ga_service ::报告接受四个参数:视图ID,开始日期和结束日期以及一系列指标。
第三个参数是我们从用户选择中已经拥有的指标列表。
>第四个可选参数是选项的数组。
- 最大值:结果的最大数量。 (我们使用10加速响应)。
- 尺寸:逗号分开的值列表。 (GA:Country,GA:City)
- 过滤器:逗号分开的规则列表要应用于结果。
在此示例中,我们将美国排除在尺寸列表之外,仅显示大于100的页面浏览量。
>
- 段:要应用于数据的高级段ID。
- 排序:订单结果通过维度或指标。可以结合多个维度和指标。 (ga:country,-ga:pageViews = ga:ga:country上升和ga:pageviews降落。
- 开始索引:可用于分页。
<span>// app/src/GA_Service.php </span><span>public function accounts(){ </span> <span>if( !$this->isLoggedIn() ){ </span> <span>//login </span> <span>} </span> <span>$service = new Google_AnalyticsService($this->client); </span> <span>$man_accounts = $service->management_accounts->listManagementAccounts(); </span> <span>$accounts = []; </span> <span>foreach ($man_accounts['items'] as $account) { </span> <span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ]; </span> <span>} </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/controllers/HomeController.php </span><span>public function accounts(){ </span> <span>$accounts = $this->ga->accounts(); </span> <span>return $accounts; </span><span>}//accounts </span> <span>// app/routes.php </span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>
>
>过滤
<span>$this->client->setUseObjects(true);</span>
段
>您可以通过在可用段列表中添加新的选择元素来扩展演示,并如前所述将ID传递给GET方法。
>您可以访问 /片段页面以查看具有其ID的可用段的列表,您当然可以将其作为一个选项,如我们之前所看到的。
<span>{ </span> kind<span>: "analytics#accounts", </span> <span>username: "me@mail.com", </span> <span>totalResults: 3, </span> <span>startIndex: 1, </span> <span>itemsPerPage: 1000, </span> <span>items: [ </span> <span>{ </span> id<span>: "4449308", </span> <span>kind: "analytics#account", </span> <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308", </span> <span>name: "me@mail.com", </span> <span>permissions: { </span> effective<span>: [ </span> <span>"COLLABORATE", </span> <span>"EDIT", </span> <span>"MANAGE_USERS", </span> <span>"READ_AND_ANALYZE" </span> <span>] </span> <span>}, </span> <span>created: "2013-10-01T11:04:28.478Z", </span> <span>updated: "2013-10-01T11:04:28.478Z", </span> <span>childLink: { </span> type<span>: "analytics#webproperties", </span> <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties" </span> <span>} </span> <span>} </span> <span>] </span><span>}</span>
Google Analytics(分析)API非常灵活,并提供了许多功能,但是该文档尚未完成,并且没有提供良好的使用示例。通过挖掘源代码并测试可能性和限制,您可以获得更多。
您可以检查本教程的源代码的最终存储库。
>问题?评论?让我知道!的Google Analytics(分析)API V3开始使用PHP的Google Analytics API V3,您首先需要在Google Developers Console中创建一个项目。创建项目后,启用Google Analytics(分析)API。然后,为API创建凭证。您将收到客户ID和客户端的秘密,您将使用它来通过Google来验证您的应用程序。之后,您可以使用PHP开始向API提出请求。您需要拥有一个Google帐户并访问要检索的Google Analytics(分析数据)。您还需要在服务器上安装PHP,并且对PHP编程的基本了解。
如何使用php?
是的,您可以使用Google Analytics(分析)带有PHP的API V3跟踪实时数据。 API提供了一个实时报告API,您可以使用该API检索实时数据,例如网站上的活动用户数量。
>>您可以通过在API请求中指定过滤器参数时使用Google Analytics API V3过滤数据。这些参数允许您限制API返回的数据以满足特定条件。
>
以上是使用php的Google Analytics(分析)API V3:获取数据的详细内容。更多信息请关注PHP中文网其他相关文章!