搜索
首页后端开发php教程使用php的Google Analytics(分析)API V3:获取数据

使用php的Google Analytics(分析)API V3:获取数据

在系列的第一部分中,我们介绍了Google Analytics(包括基本用法)。在这一部分中,我们将继续创建我们的演示,并了解如何通过更多功能扩展它。

>

钥匙要点

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

>正如我们在第一部分中讨论的那样,管理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>
>该结果包含有关总结果和一些分页信息的信息。项目列包含带有其ID,权限等的帐户列表,但是我们通过项目循环以从帐户中提取ID和名称。

如果您想具有结果分页,可以始终将更多选项传递给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>
在浏览器中,击中/views/{councel_id}/{property_id}路由时,我们应该得到类似的东西:

<span>$this->client->setUseObjects(true);</span>
>元数据API

要查询Google Analytics(分析)的一些统计信息,我们需要提供一组维度和指标。

    >指标:指标是您属性中用户活动的单个测量值,例如会话和浏览量。
  • >维度:尺寸分解了某些常见标准(例如国家或浏览器)的指标。
  • 要获取可用元数据的列表,您只需使用curl来查询以下url https://www.googleapis.com/analytics/v3/metadata/ga/columns。>

    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请求的类
    • Makerequest方法返回Google_httprequest实例,我们可以使用GetResponsebody获取我们的元数据响应。
    • >
    • 现在,在访问浏览器中的 /元数据路由时,您应该获得一系列尺寸,而另一个则用于指标,并且每个尺寸都包含一个分组元素的列表。

    为了加快流程,我们将使用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>
    我们需要更新我们的homecontroller@index以显示主页视图。

    从屏幕截图中可以看到

    >,当用户选择一个帐户时,我们异步更改属性和视图。为了实现这一目标,我编写了一些简单的JS,您可以在最终的存储库中检查一下。使用php的Google Analytics(分析)API V3:获取数据>

    >报告API

    通过提供所选视图,指标和维度,我们可以获得有关用户和交互的详细统计信息。用户提交后的结果类似于:

    >
    [
        {
            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>
    >调用GET GOGEE_ANALYTICSSERVICE :: GET方法后,我们使用结果项目,列标题和总结果的列表将结果作为表输出。>

    使用php的Google Analytics(分析)API V3:获取数据

    扩展演示

    现在,让我们看看如何通过过滤器,分类和段扩展演示。

    >

    >过滤

    >过滤器是从返回结果中排除某些数据的一种方法。他们采用以下形式:

    <span>$this->client->setUseObjects(true);</span>
      ga:列:维度或公制ID(例如:GA:country)
    • >运算符:操作员取决于度量或尺寸列ID的选择,请检查docs以获取运算符列表。
    • 值:该值可以是数字,字符串或正则条件。
    • >
    >您可以组合多个过滤器:您可以将逗号(,)用作操作员或semi-colon(;)作为一个和运算符。

    默认情况下,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检索Google Analytics(分析)从Google检索数据。使用PHP分析,您需要向Google Analytics(Analytics)API提出GET请求。您可以指定要在请求参数中应用的指标,尺寸和过滤器。 API将以JSON格式返回请求的数据,然后您可以在应用程序中解析并使用。

    >

    >在使用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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在Laravel中使用Flash会话数据在Laravel中使用Flash会话数据Mar 12, 2025 pm 05:08 PM

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

php中的卷曲:如何在REST API中使用PHP卷曲扩展php中的卷曲:如何在REST API中使用PHP卷曲扩展Mar 14, 2025 am 11:42 AM

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

简化的HTTP响应在Laravel测试中模拟了简化的HTTP响应在Laravel测试中模拟了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

在Codecanyon上的12个最佳PHP聊天脚本在Codecanyon上的12个最佳PHP聊天脚本Mar 13, 2025 pm 12:08 PM

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

解释PHP中晚期静态结合的概念。解释PHP中晚期静态结合的概念。Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

PHP记录:PHP日志分析的最佳实践PHP记录:PHP日志分析的最佳实践Mar 10, 2025 pm 02:32 PM

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

在Laravel中发现文件下载的存储::下载在Laravel中发现文件下载的存储::下载Mar 06, 2025 am 02:22 AM

Laravel框架的Storage::download方法提供了一个简洁的API,用于安全地处理文件下载,同时管理文件存储的抽象。 以下是一个在示例控制器中使用Storage::download()的例子:

Laravel的全球视图数据管理Laravel的全球视图数据管理Mar 06, 2025 am 02:42 AM

Laravel的视图::共享方法提供了一种简化的方法,可以使您的所有应用程序的视图中访问数据。这对于管理全局设置,用户偏好或重复出现的UI组件特别有用。 在拉拉维尔发展中,

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
2 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器