chengwl 4 tahun lalu
induk
melakukan
07731fc6f6
2 mengubah file dengan 84 tambahan dan 11 penghapusan
  1. 26 2
      controllers/IndexController.php
  2. 58 9
      lib/GA.php

+ 26 - 2
controllers/IndexController.php

@@ -16,9 +16,33 @@ class IndexController extends \app\controllers\HomeController
 {
    
 
-  
+    //首页数据
     public function  actionIndex(){
-      echo 111;exit;
+      $ga=new GA();
+      $request = Yii::$app->request;
+      $store=$request->get('store');
+      $start_day=$request->get('start', date('Y-m-d',time()-3600*24*8));
+      $end_day = $request->get('end', date('Y-m-d',time()-3600*24));
+      try{
+        $storeData=$ga->storeData($store,$start_day,$end_day);
+        echo "<pre>";
+        print_r($storeData);exit;
+        
+        
+
+        // $product=$ga->product($store,$start_day,$end_day);
+        // $visitors=$ga->visitors_type($store,$start_day,$end_day);
+      }catch(\Exception $e){
+         $this->json(0,[],$e->getMessage());
+      }
+
+
+
+
+
+
+
+
     }
     public function actionContentpage(){
       $request = Yii::$app->request;

+ 58 - 9
lib/GA.php

@@ -598,19 +598,68 @@ class GA{
         $result=$this->getResults($reports);
          return $result;
     }
+    public function storeData($dp,$start_at,$end_at){
+        $analytics=self::getInstance($dp);
+        $dimensionArr=[
+        ];
+        $metricArr=[
+            'transactions'=>"ga:transactions",
+            'transactionRevenue'=>"ga:transactionRevenue",
+            'itemQuantity'=>"ga:itemQuantity",
+            'transactionsPerSession'=>"ga:transactionsPerSession",
+            'dcmFloodlightQuantity'=>"ga:dcmFloodlightQuantity",//广告转换
+            'dcmFloodlightRevenue'=>"ga:dcmFloodlightRevenue",//收入
+            'dcmCPC'=>"ga:dcmCPC",//每次点击费用
+            'dcmCTR'=>"ga:dcmCTR",//点击率
+            'dcmClicks'=>"ga:dcmClicks",//点击数
+            'dcmCost'=>"ga:dcmCost",//成本
+            'dcmROAS'=>"ga:dcmROAS",//报酬率
+        ];
+       
+        $VIEW_ID = $this->getViewId($dp);//
+        $dateRange = new \Google_Service_AnalyticsReporting_DateRange();
+        $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);
+        }
+        $regionFilter = new \Google_Service_AnalyticsReporting_DimensionFilter();
+        $regionFilter->setDimensionName("ga:region");
+        $regionFilter->setOperator("EXACT");
+        $regionFilter->setExpressions([$region]);
 
+        $MetricFilterClause=new \Google_Service_AnalyticsReporting_MetricFilterClause();
+        $MetricFilterClause->setFilters(array($regionFilter));
 
-    /**
-     * Queries the Analytics Reporting API V4.
-     *
-     * @param service An authorized Analytics Reporting API V4 service object.
-     * @return The Analytics Reporting API V4 response.
-     */
-    function getContentReport($VIEW_ID,$analytics,$metricArr,$dimensionArr) {
+
+        $request = new \Google_Service_AnalyticsReporting_ReportRequest();
+        $request->setViewId($VIEW_ID);
+        $request->setDateRanges($dateRange);
+        $request->setMetrics($metrics);
+        $request->setDimensions($dimensions);
+        $request->setDimensionFilterClauses($MetricFilterClause);
+        // $request->setOrderBys($orderBy);
+
+        $body = new \Google_Service_AnalyticsReporting_GetReportsRequest();
+        $body->setReportRequests( array( $request) );
+        $reports= $analytics->reports->batchGet( $body );
         
-       
-       
+        $result=$this->getResults($reports);
+         return $result;
+
     }
+
+   
     function getResults($reports) {
         $data=[];
         for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {