Merchant Center sorgu dili (MCQL), SQL'e benzer bir sorgu dilidir. Ürünleriniz ve rekabet ettikleri pazarla ilgili performans verilerini almak için MCQL'yi Satıcı Raporları API ile kullanabilirsiniz.
Dilbilgisi
MCQL dil referansı (normal ifade gösterimiyle) aşağıda verilmiştir:
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 sembolleri kullanabilirsiniz:
?
, isteğe bağlı bir öğeyi gösterir.*
sıfır veya daha fazla,+
ise bir veya daha fazla anlamına gelir.(xxxxxx)
, gruplandırmayı gösterir.[a-z0-9]
, karakter aralıklarını gösterir.|
, "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ı |
(NOT) IN | Büyük/küçük harfe duyarlı |
(DEĞİL) BEĞENME | Büyük/küçük harfe duyarlı |
İÇERİR (...) | Büyük/küçük harfe duyarlı |
REGEXP_MATCH | İsteğe bağlı olarak ikisi de |
Cümleler
MCQL ile sorgulayabileceğiniz yan tümceler şunlardır:
SEÇ
SELECT
yan tümcesi, getirilecek alanların virgülle ayrılmış bir listesini alır.
Kullandığınız görünümden herhangi bir alanı seçebilirsiniz. Seçebileceğiniz alanlara dair bazı örnekler:
-
impressions
clicks
-
date
marketing_method
Tek bir istekte birden fazla alan türünü sorgulayabilirsiniz. Aşağıda bununla ilgili bir örnek verilmiştir:
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
FROM
FROM
yan tümcesi, istekte verilerin alınacağı tabloyu belirtir. FROM
yan tümcesinde yalnızca bir alan belirtebilirsiniz. FROM
yan tümcesi tüm sorgular için gereklidir.
WHERE
İsteğiniz için verileri filtrelemek üzere WHERE
yan tümcesini kullanın. WHERE
yan tümcesi, performans sorguları için gereklidir.
Tüm segment alanlarına ve SELECT
yan tümcesinde belirttiğiniz ek metrik alanlarına göre filtreleme yapabilirsiniz.
Yalnızca belirli bir dönemdeki (Ağustos ayı) gösterimleri döndürmek için WHERE
kullanan bir örneği aşağıda bulabilirsiniz:
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
AND
operatörünü kullanarak tek bir sorguda birden çok koşula göre filtreleme yapabilirsiniz.
Tam koşullar arasında AND
kullanın. Örneğin: WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC"
. Tek bir koşuldaki değerler arasında AND
kullanamazsınız. Örneğin: WHERE marketing_method != "ADS" AND
"ORGANIC"
.
Aşağıda, Ağustos ayında ADS
pazarlama yöntemi için 100'den fazla tıklama olan teklif başına tıklama sayısını döndüren bir örnek verilmiştir:
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'
WHERE
yan tümcesi OR
'ü desteklemiyor. Operatörler büyük/küçük harfe duyarlıdır. Operatörlerin tam listesi için dil bilgisi bölümüne bakın.
ORDER BY (isteğe bağlı)
ORDER BY
yan tümcesi, sonuçları belirtilen bir sırada almanıza olanak tanır.
Sırayı field_name
, ardından ASC
veya DESC
ile belirtin. Yalnızca sorgunuzun SELECT
yan tümcesinde belirtilen alanlara göre sıralama yapabilirsiniz. ORDER BY
belirtilmezse varsayılan olarak ASC
olur.
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 offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-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ı offer_id
değerine göre artan düzende, ardından gösterim sayısına göre azalan düzende ve tıklama sayısına göre azalan düzende sıralanır:
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
SINIRLAMA
LIMIT
yan tümcesi, döndürülecek sonuç sayısını belirtmenize olanak tanır.
Aşağıda, daha fazla satır olsa bile yalnızca 50 sonuç döndüren bir örnek verilmiştir.
SELECT offer_id, impressions
FROM product_performance_view
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
yan tümcesini 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 işareti ('
) veya çift tırnak işareti ("
) 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ılabilir göreli tarih aralıklarının tam listesi için dil bilgisi bölümüne bakın.