クエリの構造と句

クエリは複数の句(SELECTFROM, WHERE, ORDER BY LIMIT, PARAMETERS

句ではフィールド名、リソース名、演算子、条件を使用します。 順序が組み合わさって 1 つのクエリ リクエストにまとめられます。

クエリを作成するには、基本的に次のようにします。

  • データを取得するリソースを指定します。
  • フィールドと指標を追加して、返されるデータを定義します。
  • セグメントを追加すると、結果をグループ化できます。
  • 関連付けられたリソースを追加して、関連するリソースデータを暗黙的に結合します。
  • 結果のフィルタ、並べ替え、制限を行います。

SELECT

SELECT 句:

  • クエリ内の必須句である。
  • リクエストで取得するフィールドのセットを指定します。
  • リソース フィールド、カスタム列、カスタム列、カスタム列、カスタム列、 Floodlight 変数、セグメント フィールド、指標を取得し、 レスポンスが返されます。

次のクエリ例は、campaign の属性を選択する方法を示しています。 resource:

SELECT
  campaign.id,
  campaign.name
FROM campaign

複数のフィールド タイプ

1 回のリクエストで異なるフィールド タイプをリクエストできます。

次のクエリ例は、次の組み合わせを使用した単一のクエリを示しています。

  • リソース フィールド: campaign.idcampaign.namebidding_strategy.idbidding_strategy.name
  • セグメント フィールド: segments.devicesegments.date
  • 指標フィールド: metrics.impressionsmetrics.clicks
SELECT
  campaign.id,
  campaign.name,
  bidding_strategy.id,
  bidding_strategy.name,
  segments.device,
  segments.date,
  metrics.impressions,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

セグメンテーションをご覧ください。 をご覧ください。

メインリソース フィールド

通常は、SELECT にメインのリソース フィールドを含めます。 句に含まれますが、これはオプションです(必須ではありません)。

このクエリ例では、メインリソース フィールド(ad_group.status)を使用して、フィルタリングのみを行います。 表示されます。

SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED

カスタム Floodlight 変数

SELECT 句にカスタム Floodlight 変数を含めるには、 あります。

この例のクエリには、次の変数の ID が 123454321 の 表示されます。

SELECT
  conversion_custom_metrics.id[123454321]
FROM campaign
SELECT
  conversion_custom_dimensions.id[123454321]
FROM campaign

カスタム列

ID を使用して SELECT 句にカスタム列を含めることができます。

この例のクエリには、次のフィールドに対する ID が 12345678 のカスタム列が含まれています。 表示されます。

SELECT
  custom_columns.id[12345678]
FROM campaign

詳しくは、カスタム列 ID を取得する方法をご覧ください。

指標フィールド

特定のリソースについて、他の指標フィールドを含めずに指標フィールドを選択できます。 SELECT 句でリソースのフィールドから取得できます。

このクエリの例では、campaignimpressions 指標と clicks 指標を選択します。 リソースです。

SELECT
  metrics.impressions,
  metrics.clicks
FROM campaign

詳しくは、metrics をご覧ください。 クエリで使用できる指標フィールドのリスト。

セグメント フィールド

付随するリソース フィールドを指定せずにセグメント フィールドを選択できる SELECT句では指標や指標を使用しません

このクエリの例では、結果をデバイス別に分割します。

SELECT segments.device
FROM campaign

詳しくは、segments をご覧ください。 クエリで使用できるセグメント フィールドのリストです。

禁止フィールド

SELECT 句で次のフィールドは使用できません。

  • 選択できないフィールド(Selectable メタデータを含むフィールド) 属性を false とマークしました。
  • 繰り返しフィールド、つまり Repeated メタデータ属性を持つフィールド true とマークされます。
  • FROM 句の指定されたリソースで使用できないフィールド。 一部のリソースの属性を同時に選択することはできません。一部のリソースのみ すべての指標とセグメントのサブセットを 利用できるようにします
  • セグメントまたは指標に互換性がありません。詳しくは、セグメンテーションをご覧ください。 情報です。

リファレンス ドキュメントをご覧ください。 各リソースについてこの情報を確認できる場所の詳細です。

FROM 句

FROM 句:

  • クエリで必須句であるか SearchAds360ServiceSearch メソッドと SearchStream メソッドの両方)。
  • SearchAds360FieldService へのクエリでは含めないでください
  • クエリが返すメインリソースを指定します。
  • リソースは 1 つだけ指定できます。
  • クエリ内の他のすべての句で使用できるフィールドを定義します。
