Bộ lọc

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).

Sơ đồ quy trình lọc

Quy tắc áp dụng bộ lọc

  1. Á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ợ
  2. Không đưa các trường forFilterOnly vào câu trả lời.
  3. AND cùng với mỗi mục trong mảng request.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ó countryUSA sourceSocial.

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }],
        [{
          "fieldName": "source",
          "values": ["Social"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    
  4. OR cùng với mỗi mảng con trong mảng request.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ó countryUSA HOẶC countryCanada.

    {
      "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.

Bộ lọc mẫu

  1. Người dùng báo cáo đã thiết lập 2 bộ lọc:

    1. countryIN_LIST của Canada, USA
    2. sourceIN_LIST của Social, Organic
  2. 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 source và chỉ số sessions

  3. getData() đượ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"
        }]
      ]
    }
    
  4. 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ề sourcesessions, trong đó country"Canada" hoặc "USA" source"Social" hoặc "Organic". Đặt filtersApplied thành true vì 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
}