[英]how to implement != in Google Analytics API using PHP?
我正在使用 Google Analytics API 生成 Google Analytics 報告。
我正在實施過濾器,在過濾器中,我想確保,
ga:contentGroup2!=Answered;ga:pageviews!=0
這是我的代碼,
$processing[1] = str_replace('filters=', '' , $e1_param_url[$i]); //, here $processing[1] will be ga:contentGroup2!=Answered;ga:pageviews!=0
$e1_filters = explode(';' , $processing[1]);
for($k_filters =0; $k_filters < count($e1_filters); $k_filters++){
$operator = '';
for($c_ops =0; $c_ops < count($operators); $c_ops++){
$operator = strpos($e1_filters[$k_filters],$operators[$c_ops]) != false ? $operators[$c_ops] : '';
if($operator != '') break;
}
$the_filter = explode($operator , $e1_filters[$k_filters]);
if(in_array($the_filter[0],$metrics)){
$metricFilter = new Google_Service_AnalyticsReporting_MetricFilter();
$metricFilter->setMetricName($the_filter[0]);
if(strpos('!',$operator)!= false)
$metricFilter->setNot(true);
$metricFilter->setOperator($this->getOperator($operator));
$metricFilter->setComparisonValue($the_filter[1]);
array_push($metricFilters , $metricFilter);
}else{
$dimensionFilter = new Google_Service_AnalyticsReporting_DimensionFilter();
$dimensionFilter->setDimensionName($the_filter[0]);
if(strpos('!',$operator)!= false)
$dimensionFilter->setNot(true);
$dimensionFilter->setOperator($this->getOperator($operator));
$dimensionFilter->setExpressions(array($the_filter[1]));
array_push($dimensionsFilters , $dimensionFilter);
}
}
這是我的 $this->getOperator 函數
// get this list from: https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet#Operator
function getOperator($operator){
switch($operator){
case '==':
return 'EXACT';
case '!=':
return 'EXACT';
case '>=':
return 'NUMERIC_GREATER_THAN';
case '<=':
return 'NUMERIC_LESS_THAN';
default:
return null;
}
}
所以,在 != 的情況下,我應該返回什么?
根據以下Google 指標過濾器文檔,您的指標過濾器運算符似乎不正確。 你的getOperator()
應該看起來像這樣:
function getOperator($operator){
switch($operator){
case '==':
return 'EQUAL';
case '!=':
return 'EQUAL';
case '>=':
return 'GREATER_THAN';
case '<=':
return 'LESS_THAN';
default:
return null;
}
}
對於維度過濾器,由於您的示例需要進行字符串比較,因此您似乎只想要==
或!=
並且您可以省略NUMERIC_GREATER_THAN
和NUMERIC_LESS_THAN
。 因此,您將始終提供EXACT
作為Dimension Filter Operator ,並以與當前相同的方式處理setNot()
值。
所以改變這行代碼:
$dimensionFilter->setOperator($this->getOperator($operator));
改為:
$dimensionFilter->setOperator('EXACT');
如果使用Google Analytics ReportingV4,您可以直接通過
$filter = "ga:contentGroup2!=Answered;ga:pageviews!=0";
$ga_report_request->setFiltersExpression($filter);
在此處檢查報告請求對象
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.