Filtres

Si un rapport contient des filtres et qu'un connecteur de communauté renvoie des données non filtrées pour tous les champs demandés, Looker Studio applique des filtres à la réponse du connecteur. Toutefois, vous pouvez appliquer des filtres au niveau du connecteur de communauté, ce qui peut considérablement améliorer les performances dans certains cas. Les informations de filtrage sont transmises dans l'objet de requête getData(). Le connecteur peut s'en servir pour filtrer les données avant de les renvoyer à Looker Studio.

Par exemple, si vous vous connectez à une base de données SQL, l'application des filtres directement dans la clause WHERE (B3 dans le schéma ci-dessous) peut considérablement réduire le nombre de lignes renvoyées à Looker Studio. Cela limite la quantité de données à traiter et à envoyer à Looker Studio (B5).

Diagramme de filtrage

Règles d'application des filtres

  1. Appliquer tous les filtres ou aucun d'entre eux. Consultez la section Filtres non compatibles.
  2. N'incluez pas de champs forFilterOnly dans la réponse.
  3. AND ensemble chaque entrée du tableau request.dimensionsFilters.

    Par exemple, pour le filtre suivant, le connecteur ne doit inclure que les valeurs dont l'country USA est ET le source Social.

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }],
        [{
          "fieldName": "source",
          "values": ["Social"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    
  4. OR ensemble chaque sous-tableau du tableau request.dimensionsFilters.

    Par exemple, pour le filtre suivant, le connecteur ne doit inclure que les valeurs dont l'country est USA OU que le country est Canada.

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

Exemple

L'exemple suivant illustre un flux de bout en bout depuis l'utilisateur du rapport qui définit des filtres vers le connecteur de communauté et qui renvoie des données filtrées.

Exemple de filtre

  1. L'utilisateur du rapport a configuré deux filtres:

    1. "country" est IN_LIST sur Canada, USA
    2. "source" est IN_LIST sur Social, Organic
  2. L'utilisateur du rapport a configuré un composant de graphique avec la dimension source et la métrique sessions.

  3. getData() est exécuté par Looker Studio avec l'objet de requête suivant:

    {
      "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. Le connecteur renvoie des données filtrées.

    Pour l'exemple de requête, renvoyez source et sessions, où country est "Canada" ou "USA" ET source est "Social" ou "Organic". Définissez filtersApplied sur true, car tous les filtres ont pu être appliqués.

Données d'origine

source sessions country
Réseau social 60 États-Unis
Réseau social 50 Canada
Réseau social 40 UK
Bio 90 États-Unis
Bio 80 Canada
Bio 70 UK
Journal 30 États-Unis
Journal 20 Canada
Journal 10 UK

Données filtrées

source sessions
Réseau social 60
Réseau social 50
Bio 90
Bio 80

getData() réponse

{
  "schema": [
    {"name": "source",   "dataType": "STRING"},
    {"name": "sessions", "dataType": "NUMBER"},
  ],
  "rows": [
    {"values": ["Social", 60]},
    {"values": ["Social", 50]},
    {"values": ["Organic", 90]},
    {"values": ["Organic", 80]}
  ],
  "filtersApplied": true
}

Filtres incompatibles

Si le connecteur ne peut pas appliquer tous les filtres de la requête, aucun filtrage ne doit être effectué. Renvoyez tous les champs demandés (y compris les champs forFilterOnly) et définissez la clé filtersApplied dans votre réponse sur false.

Exemple :

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