2016-07-12 3 views
2

Я новичок в написании запросов к аналитике Google и заинтересован в добавлении фильтра к приведенному ниже методу. В частности, чтобы отфильтровать местоположения, но я все время получаю сообщение об ошибке, если в поле оператора есть что-то другое, кроме «EXACT». для sizeFilterClauses.Применение фильтров к API Google Analytics в python

есть ли список действительных операторов для этого поля? «NOT_ EXACT», «NOT_EQUALS», а также символы! =, <>, =/=. они, кажется, ошибаются. конкретная ошибка: 400 when requesting https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json returned "Invalid value at 'report_requests[0].dimension_filter_clauses[0].filters[0].operator' (TYPE_ENUM), "NOT_EQUAL"">, поэтому кажется, что должно быть перечисление допустимых операторов, я просто не могу его найти.

def get_report(analytics): 
'''Use the Analytics Service Object to query the Analytics Reporting API V4.''' 
return analytics.reports().batchGet(
    body={ 
    'reportRequests': [ 
    { 
     'viewId': VIEW_ID, 
     'dateRanges': [{'startDate': '2016-07-01', 'endDate': 'today'}], 
     'metrics': [{'expression': 'ga:pageviews'}], 
     'dimensions': [{'name': 'ga:country'}, {'name': 'ga:city'}], 
     'metricFilterClauses': [{ 
     'filters': [{ 
      "metricName": "ga:pageviews", 
      "operator": "GREATER_THAN", 
      "comparisonValue": "1000" 
     }] 
     }], 
     'dimensionFilterClauses': [ 
     { 
      'filters': [ 
      { 
       "dimensionName": "ga:country", 
       "operator": "EXACT", 
       "expressions": ["United States"] 
      } 
      ] 
     } 
     ] 
    }] 
    } 
).execute() 

ответ

0

Кажется, согласно здесь: https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet#dimensionfilterclause

... что приводит к здесь: https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet#filterlogicaloperator

Это должно быть либо AND или OR. Не знаю, почему проходит EXACT - похоже, что-то официально не было в документах API. Если это не указано, оно рассматривается как «OR».