使用php的Google Analytics(分析)API V3:获取数据
Feb 19, 2025 pm 12:06 PM
>
钥匙要点- >使用PHP利用Google Analytics(Analytics)API V3来有效获取和管理用户帐户数据,包括属性和视图。
- >实现管理API以检索基于ga_service.php。
- >利用元数据API使用Google_curlio和Google_httprequest访问和缓存分析元数据,用ETAG属性优化数据检索。
- >通过将分类,过滤和分割选项合并到API查询中,增强数据自定义和相关性来扩展功能。
> 处理PHP中的身份验证,错误响应和JSON数据解析,以确保与Google Analytics(分析)API的安全有效交互。 - > Google Analytics(分析)API
>正如我们在第一部分中讨论的那样,管理API负责获取用户帐户,属性,视图……对于我们的第一个示例,我们将检索可为身份验证的用户可用的帐户列表。
>在Ga_service ::帐户中,我们使用授权客户端创建一个新的Google_analyticsService,然后查询API中的帐户列表。
在这种情况下,结果是一个数组,但是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(分析)的一些统计信息,我们需要提供一组维度和指标。
- >指标:指标是您属性中用户活动的单个测量值,例如会话和浏览量。
- >维度:尺寸分解了某些常见标准(例如国家或浏览器)的指标。
- 要获取可用元数据的列表,您只需使用curl来查询以下url https://www.googleapis.com/analytics/v3/metadata/ga/columns。
- Makerequest方法返回Google_httprequest实例,我们可以使用GetResponsebody获取我们的元数据响应。 >
- 现在,在访问浏览器中的 /元数据路由时,您应该获得一系列尺寸,而另一个则用于指标,并且每个尺寸都包含一个分组元素的列表。
- >运算符:操作员取决于度量或尺寸列ID的选择,请检查docs以获取运算符列表。
- 值:该值可以是数字,字符串或正则条件。
- >
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>
- google_httprequest:是代表单个http请求的类
为了加快流程,我们将使用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,开始日期和结束日期以及一系列指标。
google无法返回您的所有旧数据 - 而是我们提供了一个开始日期和结束日期。在我的示例中,我询问了上个月的结果。
第三个参数是我们从用户选择中已经拥有的指标列表。
>第四个可选参数是选项的数组。
- 最大值:结果的最大数量。 (我们使用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>
- ga:列:维度或公制ID(例如:GA:country)
段
默认情况下,Google Analytics(分析)将您的所有数据组在一个称为所有会话的组中。但是,您始终可以从内置段中选择或根据您的需求创建一个新的。您可以按推荐,设备类型,年龄,性别等进行分组数据。
>>您可以通过在可用段列表中添加新的选择元素来扩展演示,并如前所述将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(分析)的基本用法,但是您可以通过Google Analytics(分析仪表板)的选项扩展演示。
>您可以检查本教程的源代码的最终存储库。
>问题?评论?让我知道!经常询问有关使用Google Analytics API V3与php
使用Google Analytics(常见问题解答)>如何开始使用PHP?
的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对我的应用程序进行身份验证我的应用程序?创建API凭据时,您需要使用您收到的客户ID和客户端秘密。您可以使用这些凭据来获取访问令牌,然后您可以使用该凭据来验证您的API请求。
如何使用php?
>
>在使用Google Analytics(分析Analytics API V3)使用PHP?时,我该如何处理错误。 Google Analytics(分析)API V3具有PHP,出于各种原因可能发生错误,例如无效的请求参数或身份验证问题。您可以通过检查API返回的HTTP状态代码和错误消息来处理这些错误。这将为您提供有关出了什么问题以及如何解决的信息。>我可以使用php的Google Analytics API V3跟踪实时数据吗?是的,您可以使用Google Analytics(分析)带有PHP的API V3跟踪实时数据。 API提供了一个实时报告API,您可以使用该API检索实时数据,例如网站上的活动用户数量。
>>在使用php的Google Analytics API V3时如何过滤数据?
>您可以通过在API请求中指定过滤器参数时使用Google Analytics API V3过滤数据。这些参数允许您限制API返回的数据以满足特定条件。
我可以使用带有PHP的Google Analytics API V3从多个Google Analytics Carescect检索数据吗?可以将Google Analytics(分析)API V3与PHP一起从多个Google Analytics(分析)帐户中检索数据。您只需要分别对每个帐户进行身份验证,并为每个帐户单独提出API请求。>在使用php的Google Analytics API V3使用PHP?
使用Google Analytics(分析分析)API API V3与PHP使用PHP时,我如何分页结果。在您的API请求中。这些参数允许您指定要检索的结果范围。通过在API请求中指定排序参数,V3带有PHP。这些参数允许您根据特定的指标或尺寸订购API返回的数据。
>
以上是使用php的Google Analytics(分析)API V3:获取数据的详细内容。更多信息请关注PHP中文网其他相关文章!

热门文章

热门文章

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)