篩選器

如果報表包含篩選器,且社群連結器針對所有要求的欄位傳回未經過濾的資料,Looker Studio 就會將篩選器套用至連結器回應。不過,您可以在社群連結器層級套用篩選器,有時可大幅提升效能。篩選器資訊會傳遞至 getData() 要求物件,連接器可以使用這項資訊篩選資料,再傳回 Looker Studio。

舉例來說,如果您要連線至 SQL 資料庫,直接在 WHERE 子句中套用篩選條件 (下圖中的 B3),就能大幅減少傳回 Looker Studio 的資料列數量。進而限制必須處理並傳送至 Looker Studio 的資料量 (B5)。

篩選流程圖

套用篩選器的規則

  1. 您可以套用所有篩選器,或完全不套用。請參閱「不支援的篩選器
  2. 請勿在回應中加入 forFilterOnly 欄位。
  3. AND 陣列中的每個項目。request.dimensionsFilters

    舉例來說,對於下列篩選器,連接器應只包含 countryUSA AND sourceSocial 的值。

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }],
        [{
          "fieldName": "source",
          "values": ["Social"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    
  4. request.dimensionsFilters 陣列中的每個子陣列。OR

    舉例來說,如果篩選器如下所示,連接器就只應納入 countryUSA OR countryCanada 的值。

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["Canada"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }, {
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    

範例

以下範例說明完整流程,從報表使用者定義篩選條件,到社群連結器傳回篩選後的資料。

範例篩選器

  1. 報表使用者已設定兩個篩選器:

    1. countryCanada, USAIN_LIST
    2. sourceSocial, OrganicIN_LIST
  2. 報表使用者已使用 source 維度和 sessions 指標設定圖表元件

  3. Looker Studio 會執行 getData(),並使用下列要求物件:

    {
      "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. 連接器會回應篩選後的資料。

    以範例要求來說,請傳回 sourcesessions,其中 country"Canada""USA" AND source"Social""Organic"。將 filtersApplied 設為 true,因為所有篩選器都已成功套用。

原始資料

來源 sessions 國家/地區
社群媒體 60 USA
社群媒體 50 加拿大
社群媒體 40 英國
有機 90 USA
有機 80 加拿大
有機 70 英國
報紙 30 USA
報紙 20 加拿大
報紙 10 英國

經過篩選的資料

來源 sessions
社群媒體 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
}