Filtres

Si un rapport contient des filtres et qu'un connecteur de communauté affiche des données non filtrées pour tous les champs demandés, Looker Studio appliquera des filtres au connecteur de réponse. Toutefois, les filtres peuvent être appliqués au niveau du connecteur de communauté, peut améliorer significativement les performances dans certains cas. Les informations de filtre sont transmis dans l'objet de requête getData(). Le connecteur peut alors utiliser ce pour filtrer les données avant de les renvoyer à Looker Studio.

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

Organigramme de filtrage

Règles d'application des filtres

  1. Appliquer tous les filtres, ou aucun. Voir Filtres incompatibles
  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 valeurs dont l'country est USA ET l'source de 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 la country de 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 généré par l'utilisateur du rapport définir des filtres vers le connecteur de communauté renvoyant 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 sessions métrique

  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". filtersApplied étant défini sur true, tous les filtres ont pu être appliqué avec succè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 compatibles

Si le connecteur ne peut pas appliquer tous les filtres de la requête, aucun filtrage ne doit être d'exécution. Renvoyer tous les champs demandés (y compris forFilterOnly) ) et définissez la clé filtersApplied dans votre réponse à 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
}