Filter

Wenn ein Bericht Filter enthält und ein Community-Connector ungefilterte Daten für alle angeforderten Felder zurückgibt, wendet Looker Studio Filter auf die Connector-Antwort an. Filter können jedoch auf Community Connector-Ebene angewendet werden, was die Leistung in einigen Fällen erheblich verbessern kann. Filterinformationen werden im getData()-Anfrageobjekt übergeben. Der Connector kann diese Informationen verwenden, um Daten zu filtern, bevor er sie an Looker Studio zurücksendet.

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

Flussdiagramm für Filter

Regeln für das Anwenden von Filtern

  1. Alle oder keine Filter anwenden. Nicht unterstützte Filter
  2. Nehmen Sie keine forFilterOnly-Felder in die Antwort auf.
  3. AND für jeden Eintrag im Array request.dimensionsFilters.

    Für den folgenden Filter sollte der Connector beispielsweise nur Werte mit einem country von USA UND einem source von Social enthalten.

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

    Für den folgenden Filter sollte der Connector beispielsweise nur Werte mit einem country von USA ODER einem country von Canada enthalten.

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

Beispiel

Im folgenden Beispiel wird ein End-to-End-Ablauf veranschaulicht, bei dem der Berichtsnutzer Filter definiert und der Community-Connector gefilterte Daten zurückgibt.

Beispielfilter

  1. Der Berichtsnutzer 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 die source und sessions zurück, wobei country "Canada" oder "USA" UND die source "Social" oder "Organic" ist. filtersApplied wurde auf true festgelegt, da alle Filter erfolgreich angewendet werden konnten.

Originaldaten

source Sitzungen country
Sozial 60 USA
Sozial 50 Kanada
Sozial 40 Vereinigtes Königreich
Bio 90 USA
Bio 80 Kanada
Bio 70 Vereinigtes Königreich
Zeitung 30 USA
Zeitung 20 Kanada
Zeitung 10 Vereinigtes Königreich

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 erfolgen. Geben Sie alle angeforderten Felder (einschließlich der forFilterOnly-Felder) zurück und setzen Sie den filtersApplied-Schlüssel in Ihrer Antwort auf false.

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
}