Filtros

Se um relatório tiver filtros e um conector da comunidade retornar dados não filtrados para todos os campos solicitados, o Looker Studio vai aplicar filtros à resposta do conector. No entanto, os filtros podem ser aplicados no nível do conector, melhorando consideravelmente o desempenho em alguns casos. As informações do filtro são transmitidas no objeto de solicitação getData(), e o conector pode usar essas informações para filtrar os dados antes de enviá-los de volta ao Looker Studio.

Por exemplo, se você estiver se conectando a um banco de dados SQL, a aplicação dos filtros diretamente na cláusula WHERE (B3 no diagrama abaixo) pode diminuir drasticamente o número de linhas retornadas ao Looker Studio. Isso, por sua vez, limita a quantidade de dados que precisam ser processados e enviados ao Looker Studio (B5).

Fluxograma dos filtros

Regras de aplicação de filtros

  1. Aplique todos os filtros ou nenhum. Consulte a seção Filtros não compatíveis.
  2. Não inclua os campos forFilterOnly na resposta.
  3. AND una cada entrada na matriz request.dimensionsFilters.

    Por exemplo, no filtro a seguir, o conector só pode incluir valores que tenham um country de USA E um source de Social.

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }],
        [{
          "fieldName": "source",
          "values": ["Social"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    
  4. Use a fórmula OR para unir cada submatriz na matriz request.dimensionsFilters.

    Por exemplo, no filtro a seguir, o conector só pode incluir valores em que country seja USA OU country seja Canada.

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

Exemplo

O exemplo a seguir mostra o fluxo completo, desde o usuário do relatório definindo os filtros até o conector da comunidade retornando dados filtrados.

Filtro de exemplo

  1. O usuário do relatório configurou dois filtros:

    1. country está em IN_LIST como Canada, USA
    2. source está em IN_LIST como Social, Organic
  2. O usuário do relatório configurou um componente de gráfico com a dimensão source e a métrica sessions.

  3. getData() é executado pelo Looker Studio com o seguinte objeto de solicitação:

    {
      "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. O conector responde com dados filtrados.

    No exemplo de solicitação, retorne source e sessions em que country é "Canada" ou "USA" E source é "Social" ou "Organic". Defina filtersApplied como true, já que todos os filtros foram aplicados.

Dados originais

Fonte Sessões país
Mídias sociais 60 EUA
Mídias sociais 50 Canadá
Mídias sociais 40 UK
Organic 90 EUA
Organic 80 Canadá
Organic 70 UK
Newspaper 30 EUA
Newspaper 20 Canadá
Newspaper 10 UK

Dados filtrados

Fonte Sessões
Mídias sociais 60
Mídias sociais 50
Organic 90
Organic 80

Resposta do 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
}

Filtros não compatíveis

Se o conector não puder aplicar todos os filtros na solicitação, a filtragem não será realizada. Retorne todos os campos solicitados (incluindo os campos forFilterOnly) e defina a chave filtersApplied na sua resposta como false.

Exemplos

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