infoweb-internet-solutions / yii2-cms-analytics
Yii2 的分析模块
Requires
- google/apiclient: @stable
- yiisoft/yii2: @stable
This package is not auto-updated.
Last update: 2024-09-30 09:24:17 UTC
README
谷歌分析
安装
安装此扩展的首选方法是通过 composer.
运行以下命令之一
php composer.phar require --prefer-dist infoweb-internet-solutions/yii2-cms-analytics "*"
或者
"infoweb-internet-solutions/yii2-cms-analytics": "*"
将以下内容添加到您的 composer.json
文件的 require 部分。
访问 谷歌开发者控制台
创建一个新的项目(或使用现有的项目)
打开项目
转到 'API & Auth -> API's' 并启用 'Analytics API'
转到 'API & Auth -> Credentials' 并在 'OAuth' 下点击 '创建新的 Client ID'
选择 'Service account' 并点击 '创建 client id'
将证书保存到 'backend\assets\certificate\certificate.p12'(别忘了重命名文件)
将 'private key' 的密码记录下来
将凭据添加到您的后端参数中
return [ ... 'analytics' => [ 'developerKey' => '', // Public key fingerprints 'serviceAccountName' => 'xxx@developer.gserviceaccount.com', // Email address 'clientId' => 'xxx.apps.googleusercontent.com', // Client ID ], ];
访问 谷歌分析,打开您的属性并获取您的 'Profile ID'
(它是以 p: 开头的 URL 末尾的数字:https://www.google.com/analytics/web/#home/a11345062w43527078pXXXXXXXX/)
将 'Profile ID' 添加到您的参数中
return [ ... 'analytics' => [ ... 'analyticsId' => 'ga:XXXXXXXX', ], ];
将 serviceAccountName(《xxx@developer.gserviceaccount.com》)作为新用户添加到您的分析属性中
在 common/config 的 bootstrap 文件中创建别名 '@google/api',如下所示
Yii::setAlias('google/api', dirname(dirname(__DIR__)) . '/vendor/google/apiclient/src');
导入翻译并使用类别 'infoweb/analytics'
yii i18n/import @infoweb/analytics/messages
如果您无法访问服务器上的 /tmp
文件夹(共享托管),请在 vendor\google\apiclient\src\Google\
中的第 94 行进行更改
'directory' => dirname(Yii::getAlias('@webroot')) . '/runtime/Google_Client'
用法
安装扩展后,将 backend/views/site/index.php
中的内容替换为以下内容
<?php use infoweb\analytics\Analytics; $this->title = Yii::$app->name; ?>
<div class="site-index"> <div class="body-content"> <div class="row"> <div class="col-lg-12"> <h1 class="page-header"> <?= Yii::t('app', 'Dashboard'); ?> <span class="pull-right report-period"> <strong><?= Yii::$app->formatter->asDate(date('d-m-Y', strtotime('-1 month')), 'medium'); ?> - <?= Yii::$app->formatter->asDate(date('d-m-Y'), 'medium'); ?></strong> </span> </h1> </div> </div> <div class="row"> <?= Analytics::widget(['dataType' => Analytics::TOTAl_SESSIONS]); ?> <?= Analytics::widget(['dataType' => Analytics::TOTAL_USERS]); ?> <?= Analytics::widget(['dataType' => Analytics::TOTAL_PAGE_VIEWS]); ?> <?= Analytics::widget(['dataType' => Analytics::AVERAGE_SESSION_LENGTH]); ?> </div> <div class="row"> <?= Analytics::widget(['dataType' => Analytics::SESSIONS]); ?> </div> <div class="row"> <?= Analytics::widget(['dataType' => Analytics::VISITORS]); ?> <?= Analytics::widget(['dataType' => Analytics::COUNTRIES]); ?> </div> </div> </div>