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 ao conector. resposta. 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 transmitido no objeto de solicitação getData(), e o conector poderá usar esse 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 do 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, para o filtro a seguir, o conector deve incluir apenas valores com 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, para o filtro a seguir, o conector deve incluir apenas valores com um country de USA OU um country de 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 sessions métrica

  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.

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

Dados originais

Fonte Sessões País
Social 60 USA
Social 50 Canada
Social 40 UK
Organic 90 USA
Organic 80 Canada
Organic 70 UK
Newspaper 30 USA
Newspaper 20 Canada
Newspaper 10 UK

Dados filtrados

Fonte Sessões
Social 60
Social 50
Organic 90
Organic 80

getData() resposta

{
  "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 o forFilterOnly) campos) e defina a chave filtersApplied na sua resposta como false.

Exemplo:

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