Nếu một báo cáo chứa bộ lọc và một trình kết nối cộng đồng trả về dữ liệu chưa được lọc cho tất cả các trường được yêu cầu, thì Looker Studio sẽ áp dụng bộ lọc cho phản hồi của trình kết nối. Tuy nhiên, bạn có thể áp dụng bộ lọc ở cấp trình kết nối cộng đồng, điều này có thể cải thiện đáng kể hiệu suất trong một số trường hợp. Thông tin bộ lọc được truyền trong đối tượng yêu cầu getData() và trình kết nối có thể sử dụng thông tin này để lọc dữ liệu trước khi gửi lại cho Looker Studio.
Ví dụ: nếu bạn đang kết nối với cơ sở dữ liệu SQL, việc áp dụng bộ lọc trực tiếp trong mệnh đề WHERE (B3 trong sơ đồ bên dưới) có thể giảm đáng kể số lượng hàng được trả về cho Looker Studio. Điều này giúp hạn chế lượng dữ liệu phải được xử lý và gửi đến Looker Studio (B5).
Quy tắc áp dụng bộ lọc
- Áp dụng tất cả hoặc không có bộ lọc nào. Xem Bộ lọc không được hỗ trợ
- Không đưa các trường
forFilterOnlyvào câu trả lời. ANDcùng với mỗi mục trong mảngrequest.dimensionsFilters.Ví dụ: đối với bộ lọc sau, trình kết nối chỉ nên bao gồm các giá trị có
countrylàUSAVÀsourcelàSocial.{ "dimensionsFilters": [ [{ "fieldName": "country", "values": ["USA"], "type": "INCLUDE", "operator": "EQUALS" }], [{ "fieldName": "source", "values": ["Social"], "type": "INCLUDE", "operator": "EQUALS" }] ] }ORcùng với mỗi mảng con trong mảngrequest.dimensionsFilters.Ví dụ: đối với bộ lọc sau, trình kết nối chỉ nên bao gồm các giá trị có
countrylàUSAHOẶCcountrylàCanada.{ "dimensionsFilters": [ [{ "fieldName": "country", "values": ["Canada"], "type": "INCLUDE", "operator": "EQUALS" }, { "fieldName": "country", "values": ["USA"], "type": "INCLUDE", "operator": "EQUALS" }] ] }
Ví dụ:
Ví dụ sau đây minh hoạ một quy trình toàn diện từ khi người dùng báo cáo xác định bộ lọc cho đến khi trình kết nối cộng đồng trả về dữ liệu đã lọc.
Người dùng báo cáo đã thiết lập 2 bộ lọc:
countrylàIN_LISTcủaCanada, USAsourcelàIN_LISTcủaSocial, Organic
Người dùng báo cáo đã định cấu hình một thành phần biểu đồ có phương diện
sourcevà chỉ sốsessionsgetData()được Looker Studio thực thi bằng đối tượng yêu cầu sau:{ "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" }] ] }Trình kết nối phản hồi bằng dữ liệu đã lọc.
Đối với yêu cầu ví dụ, hãy trả về
sourcevàsessions, trong đócountrylà"Canada"hoặc"USA"VÀsourcelà"Social"hoặc"Organic". ĐặtfiltersAppliedthànhtruevì bạn có thể áp dụng thành công tất cả các bộ lọc.
Dữ liệu gốc
| source | phiên | country |
|---|---|---|
| Xã hội | 60 | USA |
| Xã hội | 50 | Canada |
| Xã hội | 40 | Vương quốc Anh |
| Thực phẩm hữu cơ | 90 | USA |
| Thực phẩm hữu cơ | 80 | Canada |
| Thực phẩm hữu cơ | 70 | Vương quốc Anh |
| Báo | 30 | USA |
| Báo | 20 | Canada |
| Báo | 10 | Vương quốc Anh |
Dữ liệu được lọc
| source | phiên |
|---|---|
| Xã hội | 60 |
| Xã hội | 50 |
| Thực phẩm hữu cơ | 90 |
| Thực phẩm hữu cơ | 80 |
getData() câu trả lời
{
"schema": [
{"name": "source", "dataType": "STRING"},
{"name": "sessions", "dataType": "NUMBER"},
],
"rows": [
{"values": ["Social", 60]},
{"values": ["Social", 50]},
{"values": ["Organic", 90]},
{"values": ["Organic", 80]}
],
"filtersApplied": true
}
Bộ lọc không được hỗ trợ
Nếu trình kết nối không thể áp dụng tất cả các bộ lọc trong yêu cầu, thì không nên thực hiện lọc. Trả về tất cả các trường được yêu cầu (bao gồm cả các trường forFilterOnly) và đặt khoá filtersApplied trong phản hồi của bạn thành false.
Ví dụ:
{
"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
}