浏览代码

trafficsource

chengwl 4 年之前
父节点
当前提交
17c67c33d6
共有 3 个文件被更改,包括 138 次插入43 次删除
  1. 79 43
      controllers/IndexController.php
  2. 58 0
      lib/GA.php
  3. 1 0
      models/ContentPage.php

+ 79 - 43
controllers/IndexController.php

@@ -9,6 +9,7 @@ use yii\web\Response;
 use yii\filters\VerbFilter;
 use app\lib\GA;
 use app\models\ContentPage;
+use yii\data\Pagination;
 
 class IndexController extends Controller
 {
@@ -19,11 +20,41 @@ class IndexController extends Controller
       echo 111;exit;
     }
     public function actionContentpage(){
-      $pages=ContentPage::find()->asArray()->all();
+      $request = Yii::$app->request;
       \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
+      $store = $request->get('store', "supernova");  
+      $limit = $request->get('limit', "10");  
+      $page = $request->get('page', "1"); 
+      
+      $page=$page-1>=0?$page-1:0;
+      $where=[];
+      if(!$store){
+        return ['status'=>false,'msg'=>"参数异常"];
+      }
+      $where['store']=$store;
+
+      $query=ContentPage::find()->where(["store"=>$where]);
+      $count = $query->count();
+      $pagination = new Pagination(['totalCount' => $count,'pageSize'=>$limit,'page'=>$page]);
+
+      $items = $query->offset($pagination->offset)
+          ->limit($pagination->limit)
+          ->orderBy([
+            'pageviews'=>SORT_DESC,
+            'id'=>SORT_DESC
+          ])
+          ->all();
+        foreach($items as $k=>$v){
+          $items[$k]['created_at']=date('Y-m-d H:i:s',$v['created_at']);
+        }
+      $data=[
+        'total'=>$count,
+        'items'=>$items,
+      ];
+      
       return [
         'code' => 200,
-        'data'=>$pages,
+        'data'=>$data,
         'status'=>true    
       ];
     }
@@ -31,51 +62,56 @@ class IndexController extends Controller
     public function actionSynsdata(){
       $ga=new GA();
       $store="supernova";
-      $contentpages=$ga->contentpages($store);
-      $i=1;
-      $limit=20;
-      $modelKey=[
-        'pagePath',
-        'store',
-        'date',
-        'pageviews',
-        'uniquePageviews',
-        'avgTimeOnPage',
-        'entrances',
-        'bounceRate',
-        'exitRate',
-        'pageValue',
-        'created_at',
-      ];
-      if(!empty($contentpages)){
-        $list=[];
-        foreach($contentpages as $k=>$v){
-          $item=[
-            $v['pagePath'],
-            $store,
-            date('y-m-d',strtotime($v['date'])),
-            $v['pageviews'],
-            $v['uniquePageviews'],
-            $v['avgTimeOnPage'],
-            $v['entrances'],
-            $v['bounceRate'],
-            $v['exitRate'],
-            $v['pageValue'],
-            time(),
-          ];
-          $list[]=$item;
-          if($i%$limit==0||$i==count($contentpages)){
-            \Yii::$app->db->createCommand()->batchInsert(ContentPage::tableName(), $modelKey, $list)->execute();
-            $list=[];
-            echo 111111;exit;
+      $data=$ga->trafficsource($store);
+      // $contentpages=$ga->contentpages($store);
+      // $this->addContentpages($contentpages,$store);
+
+     
+
+    }
+    public function addContentpages($contentpages,$store){
+        $i=1;
+        $limit=20;
+        $modelKey=[
+          'pagePath',
+          'store',
+          'date',
+          'pageviews',
+          'uniquePageviews',
+          'avgTimeOnPage',
+          'entrances',
+          'bounceRate',
+          'exitRate',
+          'pageValue',
+          'created_at',
+        ];
+        if(!empty($contentpages)){
+          $list=[];
+          foreach($contentpages as $k=>$v){
+            $item=[
+              $v['pagePath'],
+              $store,
+              date('Y-m-d',strtotime($v['date'])),
+              $v['pageviews'],
+              $v['uniquePageviews'],
+              $v['avgTimeOnPage'],
+              $v['entrances'],
+              $v['bounceRate'],
+              $v['exitRate'],
+              $v['pageValue'],
+              time(),
+            ];
+            $list[]=$item;
+            if($i%$limit==0||$i==count($contentpages)){
+              \Yii::$app->db->createCommand()->batchInsert(ContentPage::tableName(), $modelKey, $list)->execute();
+              $list=[];
+            }
+            $i++;
           }
-          $i++;
         }
-      }
-      echo 111111;exit;
-
 
     }
+
   }
 
     

+ 58 - 0
lib/GA.php

@@ -134,6 +134,64 @@ class GA{
          return $result;
        
     }
+    public function trafficsource(){
+        $analytics=self::getInstance($dp);
+        $metricArr=[
+            'users'=>"ga:users",
+            'uniquePageviews'=>"ga:newUsers",
+            'sessions'=>"ga:sessions",
+            // 'entrances'=>"ga:entrances",
+            // 'bounceRate'=>"ga:bounceRate",
+            // 'exitRate'=>"ga:exitRate",
+            // 'pageValue'=>"ga:pageValue",
+        ];
+        $dimensionArr=[
+            'pagePath'=>'ga:source',
+            'date'=>"ga:date",
+            'acquisitionTrafficChannel'=>"ga:acquisitionTrafficChannel",
+            'landingPagePath'=>"ga:landingPagePath",
+            'keyword'=>"ga:keyword",
+            'socialNetwork'=>"ga:socialNetwork",
+        ];
+        $VIEW_ID = $this->getViewId($dp);//
+        $dateRange = new \Google_Service_AnalyticsReporting_DateRange();
+        $start_at=date('Y-m-d',time()-24*3600);
+        $end_at=date('Y-m-d',time()-24*3600);
+        $dateRange->setStartDate($start_at);
+        $dateRange->setEndDate($end_at);
+        $metrics=[];
+        $dimensions=[];
+        foreach($metricArr as $k=>$v){
+            $Metric = new \Google_Service_AnalyticsReporting_Metric();
+            $Metric->setExpression($v);
+            $Metric->setAlias($k);
+            array_push($metrics,$Metric);
+        }
+        foreach($dimensionArr as $k=>$v){
+            $Dimension = new \Google_Service_AnalyticsReporting_Dimension();
+            $Dimension->setName($v);
+            array_push($dimensions,$Dimension);
+        }
+        $request = new \Google_Service_AnalyticsReporting_ReportRequest();
+        $request->setViewId($VIEW_ID);
+        $request->setDateRanges($dateRange);
+        $request->setMetrics($metrics);
+        $request->setDimensions($dimensions);
+        // $request->setSegments(array($segment));
+        // $request->setOrderBys($orderBy);
+        // $request->setMetricFilterClauses($MetricFilterClause);
+
+    
+        $body = new \Google_Service_AnalyticsReporting_GetReportsRequest();
+        $body->setReportRequests( array( $request) );
+        $reports= $analytics->reports->batchGet( $body );
+
+        $result=$this->getResults($reports);
+        echo "<pre>";
+        print_r($result);exit;
+         return $result;
+
+    }
 
 
 

+ 1 - 0
models/ContentPage.php

@@ -18,5 +18,6 @@ class ContentPage extends ActiveRecord
         ];
     }
    
+   
     
 }