Я использую пакет google-api-python-client
для извлечения данных для API многоканальной воронки GA (сокращенно MCF) с использованием метода mcf.get
.Я пытаюсь применить фильтр, но он не работает так, как я хочу.
Вот некоторые переменные для извлечения, которые я пытаюсь сделать:
mcf_dimensions = ["mcf:conversionDate", "mcf:sourceMediumPath", "mcf:campaignPath"]
mcf_filters = ["mcf:conversionGoalNumber==016;mcf:conversionType==Goal"]
mcf_metrics = ["mcf:totalConversions"]
mcf_row_limit = 5000
mcf_sort = ["-mcf:conversionDate"]
mcf_view_id = "ga:117850295"
Я вызываю mcf.get
метод, подобный следующему:
data = mcf.get(ids=mcf_view_id, start_date=r, end_date=r, metrics=",".join(mcf_metrics) if len(mcf_metrics) > 0 else None, sort=",".join(mcf_sort) if len(mcf_sort) > 0 else None, dimensions=",".join(mcf_dimensions) if len(mcf_dimensions) > 0 else None, filters=",".join(mcf_filters) if len(mcf_filters) > 0 else None, max_results=mcf_row_limit, samplingLevel="HIGHER_PRECISION", start_index=page_index).execute()
r
- текущая дата, а page_index
- смещение нумерации страниц (увеличивается на mcf_row_limit
на каждой итерации)
У меня проблема в том, чтоЯ не получаю строки в результате API.Если mcf_filters
объявлено как ["mcf:conversionGoalNumber==016", "mcf:conversionType==Goal"]
, это работает, но это дает мне слишком много результатов (потому что фильтр, по сути, говорит: «когда mcf: translationGoalNumber равен 016 ИЛИ mcf: translationType равно Goal»), и мне нужно выполнить операцию ANDмежду двумя фильтрами.
Я пытался указать mcf_filters
, как вы видите в начале моего поста (в документации API написано, что фильтр AND выражается точкой с запятой), но он не работает.
Как я могу выполнить операции И между фильтрами, используя метод mcf.get
?