Bộ lọc

Nếu báo cáo chứa bộ lọc và trình kết nối cộng đồng trả về dữ liệu chưa được lọc đối với tất cả các trường được yêu cầu, sau đó Looker Studio sẽ áp dụng bộ lọc cho trình kết nối của bạn. Tuy nhiên, bộ lọc có thể được áp dụng ở cấp trình kết nối cộng đồng, 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 là được truyền vào đối tượng yêu cầu getData() và trình kết nối có thể sử dụng đối tượng này để lọc dữ liệu trước khi gửi lại dữ liệu đó về 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 các bộ lọc ngay 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ề Looker Studio. Sau đó, việc này sẽ giới hạn số lượng dữ liệu cần được xử lý và gửi đến Looker Studio (B5).

Lưu đồ bộ lọc

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

  1. Áp dụng tất cả bộ lọc hoặc không bộ lọc nào. Xem Các 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 kết hợp từng mục nhập trong mảng request.dimensionsFilters.

    Ví dụ: đối với bộ lọc sau đây, trình kết nối chỉ 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 với nhau từng mảng con trong mảng request.dimensionsFilters.

    Ví dụ: đối với bộ lọc sau đây, trình kết nối chỉ 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 minh hoạ quy trình toàn diện từ người dùng báo cáo xác định các bộ lọc cho trình kết nối cộng đồng trả về dữ liệu đã lọc.

Bộ lọc ví dụ

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

    1. countryIN_LIST/Canada, USA
    2. sourceIN_LIST/Social, Organic
  2. Người dùng báo cáo đã định cấu hình một thành phần biểu đồ bằng phương diện sourcesessions chỉ số

  3. getData() được Looker Studio thực thi với đố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 sẽ phản hồi bằng dữ liệu đã lọc.

    Đối với yêu cầu mẫu, hãy trả về sourcesessions, trong đó country"Canada" hoặc "USA" source"Social" hoặc "Organic". Đặt filtersApplied thành true vì tất cả bộ lọc đều có thể đã áp dụng thành công.

Dữ liệu gốc

nguồn 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 đã lọc

nguồn 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
}

Các 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 lọc thực hiện. Trả về tất cả các trường được yêu cầu (bao gồm cả forFilterOnly trường) 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
}