Merchant Center Query Language

Merchant Center Query Language (MCQL) ist eine Abfragesprache, ähnlich wie SQL. Sie können MCQL mit der Merchant Reports API verwenden, um Leistungsdaten zu Ihren Produkten und dem Markt, in dem sie konkurrieren, abzurufen.

Grammatik

Hier ist die Referenz zur MCQL-Grammatik (in Notation für reguläre Ausdrücke):

Query            -> SelectClause FromClause? WhereClause? OrderByClause? LimitClause?
SelectClause     -> SELECT FieldName (, FieldName)*
FromClause       -> FROM TableName
WhereClause      -> WHERE Condition (AND Condition)*
OrderByClause    -> ORDER BY Ordering (, Ordering)*
LimitClause      -> LIMIT PositiveInteger

Condition        -> FieldName Operator Value | FieldName BETWEEN Value AND Value
Operator         -> = | != | > | >= | < | <= | <> | IN | NOT IN |
                    CONTAINS ANY | CONTAINS ALL | CONTAINS NONE | DURING |
                    LIKE | NOT LIKE | REGEXP_MATCH | NOT REGEXP_MATCH
Value            -> Number | NumberList | String | StringList | Function
Ordering         -> FieldName (ASC | DESC)?

FieldName        -> [a-z] ([a-zA-Z0-9._])*
TableName        -> [A-Z] ([a-zA-Z_])*

StringList       -> ( String (, String)* )
NumberList       -> ( Number (, Number)* )

PositiveInteger  -> [1-9] ([0-9])*
Number           -> -? [0-9]+ (. [0-9] [0-9]*)?
String           -> (' Char* ') | (" Char* ")
Function         -> LAST_14_DAYS | LAST_30_DAYS | LAST_7_DAYS |
                    LAST_BUSINESS_WEEK | LAST_MONTH | LAST_WEEK_MON_SUN |
                    LAST_WEEK_SUN_SAT | THIS_MONTH | THIS_WEEK_MON_TODAY |
                    THIS_WEEK_SUN_TODAY | TODAY | YESTERDAY

Sie können die folgenden Symbole verwenden:

  • ? bezeichnet ein optionales Element.
  • * bedeutet null oder mehr, + ein oder mehrere.
  • (xxxxxx) gibt eine Gruppierung an.
  • [a-z0-9] steht für Zeichenbereiche.
  • | steht für „oder“.

Groß-/Kleinschreibung

Bei den meisten MCQL-Operatoren wird zwischen Groß- und Kleinschreibung unterschieden:

Operatoren Berücksichtigung der Groß-/Kleinschreibung
= oder != Groß- und Kleinschreibung
(NICHT) IN Groß- und Kleinschreibung
(NICHT) Gefällt mir Groß- und Kleinschreibung
ENTHÄLT (...) Groß- und Kleinschreibung
REGEXP_MATCH Optional: Beide

klauseln

Im Folgenden sind die Klauseln aufgeführt, die Sie mit der MCQL abfragen können:

SELECT

Die SELECT-Klausel verwendet eine durch Kommas getrennte Liste von Feldern, die abgerufen werden sollen.

Sie können ein beliebiges Feld aus der Ansicht auswählen, die Sie verwenden. Hier sind einige Beispiele für Felder, die Sie auswählen können:

Sie können mehrere Feldtypen in einer einzigen Anfrage abfragen. Beispiel:

SELECT
  date,
  marketingMethod,
  impressions,
  clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

VOM

Die FROM-Klausel gibt die Tabelle an, aus der Daten in der Anfrage abgerufen werden sollen. Sie können nur ein Feld in der FROM-Klausel angeben. Die FROM-Klausel ist für alle Abfragen erforderlich.

DABEI GILT:

Verwenden Sie die Klausel WHERE, um die Daten für Ihre Anfrage zu filtern. Die WHERE-Klausel ist für Leistungsabfragen erforderlich. Sie können nach allen Segment-Feldern und nach zusätzlichen metrics filtern, wenn Sie diese in der SELECT-Klausel angeben.

Im folgenden Beispiel wird mit WHERE Impressionen aus einem bestimmten Zeitraum (im Monat August) zurückgegeben:

SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

Mit dem Operator AND können Sie in einer einzelnen Abfrage nach mehreren Bedingungen filtern. Verwenden Sie AND zwischen vollständigen Bedingungen. Beispiel: WHERE marketingMethod != "ADS" AND marketingMethod != "ORGANIC". Sie können AND nicht zwischen Werten in einer einzelnen Bedingung verwenden. Beispiel: WHERE marketingMethod != "ADS" AND "ORGANIC".

In diesem Beispiel wird die Anzahl der Klicks pro Angebot für die Marketingmethode ADS im August zurückgegeben, bei denen mehr als 100 Klicks erzielt wurden:

SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
  AND marketingMethod = 'ADS'
  AND date BETWEEN '2020-08-01' AND '2020-08-31'

OR wird von der WHERE-Klausel nicht unterstützt. Bei Operatoren wird zwischen Groß- und Kleinschreibung unterschieden. Eine vollständige Liste der Operatoren finden Sie unter Grammatik.

ORDER BY (optional)

Mit der ORDER BY-Klausel können Sie Ergebnisse in einer bestimmten Reihenfolge abrufen.

Geben Sie die Bestellung mit einer fieldName und dann mit ASC oder DESC an. Sie können nur nach Feldern sortieren, die in der SELECT-Klausel der Abfrage angegeben sind. Wenn Sie keine Angabe machen, wird ORDER BY standardmäßig auf ASC gesetzt.

Mit der folgenden Abfrage werden die zurückgegebenen Zeilen nach der Anzahl der Klicks in absteigender Reihenfolge sortiert:

SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC

Sie können mithilfe einer durch Kommas getrennten Liste mehrere Felder in der ORDER BY-Klausel angeben.

Die Ergebnisse der folgenden Abfrage werden beispielsweise in aufsteigender Reihenfolge nach offerId, dann in absteigender Reihenfolge nach Anzahl der Impressionen und dann in absteigender Reihenfolge nach Anzahl der Klicks sortiert:

SELECT offerId, impressions, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
  offerId,
  impressions DESC,
  clicks DESC

LIMIT

Mit der LIMIT-Klausel können Sie die Anzahl der zurückzugebenden Ergebnisse angeben.

In diesem Beispiel werden nur 50 Ergebnisse zurückgegeben, auch wenn mehr Zeilen verfügbar sind.

SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50

Verwenden Sie das Feld pageSize, um lange Ergebnislisten zu verarbeiten.

Zeiträume

Mit der MCQL können Sie einen benutzerdefinierten oder relativen Zeitraum angeben. Sie müssen die Klausel WHERE verwenden, um einen date-Bereich für alle Leistungsabfragen anzugeben.

Benutzerdefiniert

ISO 8601-Daten(JJJJ-MM-TT) können in den folgenden Formaten angegeben werden:

  • date BETWEEN '2021-01-01' AND '2021-01-31'
  • date >= '2021-01-01' AND date <= '2021-01-31'

Sie können Datumsstrings entweder mit einfachen Anführungszeichen (') oder doppelten Anführungszeichen (") definieren.

Relativ

Sie können einen relativen Zeitraum wie LAST_30_DAYS oder THIS_MONTH angeben, indem Sie DURING anstelle von BETWEEN und AND verwenden:

WHERE date DURING LAST_30_DAYS

Die vollständige Liste der verfügbaren relativen Zeiträume finden Sie in Grammatik.