Filtres

Si un rapport contient des filtres et qu'un connecteur de la communauté renvoie des données non filtrées pour tous les champs demandés, Looker Studio appliquera des filtres à la réponse du connecteur. Toutefois, des filtres peuvent être appliqués au niveau du connecteur de communauté, ce qui peut améliorer considérablement les performances dans certains cas. Les informations de filtrage sont transmises dans l'objet de requête getData(). Le connecteur peut utiliser ces informations 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 réduire considérablement le nombre de lignes renvoyées à Looker Studio. Cela limite la quantité de données à traiter et à envoyer à Looker Studio (B5).

Organigramme de filtrage

Règles d'application des filtres

  1. Appliquez tous les filtres ou aucun d'entre eux. Consultez Filtres non acceptés.
  2. N'incluez pas les 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 le country est USA ET le source est 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 le country est USA OU Canada.country

    {
      "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 la définition des filtres par l'utilisateur du rapport jusqu'au renvoi des données filtrées par le connecteur de communauté.

Exemple de filtre

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

    1. country est à IN_LIST de Canada, USA
    2. source est à IN_LIST de Social, Organic
  2. L'utilisateur du rapport a configuré un composant 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 répond avec des données filtrées.

    Pour l'exemple de requête, renvoyez source et sessionscountry 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 USA
Réseau social 50 Canada
Réseau social 40 Royaume-Uni
Bio 90 USA
Bio 80 Canada
Bio 70 Royaume-Uni
Journal 30 USA
Journal 20 Canada
Journal 10 Royaume-Uni

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 non acceptés

Si le connecteur ne peut pas appliquer tous les filtres de la requête, aucun filtrage ne doit être effectué. Renvoie tous les champs demandés (y compris les champs forFilterOnly) et définis la clé filtersApplied dans ta 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
}