如果报告包含过滤条件,但社区连接器返回未过滤的数据 请求的所有字段,Looker Studio 会将过滤条件应用于连接器 响应。不过,您可以在社区连接器级别应用过滤器,这在某些情况下可以显著提高性能。过滤条件信息现为 getData() 请求对象中传递,且连接器可以使用此 信息来过滤数据,然后再将其发送回 Looker Studio。
例如,如果您要连接到 SQL 数据库,
直接放在 WHERE
子句中(下图中的 B3)可能会大幅降低
返回 Looker Studio 的行数。这反过来又限制了
数据,必须进行处理并发送到 Looker Studio (B5)。
应用过滤器的规则
- 要么应用全部过滤器,要么一个也不应用。请参阅不支持的过滤器
- 请勿在响应中包含
forFilterOnly
字段。 将
request.dimensionsFilters
数组中的每个条目通过AND
运算结合到一起。例如,对于下面的过滤器,连接器应仅包含
country
为USA
且source
为Social
的值。{ "dimensionsFilters": [ [{ "fieldName": "country", "values": ["USA"], "type": "INCLUDE", "operator": "EQUALS" }], [{ "fieldName": "source", "values": ["Social"], "type": "INCLUDE", "operator": "EQUALS" }] ] }
将
request.dimensionsFilters
数组中的每个子数组通过OR
运算结合到一起。例如,对于下面的过滤器,连接器应仅包含
country
为USA
或country
为Canada
的值。{ "dimensionsFilters": [ [{ "fieldName": "country", "values": ["Canada"], "type": "INCLUDE", "operator": "EQUALS" }, { "fieldName": "country", "values": ["USA"], "type": "INCLUDE", "operator": "EQUALS" }] ] }
示例
以下示例演示了从报告用户定义过滤器到社区连接器返回过滤后的数据的端到端流程。
报告用户已配置两个过滤器:
country
是Canada, USA
的IN_LIST
source
是Social, Organic
的IN_LIST
报告用户已使用“
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
,因为所有过滤器都可以 已成功应用。
原始数据
来源 | 会话数 | 国家/地区 |
---|---|---|
Social | 60 | USA |
Social | 50 | Canada |
Social | 40 | UK |
Organic | 90 | USA |
Organic | 80 | Canada |
Organic | 70 | UK |
Newspaper | 30 | USA |
Newspaper | 20 | Canada |
Newspaper | 10 | UK |
过滤后的数据
来源 | 会话数 |
---|---|
Social | 60 |
Social | 50 |
Organic | 90 |
Organic | 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
}