Если отчет содержит фильтры и соединитель сообщества возвращает нефильтрованные данные для всех запрошенных полей, Looker Studio применит фильтры к ответу соединителя. Однако фильтры можно применять на уровне соединителя сообщества, что в некоторых случаях может значительно повысить производительность. Информация о фильтре передается в объекте запроса getData() , и соединитель может использовать эту информацию для фильтрации данных перед отправкой их обратно в Looker Studio.
Например, если вы подключаетесь к базе данных SQL, применение фильтров непосредственно в предложении WHERE
(B3 на диаграмме ниже) может значительно уменьшить количество строк, возвращаемых в Looker Studio. Это, в свою очередь, ограничивает объем данных, которые необходимо обработать и отправить в Looker Studio (B5).
Правила применения фильтров
- Примените все фильтры или ни один из них. См. Неподдерживаемые фильтры.
- Не включайте в ответ поля
forFilterOnly
. AND
вместе каждую запись в массивеrequest.dimensionsFilters
.Например, для следующего фильтра соединитель должен включать только значения, в которых указана
country
USA
Иsource
Social
.{ "dimensionsFilters": [ [{ "fieldName": "country", "values": ["USA"], "type": "INCLUDE", "operator": "EQUALS" }], [{ "fieldName": "source", "values": ["Social"], "type": "INCLUDE", "operator": "EQUALS" }] ] }
OR
вместе каждый подмассив в массивеrequest.dimensionsFilters
.Например, для следующего фильтра соединитель должен включать только значения, в которых указана
country
USA
ИЛИcountry
Canada
.{ "dimensionsFilters": [ [{ "fieldName": "country", "values": ["Canada"], "type": "INCLUDE", "operator": "EQUALS" }, { "fieldName": "country", "values": ["USA"], "type": "INCLUDE", "operator": "EQUALS" }] ] }
Пример
В следующем примере показан сквозной поток от пользователя отчета, определяющего фильтры, до соединителя сообщества, возвращающего отфильтрованные данные.
Пользователь отчета настроил два фильтра:
-
country
входитIN_LIST
Canada, USA
-
source
:IN_LIST
Social, Organic
-
Пользователь отчета настроил компонент диаграммы с
source
измерением и показателемsessions
.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" }] ] }
Коннектор отвечает отфильтрованными данными.
Для примера запроса верните
source
иsessions
, гдеcountry
—"Canada"
или"USA"
, Аsource
—"Social"
или"Organic"
. УстановитеfiltersApplied
значениеtrue
поскольку все фильтры можно было успешно применить.
Исходные данные
источник | сессии | страна |
---|---|---|
Социальные | 60 | США |
Социальные | 50 | Канада |
Социальные | 40 | Великобритания |
Органический | 90 | США |
Органический | 80 | Канада |
Органический | 70 | Великобритания |
Газета | 30 | США |
Газета | 20 | Канада |
Газета | 10 | Великобритания |
Отфильтрованные данные
источник | сессии |
---|---|
Социальные | 60 |
Социальные | 50 |
Органический | 90 |
Органический | 80 |
getData()
ответ
{
"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
}