Как получить 50 лучших сеансов из Google Analytics Reporting API v4 Python

У меня есть сценарий api v4 для аналитики отчетов на Python, который возвращает мне сеансы для определенных целевых страниц и город, из которого они были получены.

Есть ли способ ограничить это только 50 верхними местоположениями городов на целевую страницу для сеансов, чтобы мне не возвращались города, которые приземляются на них, например, для 1 сеанса.

Вот базовый код для запроса аналитики:

api_client = google_build(serviceName=api_name, version=api_version, 
http=authorized)
for i in developments:
sample_request = {
      'viewId': '6690350',
      'pageSize': 100000,
      'dateRanges': {
          'startDate': datetime.strftime(datetime.now() - timedelta(days = 30),'%Y-%m-%d'),
          'endDate': datetime.strftime(datetime.now(),'%Y-%m-%d')

      },
      'metrics': [{'expression': 'ga:sessions'}],
      'orderBys':
        [
            {'fieldName': 'ga:pagePath', 'sortOrder': 'ASCENDING'},
            {'fieldName': 'ga:sessions', 'sortOrder': 'DESCENDING'}
        ],
      'dimensions': [{'name': 'ga:pagePath'},{'name': 'ga:city'},{'name': 'ga:latitude'},{'name': 'ga:longitude'}],
      'dimensionFilterClauses' : [
        {

вы пробовали добавить фильтр? developers.google.com/analytics/devguides/reporting/core/v4/‌…

DaImTo 21.08.2018 12:40

Я думал об этом, но не совсем уверен, как поступить в моей ситуации.

Yarry T 21.08.2018 12:41
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
451
1

Ответы 1

РЕДАКТИРОВАТЬ - Получить лучшие города x для конкретной целевой страницы невозможно с помощью одного запроса, вам придется либо использовать функцию группировки контента, либо обрабатывать более широкий ответ для достижения этой цели.

Оригинальный ответ - Добавление в ваш код может быть неполным, посмотрите только добавленный раздел metricFilterClauses

Вы можете получить 50 лучших результатов, используя разбиение на страницы и используя PageSize для ограничения количества получаемых строк. Просто убедитесь, что вы используете ordering для сортировки, прежде чем применять разбиение на страницы.

Вам нужно будет использовать batchGet request для выполнения этого - ссылка на официальное руководство по batchquest

api_client = google_build(serviceName=api_name, version=api_version, 
http=authorized)
for i in developments:
sample_request = {
      'viewId': '6690350',
      'pageSize': 100000,
      'dateRanges': {
          'startDate': datetime.strftime(datetime.now() - timedelta(days = 30),'%Y-%m-%d'),
          'endDate': datetime.strftime(datetime.now(),'%Y-%m-%d')

      },
      'metrics': [{'expression': 'ga:sessions'}],
       #add this metric filter to filter out with session more than 50 
      'metricFilterClauses': [{
          "filters": [{
              "metricName": "ga:sessions",
              "operator": "GREATER_THAN",
              "comparisonValue": "50"
          }]
      }]         
      'orderBys':
        [
            {'fieldName': 'ga:pagePath', 'sortOrder': 'ASCENDING'},
            {'fieldName': 'ga:sessions', 'sortOrder': 'DESCENDING'}
        ],
      'dimensions': [{'name': 'ga:pagePath'},{'name': 'ga:city'},{'name': 'ga:latitude'},{'name': 'ga:longitude'}]
       #top 50 results  
      'pageSize': 50

Вы можете использовать MetricFilterClauses, чтобы отфильтровать конкретную метрику, которая вам нужна. Вы можете использовать доступны разные операторы для фильтрации на основе условий, которые вы хотите использовать.

Привет, это не то, на что я надеялся. Здесь показаны города, в которых было более 50 сеансов. Но я пытаюсь экспортировать 50 лучших городов, которые предоставили сеансы, на целевые страницы.

Yarry T 21.08.2018 12:57

отредактировал ответ для PageSize, вы можете ограничить количество строк до 50 с заказом, чтобы получить его

AnkDasCo 21.08.2018 13:04

Проблема с редактированием заключается в том, что он просто отбрасывает 50 результатов, но я хочу получить 50 лучших сеансов для КАЖДОЙ целевой страницы. К сожалению, это изменение ограничивает его до 50 лучших сеансов в целом, которые останавливаются только на первой целевой странице.

Yarry T 21.08.2018 13:12

Я думаю, что это невозможно в одном запросе, это может быть достигнуто путем группировки контента или выполнения нескольких запросов или обработки общего ответа.

AnkDasCo 21.08.2018 13:42

Другие вопросы по теме