필터

보고서에 필터가 포함되어 있고 커뮤니티 커넥터가 요청된 모든 필드에 대해 필터링되지 않은 데이터를 반환하는 경우 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이거나 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. 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"
        }]
      ]
    }
    
  4. 커넥터가 필터링된 데이터로 응답합니다.

    예시 요청의 경우 country"Canada" 또는 "USA"이고 AND source"Social" 또는 "Organic"sourcesessions을 반환합니다. 모든 필터를 성공적으로 적용할 수 있으므로 filtersAppliedtrue로 설정

원본 데이터

source sessions 국가
소셜 60 미국
소셜 50 캐나다
소셜 40 영국
자연 검색 90 미국
자연 검색 80 캐나다
자연 검색 70 영국
신문 30 미국
신문 20 캐나다
신문 10 영국

필터링된 데이터

source 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
}