Filtros

Si un informe contiene filtros y un conector de la comunidad muestra datos sin filtrar para todos los campos solicitados, Looker Studio aplicará filtros a la respuesta del conector. Sin embargo, los filtros se pueden aplicar a nivel del conector de la comunidad, lo que puede mejorar significativamente el rendimiento en algunos casos. La información de filtro se pasa en el objeto de solicitud getData(), y el conector puede usar esta información para filtrar los datos antes de enviarlos de vuelta a Looker Studio.

Por ejemplo, si te conectas a una base de datos SQL, aplicar los filtros directamente en la cláusula WHERE (B3 en el siguiente diagrama) puede disminuir de forma drástica la cantidad de filas que se muestran a Looker Studio. Esto, a su vez, limita la cantidad de datos que se deben procesar y enviar a Looker Studio (B5).

Diagrama de flujo del filtro

Reglas para aplicar filtros

  1. Aplicar todos los filtros o ninguno Consulta Filtros no compatibles
  2. No incluyas campos forFilterOnly en la respuesta.
  3. AND junto a cada entrada en el array request.dimensionsFilters.

    Por ejemplo, para el siguiente filtro, el conector solo debe incluir valores que tengan un country de USA Y un source de Social.

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }],
        [{
          "fieldName": "source",
          "values": ["Social"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    
  4. OR junto a cada subarreglo del array request.dimensionsFilters.

    Por ejemplo, para el siguiente filtro, el conector solo debe incluir valores que tengan un country de USA O un country de Canada.

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

Ejemplo

En el siguiente ejemplo, se muestra un flujo de extremo a extremo desde el usuario del informe que define los filtros hasta el conector de la comunidad que muestra los datos filtrados.

Filtro de ejemplo

  1. El usuario del informe configuró dos filtros:

    1. country es IN_LIST de Canada, USA
    2. source es IN_LIST de Social, Organic
  2. El usuario del informe configuró un componente del gráfico con la dimensión source y la métrica sessions.

  3. Looker Studio ejecuta getData() con el siguiente objeto de solicitud:

    {
      "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. El conector responde con datos filtrados.

    Para la solicitud de ejemplo, muestra source y sessions, donde country es "Canada" o "USA" Y source es "Social" o "Organic". Establece filtersApplied como true, ya que todos los filtros se pudieron aplicar de forma correcta.

Datos originales

source sesiones country
Social 60 EE.UU.
Social 50 Canadá
Social 40 UK
Comida orgánica 90 EE.UU.
Comida orgánica 80 Canadá
Comida orgánica 70 UK
Periódico 30 EE.UU.
Periódico 20 Canadá
Periódico 10 UK

Datos filtrados

source sesiones
Social 60
Social 50
Comida orgánica 90
Comida orgánica 80

getData() respuesta

{
  "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 no compatibles

Si el conector no puede aplicar todos los filtros de la solicitud, no se debe realizar ningún filtrado. Muestra todos los campos solicitados (incluidos los campos forFilterOnly) y configura la clave filtersApplied en tu respuesta a false.

Ejemplo:

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