で確認できます。

関連付けられたリソース

関連付けられたリソースが利用可能な場合、それらは暗黙的に FROM 句で指定したリソースにのみ反映されます。属性を追加するだけです SELECT 句に追加してそれらの値を返します。

このクエリ例では、広告グループ ID とキャンペーン ID の両方が返されます。これは、 campaign は、ad_group リソースの属性付きリソースです。

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

resource_name フィールド

FROM 句のメインリソースの resource_name フィールドは常に 返されます。

このクエリ例では、レスポンスに ad_group.resource_name が含まれます。 クエリで明示的に選択されていなくてもかまいません。

SELECT ad_group.id
FROM ad_group

属性付きリソースresource_name フィールド 少なくとも 1 つのフィールドが選択されたときに返されます。

このクエリの例では、campaign.resource_name が レスポンスが返されます。これは、campaign.id が選択されているためです。

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

WHERE 句

WHERE 句:

  • クエリのオプション句である。
  • リクエストのデータのフィルタリングとセグメント化の条件を指定します。 条件は FIELD_NAME のパターンになります。 OPERATOR VALUE( あります。
  • 複数の条件を AND 区切り文字で区切って含めることができます。

次のサンプルクエリは、WHERE 句を使用して impressions を返す方法を示しています。 次の指標が表示されます。

SELECT
  campaign.id,
  campaign.name,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

セグメンテーションをご覧ください。 をご覧ください。

日付の指定について詳しくは、期間をご覧ください。 指定することもできます

resource_name フィールドでフィルタ

resource_name フィールドを使用して、データのフィルタリングや並べ替えを行うことができます。

このクエリの例では、campaign.resource_name フィールドを使用して結果をフィルタリングしています。 :

SELECT
  campaign.id,
  campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'

複数の条件

複数の条件を組み合わせてデータをフィルタできます。

このクエリ例では、すべてのキャンペーンの clicks 指標の数をリクエストします 過去 30 日間のモバイルでの impressions 指標。

SELECT
  campaign.id,
  campaign.name,
  segments.device,
  metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
  AND segments.device = MOBILE
  AND segments.date DURING LAST_30_DAYS

セグメンテーションをご覧ください。 をご覧ください。

大文字と小文字の区別

文字列値でフィルタする場合、各演算子のデフォルトの大文字と小文字の区別 結果を正しくフィルタリングするうえで重要な役割を果たします。

次の表に、各演算子のデフォルトの大文字と小文字の区別を示します。

デフォルトの大文字と小文字の区別
=/!= Case sensitive
IN/NOT IN Case sensitive
LIKE/NOT LIKE Case insensitive
CONTAINS (...) Case sensitive
REGEXP_MATCH/NOT REGEXP_MATCH Case sensitive

(?i) 修飾子を使用して、デフォルトの感度を変更できます。 REGEXP_MATCHNOT REGEXP_MATCH を大文字と小文字を区別しないようにします。次に例を示します。

SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"

クエリ構文に関する完全なリストについては、クエリ文法リファレンスをご覧ください。 演算子です。

コア日付セグメント

次のセグメント フィールドは、主要な日付セグメントと呼ばれます。 segments.datesegments.weeksegments.monthsegments.quartersegments.year

WHERE 句で主要な日付セグメントを使用して、日付または時刻を指定できます。 です。

次のクエリ例では、segments.date フィールドに DURING LAST_30_DAYS を指定しています。 WHERE 句に指定します。

SELECT
  campaign.id,
  campaign.name,
  segments.date,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

セグメンテーション >コア日付セグメント: 詳細 主な日付セグメントの 使用方法を説明します

禁止されているフィルタリング

次のフィルタは許可されていません。

  • 選択されていないセグメント フィールド(主要な日付セグメントを除く)。
  • プリミティブ(Int64Value など)を除くメッセージ タイプのフィールド StringValue など)。
  • プリミティブを除く、任意のメッセージ タイプの繰り返しフィールドの属性 (Int64ValueStringValue など)。

