Фильтры

Если отчёт содержит фильтры , и коннектор сообщества возвращает нефильтрованные данные для всех запрошенных полей, то Looker Studio применит фильтры к ответу коннектора. Однако фильтры можно применять на уровне коннектора сообщества, что в некоторых случаях может значительно повысить производительность. Информация о фильтрах передаётся в объекте запроса getData() , и коннектор может использовать эту информацию для фильтрации данных перед отправкой их обратно в Looker Studio.

Например, при подключении к базе данных SQL применение фильтров непосредственно в предложении WHERE (B3 на диаграмме ниже) может значительно уменьшить количество строк, возвращаемых в Looker Studio. Это, в свою очередь, ограничивает объем данных, которые необходимо обработать и отправить в Looker Studio (B5).

Filter flowchart

Правила применения фильтров

  1. Примените все фильтры или ни один из них. См. раздел «Неподдерживаемые фильтры».
  2. Не включайте поля forFilterOnly в ответ.
  3. AND вместе каждая запись в массиве request.dimensionsFilters .

    Например, для следующего фильтра коннектор должен включать только значения, в которых countryUSA , а sourceSocial .

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }],
        [{
          "fieldName": "source",
          "values": ["Social"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    
  4. OR объединить каждый подмассив в массиве request.dimensionsFilters .

    Например, для следующего фильтра коннектор должен включать только значения, в которых countryUSA ИЛИ countryCanada .

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["Canada"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }, {
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    

Пример

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

Пример фильтра

  1. Пользователь отчета настроил два фильтра:

    1. country находится IN_LIST Canada, USA
    2. source находится IN_LIST Social, Organic
  2. Пользователь отчета настроил компонент диаграммы с указанием source измерения и метрики sessions .

  3. getData() выполняется программой Looker Studio со следующим объектом запроса:

    {
      "fields": [
        {"name": "source"},
        {"name": "sessions"},
        {"name": "country", "forFilterOnly": true}
      ],
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["Canada", "USA"],
          "type": "INCLUDE",
          "operator": "IN_LIST"
        }],
        [{
          "fieldName": "source",
          "values": ["Social", "Organic"],
          "type": "INCLUDE",
          "operator": "IN_LIST"
        }]
      ]
    }
    
  4. Коннектор отвечает отфильтрованными данными.

    В примере запроса верните source и sessions , где country"Canada" или "USA" , а source"Social" или "Organic" . Установите filtersApplied в true , поскольку все фильтры были успешно применены.

Исходные данные

источник сессии страна
Социальный 60 США
Социальный 50 Канада
Социальный 40 Великобритания
Органический 90 США
Органический 80 Канада
Органический 70 Великобритания
Газета 30 США
Газета 20 Канада
Газета 10 Великобритания

Отфильтрованные данные

источник сессии
Социальный 60
Социальный 50
Органический 90
Органический 80

getData() response

{
  "schema": [
    {"name": "source",   "dataType": "STRING"},
    {"name": "sessions", "dataType": "NUMBER"},
  ],
  "rows": [
    {"values": ["Social", 60]},
    {"values": ["Social", 50]},
    {"values": ["Organic", 90]},
    {"values": ["Organic", 80]}
  ],
  "filtersApplied": true
}

Неподдерживаемые фильтры

Если коннектор не может применить все фильтры в запросе, фильтрация выполняться не должна. Верните все запрошенные поля (включая поля forFilterOnly ) и установите ключ filtersApplied в вашем ответе в значение false .

Пример:

{
  "schema": [
    {"name": "source",   "dataType": "STRING"},
    {"name": "sessions", "dataType": "NUMBER"},
    {"name": "country",  "dataType": "STRING"}
  ],
  "rows": [
    {"values": ["Social", 60, "USA"]},
    {"values": ["Social", 50, "Canada"]},
    {"values": ["Social", 40, "UK"]},
    {"values": ["Organic", 90, "USA"]},
    {"values": ["Organic", 80, "Canada"]},
    {"values": ["Organic", 70, "UK"]},
    {"values": ["Newspaper", 30, "USA"]},
    {"values": ["Newspaper", 20, "Canada"]},
    {"values": ["Newspaper", 10, "UK"]},
  ],
  "filtersApplied": false
}