chengwl 4 years ago
parent
commit
b1d5fb275c
4 changed files with 69 additions and 42 deletions
  1. 44 4
      controllers/IndexController.php
  2. 1 38
      lib/GA.php
  3. 22 0
      models/ContentPage.php
  4. 2 0
      models/User.php

+ 44 - 4
controllers/IndexController.php

@@ -7,9 +7,8 @@ use yii\filters\AccessControl;
 use yii\web\Controller;
 use yii\web\Response;
 use yii\filters\VerbFilter;
-use app\models\LoginForm;
-use app\models\ContactForm;
 use app\lib\GA;
+use app\models\ContentPage;
 
 class IndexController extends Controller
 {
@@ -62,8 +61,7 @@ class IndexController extends Controller
      */
     public function actionIndex()
     {
-        $ga=new GA();
-        $contentpages=$ga->contentpages('supernova');
+
         exit;
         
 
@@ -110,6 +108,48 @@ class IndexController extends Controller
         exit;
         return $this->render('index');
     }
+    public function synsData(){
+      $ga=new GA();
+      $contentpages=$ga->contentpages('supernova');
+      $i=1;
+      $limit=20;
+      $modelKey=[
+        'pagePath',
+        'date',
+        'pageviews',
+        'uniquePageviews',
+        'avgTimeOnPage',
+        'entrances',
+        'bounceRate',
+        'exitRate',
+        'pageValue',
+        'created_at',
+      ];
+      if(!empty($contentpages)){
+        foreach($contentpages as $k=>$v){
+          $list=[];
+          $item=[
+            $v['pagePath'],
+            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(), $userkey, $uservale)->execute();
+          }
+          $i++;
+        }
+      }
+
+
+    }
 
     
 

+ 1 - 38
lib/GA.php

@@ -95,13 +95,10 @@ class GA{
         $simpleSegment = new \Google_Service_AnalyticsReporting_SimpleSegment();
         $simpleSegment->setOrFiltersForSegment(array($orFiltersForSegment));
 
-
          // Create the Segment Filters.
         $segmentFilter = new \Google_Service_AnalyticsReporting_SegmentFilter();
         $segmentFilter->setSimpleSegment($simpleSegment);
         $segmentFilter->setNot(True);
-        
-        
 
         // Create the Segment Definition.
         $segmentDefinition = new \Google_Service_AnalyticsReporting_SegmentDefinition();
@@ -134,45 +131,11 @@ class GA{
         $reports= $analytics->reports->batchGet( $body );
 
         $result=$this->getResults($reports);
-        echo "<pre>";
-        print_r($result);exit;
+         return $result;
        
     }
 
 
-    function segmentFilters(){
-        $metricFilter = new \Google_Service_AnalyticsReporting_SegmentMetricFilter();
-        $metricFilter->setMetricName("ga:pageviews");
-        $metricFilter->setOperator("GREATER_THAN");
-        $metricFilter->setComparisonValue("1");
-
-
-          // Create Segment Filter Clause.
-        $segmentFilterClause = new \Google_Service_AnalyticsReporting_SegmentFilterClause();
-        $segmentFilterClause->setMetricFilter($metricFilter);
-
-
-
-        // Create the Or Filters for Segment.
-        $orFiltersForSegment = new \Google_Service_AnalyticsReporting_OrFiltersForSegment();
-        $orFiltersForSegment->setSegmentFilterClauses(array($segmentFilterClause));
-
-          // Create the Simple Segment.
-        $simpleSegment = new \Google_Service_AnalyticsReporting_SimpleSegment();
-        $simpleSegment->setOrFiltersForSegment(array($orFiltersForSegment));
-
-
-         // Create the Segment Filters.
-        $segmentFilter = new \Google_Service_AnalyticsReporting_SegmentFilter();
-        $segmentFilter->setSimpleSegment($simpleSegment);
-        return $segmentFilter;
-        
-    }
-
-
-
-
-
 
     /**
      * Queries the Analytics Reporting API V4.

+ 22 - 0
models/ContentPage.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace app\models;
+use yii\db\ActiveRecord;
+
+class ContentPage extends ActiveRecord 
+{
+
+     function rules(){
+        return [
+            // name, email, subject 和 body 属性必须有值
+            [['pagepath','date','pageviews'], 'required'],
+            [[
+                'uniquePageviews','avgTimeOnPage',
+                'entrances','bounceRate',
+                'exitRate','pageValue',
+            ], 'safe'],
+        ];
+    }
+   
+    
+}

+ 2 - 0
models/User.php

@@ -2,6 +2,8 @@
 
 namespace app\models;
 
+
+
 class User extends \yii\base\BaseObject implements \yii\web\IdentityInterface
 {
     public $id;