|
@@ -77,10 +77,129 @@ class GA{
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
return $path;
|
|
return $path;
|
|
|
|
+ }
|
|
|
|
+ /*进一步封装
|
|
|
|
+ *$config=[
|
|
|
|
+ 'dp'=>'',
|
|
|
|
+ 'metricArr'=[],
|
|
|
|
+ 'dimensionArr'=[],
|
|
|
|
+ 'dateRange'=[start_at,end_at]
|
|
|
|
+ 'SegmentDimensionFilters'=>[[name,operate,expression]]
|
|
|
|
+ 'oderBy'=>[name,order]
|
|
|
|
+ ]
|
|
|
|
+ *
|
|
|
|
+ *
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+ public function getData($config){
|
|
|
|
+ if(!$dp||!$dateRange||empty($config['metricArr'])){
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ $metricArr=$config['metricArr'];
|
|
|
|
+ $dimensionArr=$config['dimensionArr'];
|
|
|
|
+
|
|
|
|
+ $analytics=self::getInstance($dp);
|
|
|
|
+ $VIEW_ID = $this->getViewId($dp);//
|
|
|
|
+
|
|
|
|
+ $request = new \Google_Service_AnalyticsReporting_ReportRequest();
|
|
|
|
+ $request->setViewId($VIEW_ID);
|
|
|
|
+
|
|
|
|
|
|
|
|
+ $dateRange = new \Google_Service_AnalyticsReporting_DateRange();
|
|
|
|
+ $dateRange->setStartDate($config['start_at']);
|
|
|
|
+ $dateRange->setEndDate($config['end_at']);
|
|
|
|
+ $request->setDateRanges($dateRange);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $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->setMetrics($metrics);
|
|
|
|
+ $request->setDimensions($dimensions);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $segment=[];
|
|
|
|
+ if(isset($config['SegmentDimensionFilters'])&&!empty($config['SegmentDimensionFilters'])){
|
|
|
|
+ foreach($config['SegmentDimensionFilters'] as $filter){
|
|
|
|
+ $segment[]=$this->setSegmentDimensionFilter($filter);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(isset($config['SegmentMetricFilters'])&&!empty($config['SegmentMetricFilters'])){
|
|
|
|
+ foreach($config['SegmentMetricFilters'] as $filter){
|
|
|
|
+ $segment[]=$this->setSegmentMetricFilters($filter);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(!empty($segment)){
|
|
|
|
+ $request->setSegments(array($segment));
|
|
|
|
+ }
|
|
|
|
+ if(isset($config['orderBy'])&&!empty($config['orderBy'])){
|
|
|
|
+ $orderBy=new \Google_Service_AnalyticsReporting_OrderBy();
|
|
|
|
+ $orderBy->setFieldName($config['orderBy']['name']);
|
|
|
|
+ $orderBy->setSortOrder($config['orderBy']['order']);
|
|
|
|
+ $request->setOrderBys($orderBy);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $body = new \Google_Service_AnalyticsReporting_GetReportsRequest();
|
|
|
|
+ $body->setReportRequests( array( $request) );
|
|
|
|
+ $reports= $analytics->reports->batchGet( $body );
|
|
|
|
+ $result=$this->getResults($reports);
|
|
|
|
+ return $result;
|
|
|
|
+ }
|
|
|
|
+ private function setSegmentDimensionFilter($param){
|
|
|
|
+ $dimensionFilter = new \Google_Service_AnalyticsReporting_SegmentDimensionFilter();
|
|
|
|
+ $dimensionFilter->setDimensionName($param['name']);
|
|
|
|
+ $dimensionFilter->setOperator($param['operate']);
|
|
|
|
+ $dimensionFilter->setExpressions($param['expression']);
|
|
|
|
+
|
|
|
|
+ // Create Segment Filter Clause.
|
|
|
|
+ $segmentFilterClause = new \Google_Service_AnalyticsReporting_SegmentFilterClause();
|
|
|
|
+ $segmentFilterClause->setDimensionFilter($dimensionFilter);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // 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);
|
|
|
|
+ $segmentFilter->setNot(True);
|
|
|
|
+
|
|
|
|
+ // Create the Segment Definition.
|
|
|
|
+ $segmentDefinition = new \Google_Service_AnalyticsReporting_SegmentDefinition();
|
|
|
|
+ $segmentDefinition->setSegmentFilters(array($segmentFilter));
|
|
|
|
+
|
|
|
|
+ $dynamicSegment = new \Google_Service_AnalyticsReporting_DynamicSegment();
|
|
|
|
+ $dynamicSegment->setSessionSegment($segmentDefinition);
|
|
|
|
+ $dynamicSegment->setName($param['name']);
|
|
|
|
+
|
|
|
|
+ $segment = new \Google_Service_AnalyticsReporting_Segment();
|
|
|
|
+ $segment->setDynamicSegment($dynamicSegment);
|
|
|
|
+ return $segment;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
public function contentpages($dp,$start_at,$end_at){
|
|
public function contentpages($dp,$start_at,$end_at){
|
|
$analytics=self::getInstance($dp);
|
|
$analytics=self::getInstance($dp);
|
|
$metricArr=[
|
|
$metricArr=[
|
|
@@ -150,7 +269,6 @@ class GA{
|
|
// Create the Simple Segment.
|
|
// Create the Simple Segment.
|
|
$simpleSegment = new \Google_Service_AnalyticsReporting_SimpleSegment();
|
|
$simpleSegment = new \Google_Service_AnalyticsReporting_SimpleSegment();
|
|
$simpleSegment->setOrFiltersForSegment(array($orFiltersForSegment));
|
|
$simpleSegment->setOrFiltersForSegment(array($orFiltersForSegment));
|
|
-
|
|
|
|
// Create the Segment Filters.
|
|
// Create the Segment Filters.
|
|
$segmentFilter = new \Google_Service_AnalyticsReporting_SegmentFilter();
|
|
$segmentFilter = new \Google_Service_AnalyticsReporting_SegmentFilter();
|
|
$segmentFilter->setSimpleSegment($simpleSegment);
|
|
$segmentFilter->setSimpleSegment($simpleSegment);
|
|
@@ -171,7 +289,6 @@ class GA{
|
|
$orderBy->setFieldName('ga:pageviews');
|
|
$orderBy->setFieldName('ga:pageviews');
|
|
$orderBy->setSortOrder("DESCENDING");
|
|
$orderBy->setSortOrder("DESCENDING");
|
|
|
|
|
|
-
|
|
|
|
$request = new \Google_Service_AnalyticsReporting_ReportRequest();
|
|
$request = new \Google_Service_AnalyticsReporting_ReportRequest();
|
|
$request->setViewId($VIEW_ID);
|
|
$request->setViewId($VIEW_ID);
|
|
$request->setDateRanges($dateRange);
|
|
$request->setDateRanges($dateRange);
|
|
@@ -189,7 +306,6 @@ class GA{
|
|
|
|
|
|
$result=$this->getResults($reports);
|
|
$result=$this->getResults($reports);
|
|
return $result;
|
|
return $result;
|
|
-
|
|
|
|
}
|
|
}
|
|
public function trafficsource($dp,$start_at,$end_at){
|
|
public function trafficsource($dp,$start_at,$end_at){
|
|
$analytics=self::getInstance($dp);
|
|
$analytics=self::getInstance($dp);
|
|
@@ -605,12 +721,11 @@ class GA{
|
|
// 'campaign'=>'ga:campaign'
|
|
// 'campaign'=>'ga:campaign'
|
|
];
|
|
];
|
|
$metricArr=[
|
|
$metricArr=[
|
|
- 'transactions'=>"ga:transactions",
|
|
|
|
- 'transactionRevenue'=>"ga:transactionRevenue",
|
|
|
|
- 'itemQuantity'=>"ga:itemQuantity",
|
|
|
|
- 'adClicks'=>"ga:adClicks",//点击次数
|
|
|
|
- 'adCost'=>"ga:adCost",//成本
|
|
|
|
- 'CPC'=>"ga:CPC",//每次点击费用
|
|
|
|
|
|
+ '销量'=>"ga:itemQuantity",
|
|
|
|
+ '订单量'=>"ga:transactions",
|
|
|
|
+ '订单金额'=>"ga:transactionRevenue",
|
|
|
|
+ '广告点击次数'=>"ga:adClicks",//点击次数
|
|
|
|
+ '广告花费'=>"ga:adCost",//成本
|
|
'CTR'=>"ga:CTR",//点击率
|
|
'CTR'=>"ga:CTR",//点击率
|
|
'ROAS'=>"ga:ROAS",//回报率
|
|
'ROAS'=>"ga:ROAS",//回报率
|
|
];
|
|
];
|