Merchant Center Query Language (MCQL) ist eine Abfragesprache, die SQL ähnelt. Sie können MCQL mit der Merchant Reports API verwenden, um Leistungsdaten zu Ihren Produkten und dem Markt abzurufen, in dem sie im Wettbewerb stehen.
Grammatik
Hier ist die MCQL-Grammatikreferenz (in regulärer Ausdrucksnotation):
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:
?
gibt ein optionales Element an.*
bedeutet null oder mehr;+
bedeutet eins oder mehr.(xxxxxx)
steht für eine Gruppierung.[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ß-/Kleinschreibung beachten |
(NICHT) IN | Groß-/Kleinschreibung beachten |
(NICHT) LIKE | Groß-/Kleinschreibung beachten |
ENTHÄLT (...) | Groß-/Kleinschreibung beachten |
REGEXP_MATCH | Optional beides |
klauseln
Mit MCQL können Sie die folgenden Klauseln abfragen:
AUSWÄHLEN
Die SELECT
-Klausel nimmt eine durch Kommas getrennte Liste der abzurufenden Felder an.
Sie können ein beliebiges Feld aus der verwendeten Ansicht auswählen. 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,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
VOM
Die FROM
-Klausel gibt die Tabelle an, aus der in der Anfrage Daten abgerufen werden sollen. Sie können in der FROM
-Klausel nur ein Feld angeben. Die FROM
-Klausel ist für alle Abfragen erforderlich.
WHERE
Verwenden Sie die WHERE
-Klausel, um die Daten für Ihre Anfrage zu filtern. Die WHERE
-Klausel ist für Leistungsanfragen erforderlich.
Sie können nach allen Segment-Feldern und nach zusätzlichen Messwert-Feldern filtern, wenn Sie diese in der SELECT
-Klausel angeben.
Hier ein Beispiel, in dem mit WHERE
Impressionen nur aus einem bestimmten Zeitraum (August) zurückgegeben werden:
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
Mit dem Operator AND
können Sie in einer einzelnen Abfrage nach mehreren Bedingungen filtern.
Verwenden Sie AND
zwischen vollständigen Bedingungen, z. B. WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC"
. Sie können AND
nicht zwischen Werten in einer einzelnen Bedingung verwenden, z. B. WHERE marketing_method != "ADS" AND
"ORGANIC"
.
Hier ein Beispiel, bei dem die Anzahl der Klicks pro Angebot zurückgegeben wird, wenn es im August mehr als 100 Klicks für die Marketingmethode ADS
gab:
SELECT offer_id, clicks
FROM product_performance_view
WHERE clicks > 100
AND marketing_method = 'ADS'
AND date BETWEEN '2023-08-01' AND '2023-08-31'
Die WHERE
-Klausel unterstützt OR
nicht. Bei Operatoren wird zwischen Groß- und Kleinschreibung unterschieden. Eine vollständige Liste der Operatoren finden Sie unter Syntax.
ORDER BY (optional)
Mit der ORDER BY
-Klausel können Sie Ergebnisse in einer bestimmten Reihenfolge abrufen.
Geben Sie die Reihenfolge mit field_name
, gefolgt von ASC
oder DESC
an. Sie können nur nach Feldern sortieren, die in der SELECT
-Klausel Ihrer Abfrage angegeben sind. Wenn Sie ORDER BY
nicht angeben, wird standardmäßig ASC
verwendet.
Die folgende Abfrage sortiert die zurückgegebenen Zeilen nach der Anzahl der Klicks, von der höchsten zur niedrigsten:
SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC
Sie können mehrere Felder in der ORDER BY
-Klausel in einer durch Kommas getrennten Liste angeben.
Die Ergebnisse der folgenden Abfrage werden beispielsweise in aufsteigender Reihenfolge nach offer_id
, dann in absteigender Reihenfolge nach der Anzahl der Impressionen und dann in absteigender Reihenfolge nach der Anzahl der Klicks sortiert:
SELECT offer_id, impressions, clicks
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offer_id,
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 offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Verwenden Sie das Feld pageSize
, um lange Listen mit Ergebnissen zu verarbeiten.
Zeiträume
Mit der MCQL können Sie einen benutzerdefinierten oder relativen Zeitraum angeben. Sie müssen die WHERE
-Klausel verwenden, um für alle Leistungsabfragen einen date
-Bereich anzugeben.
Benutzerdefiniert
Sie können ISO 8601-Datumsangaben(JJJJ-MM-TT) in den folgenden Formaten angeben:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
Sie können Datumsstrings entweder in einfache ('
) oder doppelte ("
) Anführungszeichen setzen.
Verwandter
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
Eine vollständige Liste der verfügbaren relativen Zeiträume finden Sie unter Syntax.