レポートにフィルタが含まれており、リクエストされたすべてのフィールドでフィルタ処理されていないデータがコミュニティ コネクタにより返される場合、フィルタは Looker Studio によってコネクタのレスポンスに適用されます。ただし、コミュニティ コネクタレベルでフィルタを適用すると、場合によってはパフォーマンスが大幅に向上します。フィルタ情報は getData() リクエスト オブジェクトで渡され、コネクタでこの情報を使用してデータをフィルタ処理してから、Looker Studio に送り返すことができます。
たとえば、SQL データベースに接続する場合、WHERE 句でフィルタを直接適用(下図の B3)すると、Looker Studio に返される行の数を大幅に減らすことができます。これにより、処理して Looker Studio に送信する必要があるデータの量(B5)が制限されます。

フィルタを適用するルール
- すべてのフィルタが適用されるか、まったく適用されないかのいずれかです。詳しくは、サポートされていないフィルタを参照してください
- レスポンスに
forFilterOnlyフィールドを含めないでください。 request.dimensionsFilters配列の各エントリをANDでつなぎます。たとえば、次のフィルタの場合、コネクタには「
countryがUSA」かつ「sourceがSocial」の値が含まれます。{ "dimensionsFilters": [ [{ "fieldName": "country", "values": ["USA"], "type": "INCLUDE", "operator": "EQUALS" }], [{ "fieldName": "source", "values": ["Social"], "type": "INCLUDE", "operator": "EQUALS" }] ] }request.dimensionsFilters配列の各サブ配列をORでつなぎます。たとえば、次のフィルタの場合、コネクタには「
countryがUSA」または「countryがCanada」の値が含まれます。{ "dimensionsFilters": [ [{ "fieldName": "country", "values": ["Canada"], "type": "INCLUDE", "operator": "EQUALS" }, { "fieldName": "country", "values": ["USA"], "type": "INCLUDE", "operator": "EQUALS" }] ] }
例
次の例は、レポート ユーザーがフィルタを定義するときから、コミュニティ コネクタがフィルタ処理されたデータを返すときまでのフロー全体を示しています。

レポート ユーザーは 2 つのフィルタを作成しました。
countryは、Canada, USAのIN_LISTになります。sourceは、Social, OrganicのIN_LISTになります。
レポート ユーザーは、
sourceディメンションとsessions指標でグラフ コンポーネントを設定しました。getData()が、次のリクエスト オブジェクトで Looker Studio によって実行されます。{ "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" }] ] }コネクタはフィルタ処理されたデータでレスポンスします。
たとえば上記の例では、「
countryが"Canada"または"USA"」かつ「sourceが"Social"または"Organic"」であるsourceとsessionsが返されます。すべてのフィルタが正常に適用されたため、filtersAppliedをtrueに設定します。
元のデータ
| source | sessions | country |
|---|---|---|
| Social | 60 | USA |
| Social | 50 | Canada |
| Social | 40 | UK |
| Organic | 90 | USA |
| Organic | 80 | Canada |
| Organic | 70 | UK |
| Newspaper | 30 | USA |
| Newspaper | 20 | Canada |
| Newspaper | 10 | UK |
フィルタされたデータ
| source | sessions |
|---|---|
| Social | 60 |
| Social | 50 |
| Organic | 90 |
| Organic | 80 |
getData() レスポンス
{
"schema": [
{"name": "source", "dataType": "STRING"},
{"name": "sessions", "dataType": "NUMBER"},
],
"rows": [
{"values": ["Social", 60]},
{"values": ["Social", 50]},
{"values": ["Organic", 90]},
{"values": ["Organic", 80]}
],
"filtersApplied": true
}
サポートされていないフィルタ
コネクタがリクエスト内のフィルタをひとつでも適用できない場合、フィルタは実行されません。リクエストされたすべてのフィールド(forFilterOnly フィールドを含む)を返し、レスポンスの filtersApplied キーを false に設定します。
例:
{
"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
}