海外服务网站 利用谷歌统计实战,实现用户数据分析

谷歌统计网址:https://analytics.google.com

1、注册谷歌统计账号

如果有谷歌账号,一般会自动注册(有待测试)

2、创建媒体资源

点击左侧“管理”右侧弹出三列,分别为:“账号”、“媒体资源”、“数据视图”点击“媒体资源”栏目下的“媒体资源设置”填写媒体资源名称、默认网址(就是您需要跟踪的网站网址)

3、创建数据视图

点击“数据视图”栏目下的“数据视图设置”填写数据视图名称、网站网址、币种显示(如果网站平台为电子商务平台,需要收集交易数据,则应选择平台使用的币种)

4、向网站紧贴

标签添加全局代码:
 代码位置:“媒体资源”栏目下“.js 跟踪代码”->“跟踪代码”以下代码可以自行优化,比如自己增加 用户 IP 指标等等
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'GA_TRACKING_ID');
</script>

php 获取分析数据

参考文档 :https://developers.google.com/analytics/devguides/config/mgmt/v3?hl=zh-cn

第 1 步:启用 Google Analytics(分析)API
要开始使用 Google Analytics(分析)API,需要先使用设置工具,该工具会引导您在 Google API 控制台中创建项目,启用 API 以及创建凭据。创建客户端 ID
打开服务帐号页。如果看到相关提示,请选择项目。
点击创建服务帐号。
在创建服务帐号窗口中,键入服务帐号的名称,然后选择提供新的私钥。如果您希望将 G Suite 全网域权限授予该服务帐号,另请选中启用 G Suite 全网域委派功能。然后点击保存。
您的新公钥/私钥对已生成并下载到您的计算机;该密钥仅此一份,您负责安全存储该密钥。当系统提示您提供“密钥类型”时,选择 JSON,并将生成的密钥另存为 service-account-credentials.json;在本教程的后面,您将需要用到该密钥。
将服务帐号添加到 Google Analytics(分析)帐号中
新建服务帐户的电子邮件地址为 &ltprojectId&gt-&ltuniqueId&gt@developer.gserviceaccount.com,可用于向您想通过该 API 访问的 Google Analytics(分析)帐户添加用户。就本教程涵盖的内容而言,只需阅读和分析权限即可。第 2 步:安装 Google 客户端库
要获得适用于 PHP 的 Google API 客户端库,您可以下载此版本或使用 Composer:composer require google/apiclient:^2.0第 3 步:设置示例代码
您需要创建一个名为 HelloAnalytics.php 的文件,其中将包含以下示例代码。将以下源代码复制或下载到 HelloAnalytics.php 中。
将先前下载的 service-account-credentials.json 移到示例代码所在的目录中。
首先要先在后套
<?php
use Hisune\EchartsPHP\ECharts;
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use \kartik\date\DatePicker;$this->title = '管理后台';?><div ><?php  $form = ActiveForm::begin(['action' => ['index/index'], 'method' => 'post']); ?><div><div style="float:left;margin-left: 150px;"><?phpecho DatePicker::widget(['model' => $model,'attribute' => 'start_date','attribute2' => 'end_date','options' => ['placeholder' => '开始时间'],'options2' => ['placeholder' => '结束时间'],'type' => DatePicker::TYPE_RANGE,'separator' => '-','pluginOptions' => ['endDate'=>'+1','format' => 'yyyy-mm-dd','autoclose' => true,]]);?></div><div  class="form-group" style="display: inline-block;margin-left: 10px;"><?= Html::submitButton('搜索', ['class' => 'btn btn-primary']) ?></div></div><?php ActiveForm::end(); ?></div><?php
$chart = new ECharts();
//        $day = date('Y-m-d', time()); //获取当天日期
$chart->title->text = '浏览量(总浏览量'.$visite.')'; //标题
//        $chart->title->subtext = '日期 ' . $day; //副标题
$chart->title->left = 'center'; //标题距离左侧的距离,这里设为居中
$chart->tooltip->show = true; //提示框显示
$chart->tooltip->trigger = 'axis'; //数据项图形触发
$chart->legend->data = ['浏览量', '访客数', '新访客数']; //图例组件   ,'IP数'
$chart->legend->left = 'right'; //图例组件显示在右边
$chart->color = ['#d14a61', '#3c8dbc', 'green', 'orange']; //颜色就在这里定义,series会按顺序使用这些颜色。
$chart->xAxis = array('type' => 'category','data' => $data['DAY'],
);$chart->yAxis = [['type' => 'value','name' => '浏览量','min' => 0,'axisLine' => ['lineStyle' => ['color' => 'green'//定义Y轴颜色]],'axisLabel' => ['formatter' => "{value}"//定义Y轴刻度标签],],
];
$chart->series = [['name' => '浏览量','type' => 'line','data' => $data['DAV'],],
//    [
//        'name' => 'IP数',
//        'type' => 'line',
//        'data' => $data['DIP'],
//    ],['name' => '访客数','type' => 'line','data' => $data['DAU'],],['name' => '新访客数','type' => 'line','data' => $data['DNU'],],];echo $chart->render('simple-custom-1');
?>
 public function initializeAnalytics(){// Use the developers console and download your service account// credentials in JSON format. Place them in this directory or// change the key file location if necessary.$KEY_FILE_LOCATION = __DIR__ . '/client_secrets.json';// Create and configure a new client object.$client = new \Google_Client();$client->setApplicationName("Hello Analytics Reporting");$client->setAuthConfig($KEY_FILE_LOCATION);$client->setDeveloperKey('OAuth 客户端的ID');$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);$analytics = new \Google_Service_AnalyticsReporting($client);return $analytics;}public function actionIndex(){$analytics =  $this->initializeAnalytics();$data = $this->getReport($analytics);return $this->render('index', $data);}/*** Queries the Analytics Reporting API V4.** @param service An authorized Analytics Reporting API V4 service object.* @return The Analytics Reporting API V4 response.*/public function getReport($analytics) {$model = new \app\models\DayCount();$startDate = date('Y-m-d', strtotime('-7 day'));$endDate = date('Y-m-d', time());if (Yii::$app->request->isPost) {$model->load(Yii::$app->request->post());$startDate = date('Y-m-d',strtotime($model->start_date));$endDate = date('Y-m-d',strtotime($model->end_date)) ;}else{$model->start_date = date('Y-m-d',  strtotime($startDate));$model->end_date = date('Y-m-d',  strtotime($endDate));}// Replace with your view ID, for example XXXX.$VIEW_ID = "216828575";  //数据视图ID// 配置时间范围$dateRange = new \Google_Service_AnalyticsReporting_DateRange();$dateRange->setStartDate($startDate);$dateRange->setEndDate($endDate); //"2020-05-05"// 配置指标 (显示的字段). 方法一
//        $sessions = new \Google_Service_AnalyticsReporting_Metric();
//        $sessions->setExpression("ga:pageviews");// sessions
//        $sessions->setAlias("pageviews");
//        $sessions2 = new \Google_Service_AnalyticsReporting_Metric();
//        $sessions2->setExpression("ga:users");// users
//        $sessions->setAlias("users");//配置维度  (每日  分组)$browser = new \Google_Service_AnalyticsReporting_Dimension();$browser->setName("ga:date");//  ga:day  ga:nthDay   date// Create the ReportRequest object.$request = new \Google_Service_AnalyticsReporting_ReportRequest();$request->setViewId($VIEW_ID);$request->setDateRanges($dateRange);$request->setDimensions($browser);//配置查询指标  (显示的字段).  方法二$request->setMetrics([["expression"=>'ga:users'],["expression"=>'ga:pageviews'],["expression"=>'ga:newUsers']]);//array($sessions,$sessions2)$request->setMetricFilterClauses([["filters"=>[["metricName"=> "ga:users","operator"=> "GREATER_THAN", //GREATER_THAN   MORE_THAN"comparisonValue"=> "-1"]]]]);$body = new \Google_Service_AnalyticsReporting_GetReportsRequest();$body->setReportRequests( array( $request) );$data = $analytics->reports->batchGet($body );$data_new = $this->printResults($data);$visite = array_sum($data_new['DAV']);return ['data'=>$data_new,'model'=>$model,'visite'=>$visite];}/*** Parses and prints the Analytics Reporting API V4 response.** @param An Analytics Reporting API V4 response.*/function printResults($reports) {$data = [];for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {$report = $reports[ $reportIndex ];$header = $report->getColumnHeader();$dimensionHeaders = $header->getDimensions();$metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();$rows = $report->getData()->getRows();for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {$row = $rows[ $rowIndex ];$dimensions = $row->getDimensions();$metrics = $row->getMetrics();//维度信息for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {$data['DAY'][] = $dimensions[$i];
//                    print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n");}//指标信息for ($j = 0; $j < count($metrics); $j++) {$values = $metrics[$j]->getValues();for ($k = 0; $k < count($values); $k++) {$entry = $metricHeaders[$k];//每日 浏览量if($entry->getName() == 'ga:pageviews'){$data['DAV'][] = $values[$k];}//每日 访客数if($entry->getName() == 'ga:users'){$data['DAU'][] = $values[$k];}//每日 新访客数if($entry->getName() == 'ga:newUsers'){$data['DNU'][] = $values[$k];}
//                        $data[$entry->getName()]   = $values[$k];
//                        print($entry->getName() . ": " . $values[$k] . "\n");}}}}return $data;}

Google Analytics API V4(谷歌统计实战)相关推荐

  1. Java调用Google Analytics API实现网站统计

    首先,申请Google帐号和Google Analytics服务,并将统计代码放入你想统计的网站中一段时间,确保你的Google Analytics中已有数据. 在Google Analytics中, ...

  2. 《流量的秘密 Google Analytics网站分析与商业实战》一2.2 版本选择的标准

    本节书摘来自异步社区<流量的秘密 Google Analytics网站分析与商业实战>一书中的第2章,第2.2节,作者 [英]Brian Clifton,更多章节内容可以访问云栖社区&qu ...

  3. 验证javascript错误使用Google Analytics(分析、统计)

    Google Analytics不只是一个流量统计工具,还可以用它来测量广告活动的有效性,跟踪用户进入的页面所需的时间, 如:从点击广告到购物车到结账页面的时间间隔. // 跟踪基本的 JavaScr ...

  4. Google Analytics Measurement Protocol添加自定义统计事件

    有能力的可以直接看官方文档:https://developers.google.com/analytics/devguides/collection/protocol/ga4?hl=zh-cn 借助适 ...

  5. Google Map API使用谷歌地图api实现地点搜索功能

    需求:提供谷歌地图搜索地点功能,并查出经纬度坐标. 官方文档:https://developers.google.com/maps/?hl=zh-cn 地点详情接口: https://maps.goo ...

  6. 教你找到免费的Google Translate API(谷歌翻译接口)+C#版的Google翻译函数

    http://www.crifan.com/teach_you_how_to_find_free_google_translate_api/ (还没试过有时间试下.....) 今日,在想要在C#中,利 ...

  7. 博客园 cnblogs博客添加Google Analytics统计

    在cnblogs的文章列表中只可以看到自己的每篇文章的页面浏览量,没有详细的统计信息.Google Analytics作为强大的统计工具,能得到几乎所有想要的统计信息,是博客不可多得的好工具,本文介绍 ...

  8. 流量的秘密—Google Analytics网站分析与优化技巧(第2版)

    本文转自蓝鲸的网站分析笔记 文章地址http://bluewhale.cc/2012-05-07/advanced-web-metrics-with-google-analytics-2nd-edit ...

  9. 在next js中添加google analytics功能

    Google Analytics 如果想要统计网站的访问数据.性能数据,可以通过google analytics来添加支持. 填入需要的网站地址和名称.可以得到一个G-XXXXXXXX的代码. 如图 ...

  10. python google地图_请问该如何在python中使用google maps api?

    开通API功能及相应的权限 这个这部分主要是因为要和google的api需要自动去开通 ,首先默认情况下google是没有开放这个服务的,需要首先去告诉google 我是开发者,我要做一个项目,这个项 ...

最新文章

  1. 练习 MongoDB 操作 —— 备份篇(三)
  2. ROS中Remap标签详解
  3. 数据结构源码笔记(C语言):哈希表的相关运算算法
  4. hashmap containsvalue时间复杂度_不看看HashMap源码,怎么和面试官谈薪资
  5. [Oracle]如何查看一个数据文件是否是自动扩展
  6. python使用sql读取数据表并返回dataframe
  7. elasticsearch 清理数据后硬盘不释放_电脑C盘正确的5种清理方法,你还不知道?学会后轻松释放20G空间...
  8. [USACO08NOV]时间管理Time Management
  9. 不同方式遍历Map集合
  10. 导出WPS office文档格式的说明
  11. 微信开发 | 配置微信公众号支付环境
  12. “K米” 软件产品评测
  13. 在vue中使用Animate.css
  14. SpringBoot启动失败:出现错误——HikariPool-1 - Shutdown initiated...后立即出现 HikariPool-1 - Shutdown completed.
  15. 华三模拟器HCL常用命令
  16. ASP完美优化(不断更新)
  17. 如何用IED编写股票的量化策略?
  18. 防火墙区域及工作模式
  19. 3.2.3 使用tcpdump观察TCP头部信息(补充TCP协议的常用知识)
  20. MIniIO Erasure Coding 应用案例

热门文章

  1. 重走机器学习之路——形而上者谓之道
  2. java web前端邮件,JavaMail:在Web应用上完整接收、解析复杂邮件(转)
  3. 删库跑路大神的一生,真狠人!
  4. 穷爸爸与富爸爸读后感 (2)
  5. [Unity3D] [学习] Unity3D的官方文档
  6. 《Linux运维总结:SVN提示Node remains in conflict解决办法》
  7. python装饰器底层原理讲解
  8. Android蓝牙源码分析——BTA层消息分发
  9. delphi mysql 删除_Delphi如何清空日志文件
  10. 用了亿恩的空间,总有上当的感觉