ORDER BY 句

ORDER BY 句:

  • クエリのオプション句である。
  • 結果が返される順序を指定します。順序は次のようになります。 パターン: FIELD_NAME ORDERING_OPTION(空白で区切ります)。
  • ASC(昇順)または DESC(降順)の 2 つのオプションを使用できます。デフォルトは 選択します

このクエリの例では、クリック数でキャンペーンを降順で並べ替えます。 (高い順):

SELECT
  campaign.name,
  metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC

複数の順序

ORDER BY 句では、カンマで区切って複数のフィールドを指定できます。 選択します。結果は、 なります。

次のサンプルクエリでは、広告グループのデータを選択して、結果を昇順で並べ替えます。 降順に、次にインプレッション数の降順で並べ替えられます。 クリック数の降順で並べ替えます。

SELECT
  campaign.name,
  ad_group.name,
  metrics.impressions,
  metrics.clicks
FROM ad_group
ORDER BY
  campaign.name,
  metrics.impressions DESC,
  metrics.clicks DESC

順序と上限を組み合わせる

ORDER BY 句を LIMIT 句と組み合わせて使用すると、次のことを行えます。 結果を絞り込むことができます

このクエリの例では、次の期間でのインプレッション数が最も多い 5 つのキャンペーンが返されます。 過去 30 日間:

SELECT
  campaign.id,
  campaign.name,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.impressions DESC
LIMIT 5

禁止されている順序

次の条件での並べ替えは許可されていません。

  • 選択されていないリソースの属性別。
  • 選択されていない指標別。
  • 選択されていないセグメント別。
  • 以下のフィールド タイプの場合: <ph type="x-smartling-placeholder">
      </ph>
    • MESSAGE
    • 繰り返しフィールド
    • 繰り返しフィールドの属性。

LIMIT 句

LIMIT 句:

  • クエリのオプション句である。
  • クエリが返す結果の数を制限できます。

この句は、サンプルのみに関心がある場合や、 結果の概要です

次のサンプルクエリでは、結果の総数を 50 に制限しています。

SELECT
  campaign.name,
  ad_group.name,
  segments.device,
  metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50

PARAMETERS 句

PARAMETERS 句を使用すると、リクエストのメタ パラメータを指定できます。

回答案を含める

include_drafts パラメータは、下書きのエンティティを含めるかどうかを制御します。 表示されます。デフォルトは false です。下書きのエンティティを含めるには、true に設定します。

次のクエリ例では、下書き用キャンペーンと通常のキャンペーンの両方を返します。

SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true

未選択の resource_name を除外

omit_unselected_resource_names パラメータを使用すると、 明示的にリクエストされていないすべてのリソースの resource_name フィールド SELECT 句。デフォルト値は false です。このパラメータを true に設定すると、 プライマリ リソースのリソース名を明示的にリクエストすることを 属性を SELECT 句に含めます。

このクエリの例では、campaign.resource_namecustomer.resource_name フィールド(SELECT に含まれていないため) 句:

SELECT
  campaign.name,
  customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true

このクエリ例では、campaign.resource_name フィールドが返されます。 SELECT 句で明示的に要求します。

SELECT
  campaign.name,
  campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true

指標で使用する通貨の変更

metrics_currency パラメータを使用すると、使用する通貨を指定できます。 SELECT 句に含まれる指標を計算するとき。 デフォルトでは、アカウントの現地通貨が使用されます。この変数を パラメータには、ISO 4217 の 3 文字の通貨コードを使用する必要があります。 (例: USD、EUR)。

このクエリの例では、cost_micros 指標を あります。

SELECT
  campaign.name,
  metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"

次のクエリ例では、チリ ペソ(CLP)で cost_micros 指標を返します。

SELECT
  campaign.name,
  metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
PARAMETERS metrics_currency = "CLP"

その他の情報