レポートにフィルタが含まれていて、リクエストされたすべてのフィールドに対してフィルタされていないデータがコミュニティ コネクタから返された場合、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" }] ] }
コネクタはフィルタ処理されたデータでレスポンスします。
このリクエストの例では、
source
とsessions
を返します。ここで、country
は"Canada"
または"USA"
であり、かつsource
は"Social"
または"Organic"
です。すべてのフィルタが正常に適用されたため、filtersApplied
をtrue
に設定します。
元のデータ
source | sessions | country |
---|---|---|
ソーシャル | 60 | 米国 |
ソーシャル | 50 | カナダ |
ソーシャル | 40 | 英国 |
Organic | 90 | 米国 |
Organic | 80 | カナダ |
Organic | 70 | UK |
Newspaper | 30 | 米国 |
Newspaper | 20 | カナダ |
Newspaper | 10 | 英国 |
フィルタされたデータ
source | sessions |
---|---|
ソーシャル | 60 |
ソーシャル | 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
}