Filtros

Si un informe contiene filtros y un conector de comunidad devuelve 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 comunidad, lo que puede mejorar significativamente el rendimiento en algunos casos. La información del 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 reducir drásticamente la cantidad de filas que se devuelven 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 de ellos Consulta Filtros no compatibles
  2. No incluyas los campos forFilterOnly en la respuesta.
  3. AND junta cada entrada del array request.dimensionsFilters.

    Por ejemplo, para el siguiente filtro, el conector solo debe incluir los 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 une cada subarreglo en el arreglo request.dimensionsFilters.

    Por ejemplo, para el siguiente filtro, el conector solo debe incluir los 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 ilustra un flujo de extremo a extremo desde que el usuario del informe define los filtros hasta que el conector de comunidad devuelve 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 de 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, devuelve source y sessions, donde country es "Canada" o "USA" Y source es "Social" o "Organic". Establece filtersApplied en true, ya que todos los filtros se pudieron aplicar correctamente.

Datos originales

source sesiones country
Social 60 Estados Unidos
Social 50 Canadá
Social 40 Reino Unido
Comida orgánica 90 Estados Unidos
Comida orgánica 80 Canadá
Comida orgánica 70 Reino Unido
Periódico 30 Estados Unidos
Periódico 20 Canadá
Periódico 10 Reino Unido

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. Devuelve todos los campos solicitados (incluidos los campos forFilterOnly) y configura la clave filtersApplied en tu respuesta como 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
}