Merchant Center Sorgu Dili (MCQL), SQL'e benzer bir sorgu dilidir. Ürünlerinizin ve rekabet ettikleri pazarla ilgili performans verilerini almak için MCQL'yi Merchant Reports API ile birlikte kullanabilirsiniz.
Dilbilgisi
MCQL dil bilgisi referansını burada bulabilirsiniz (normal ifade gösteriminde):
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
Aşağıdaki simgeleri kullanabilirsiniz:
?
isteğe bağlı bir öğeyi belirtir.*
sıfır veya daha fazla,+
ise bir veya daha fazla anlamına gelir.(xxxxxx)
bir gruplamayı belirtir.[a-z0-9]
, karakter aralıklarını ifade eder.|
, "veya" anlamına gelir.
Büyük/küçük harfe duyarlılık
Çoğu MCQL operatörü büyük/küçük harfe duyarlıdır:
Operatörler | Büyük/Küçük Harf Duyarlılığı |
---|---|
= veya != | Büyük/küçük harfe duyarlı |
(DEĞİL) İÇİNDE | Büyük/küçük harfe duyarlı |
(BEĞENMEDİR) | Büyük/küçük harfe duyarlı |
İÇERİR (...) | Büyük/küçük harfe duyarlı |
REGEXP_MATCH | İsteğe Bağlı Olarak Her İkisi de |
Maddeler
MCQL ile sorgulayabileceğiniz yan tümceler şunlardır:
SELECT
SELECT
yan tümcesi, alınacak alanların virgülle ayrılmış listesini alır.
Kullandığınız görünümden herhangi bir alanı seçebilirsiniz. Seçebileceğiniz alanlarla ilgili bazı örnekleri aşağıda bulabilirsiniz:
-
impressions
clicks
-
date
marketingMethod
Tek bir istekte birden çok alan türünü sorgulayabilirsiniz. Aşağıda bir örnek verilmiştir:
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
FROM
ifadesi, istekte verilerin getirileceği tabloyu belirtir. FROM
yan tümcesinde yalnızca bir alan belirtebilirsiniz. FROM
deyimi tüm sorgular için gereklidir.
WHERE
İsteğinizle ilgili verileri filtrelemek için WHERE
ifadesini kullanın. WHERE
ifadesi, performans sorguları için zorunludur.
Tüm segments alanlarına ve SELECT
ifadesinde belirtirseniz ek metrics alanlarına göre filtreleme yapabilirsiniz.
Yalnızca belirli bir döneme (Ağustos ayı) ait gösterimleri döndürmek için WHERE
kullanan bir örneği aşağıda bulabilirsiniz:
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
AND
operatörünü kullanarak tek bir sorguda birden fazla koşula göre filtreleme yapabilirsiniz.
Tüm koşullar arasında AND
kullanın. Örneğin: WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
. Tek bir koşuldaki değerler arasında AND
kullanamazsınız. Örneğin: WHERE marketingMethod != "ADS" AND "ORGANIC"
.
Aşağıda, Ağustos ayı boyunca ADS
pazarlama yöntemi için 100'den fazla tıklamanın bulunduğu teklif başına tıklama sayısını döndüren bir örnek verilmiştir:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
AND marketingMethod = 'ADS'
AND date BETWEEN '2020-08-01' AND '2020-08-31'
WHERE
ifadesi, OR
öğesini desteklemiyor. Operatörler büyük/küçük harfe duyarlıdır. Operatörlerin tam listesi için dilbilgisi bölümünü inceleyin.
ORDER BY (isteğe bağlı)
ORDER BY
ifadesi, sonuçları belirli bir sırada almanıza olanak tanır.
Sırasını fieldName
, ardından ASC
veya DESC
ile belirtin. Yalnızca sorgunuzun SELECT
yan tümcesinde belirtilen alanlara göre sıralama yapabilirsiniz. Bunu belirtmezseniz ORDER BY
varsayılan olarak
ASC
değerine ayarlanır.
Aşağıdaki sorgu, döndürülen satırları tıklama sayısına göre en yüksekten en düşüğe doğru sıralar:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC
Virgülle ayrılmış bir liste kullanarak ORDER BY
yan tümcesinde birden fazla alan belirtebilirsiniz.
Örneğin, aşağıdaki sorgunun sonuçları önce artan düzende, ardından gösterim sayısına göre azalan düzende, ardından tıklama sayısına göre azalan düzende sıralanır:offerId
SELECT offerId, impressions, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offerId,
impressions DESC,
clicks DESC
SINIR
LIMIT
deyimi, döndürülecek sonuç sayısını belirtmenizi sağlar.
Aşağıda, daha fazla satır olsa bile yalnızca 50 sonuç döndüren bir örnek verilmiştir.
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Uzun sonuç listelerini işlemek için pageSize
alanını kullanın.
Tarih aralıkları
MCQL, özel veya göreli bir tarih aralığı belirtmenize olanak tanır. Tüm performans sorguları için bir date
aralığı belirtmek üzere WHERE
ifadesini kullanmanız gerekir.
Özel
ISO 8601(YYYY-AA-GG) tarihlerini aşağıdaki biçimlerde belirtebilirsiniz:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
Tarih dizelerini tek tırnak ('
) veya çift tırnak ("
) ile tanımlayabilirsiniz.
Akraba
BETWEEN
ve AND
yerine DURING
kullanarak LAST_30_DAYS
veya THIS_MONTH
gibi göreli bir tarih aralığı belirtebilirsiniz:
WHERE date DURING LAST_30_DAYS
Kullanılabilen göreli tarih aralıklarının tam listesi için dilbilgisi bölümüne bakın.