Filter

Wenn ein Bericht Filter enthält und ein Community-Connector für alle angeforderten Felder ungefilterte Daten zurückgibt, wendet Looker Studio Filter auf die Antwort des Connectors an. Filter können jedoch auf Community-Connector-Ebene angewendet werden, was die Leistung in einigen Fällen erheblich verbessern kann. Filterinformationen werden im Anfrageobjekt "getData()" übergeben. Sie können vom Connector zum Filtern von Daten verwendet werden, bevor sie an Looker Studio zurückgesendet werden.

Wenn Sie beispielsweise eine Verbindung zu einer SQL-Datenbank herstellen und die Filter direkt in der WHERE-Klausel (B3 im Diagramm unten) anwenden, kann die Anzahl der an Looker Studio zurückgegebenen Zeilen drastisch reduziert werden. Dadurch wird wiederum die Datenmenge begrenzt, die verarbeitet und an Looker Studio (B5) gesendet werden muss.

Flussdiagramm filtern

Regeln für die Anwendung von Filtern

  1. Wenden Sie alle oder keine Filter an. Siehe Nicht unterstützte Filter
  2. Fügen Sie keine forFilterOnly-Felder in die Antwort ein.
  3. AND für jeden Eintrag im Array request.dimensionsFilters zusammen.

    Beim folgenden Filter sollte der Connector beispielsweise nur Werte mit dem country-Wert USA UND dem source-Wert Social enthalten.

    {
      "dimensionsFilters": [
        [{
          "fieldName": "country",
          "values": ["USA"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }],
        [{
          "fieldName": "source",
          "values": ["Social"],
          "type": "INCLUDE",
          "operator": "EQUALS"
        }]
      ]
    }
    
  4. OR jedes Teilarray im Array request.dimensionsFilters zusammen.

    Beim folgenden Filter sollte der Connector beispielsweise nur Werte mit einem country von USA ODER mit einem country von Canada enthalten.

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

Beispiel

Das folgende Beispiel zeigt einen End-to-End-Ablauf vom Nutzer, der Filter definiert, zum Community-Connector, der gefilterte Daten zurückgibt.

Beispielfilter

  1. Der Nutzer des Berichts hat zwei Filter konfiguriert:

    1. country ist IN_LIST von Canada, USA
    2. source ist IN_LIST von Social, Organic
  2. Der Nutzer des Berichts hat eine Diagrammkomponente mit der Dimension source und dem Messwert sessions konfiguriert.

  3. getData() wird von Looker Studio mit dem folgenden Anfrageobjekt ausgeführt:

    {
      "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. Der Connector antwortet mit gefilterten Daten.

    Geben Sie für die Beispielanfrage source und sessions zurück, wobei country "Canada" oder "USA" ist UND source "Social" oder "Organic" ist. Legen Sie filtersApplied auf true fest, da alle Filter erfolgreich angewendet werden konnten.

Ursprüngliche Daten

source Sitzungen country
Sozial 60 USA
Sozial 50 Kanada
Sozial 40 UK
Bio 90 USA
Bio 80 Kanada
Bio 70 UK
Tageszeitung 30 USA
Tageszeitung 20 Kanada
Tageszeitung 10 UK

Gefilterte Daten

source Sitzungen
Sozial 60
Sozial 50
Bio 90
Bio 80

getData() Antwort

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

Nicht unterstützte Filter

Wenn der Connector nicht alle Filter in der Anfrage anwenden kann, sollte keine Filterung durchgeführt werden. Geben Sie alle angeforderten Felder zurück (einschließlich der forFilterOnly-Felder) und legen Sie den Schlüssel filtersApplied in Ihrer Antwort auf false fest.

Beispiel:

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