Merchant Center Sorgu Dili

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 Merchant Reports API ile kullanabilirsiniz.

Dilbilgisi

MCQL dil bilgisi referansı (normal ifade gösteriminde) 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 simgeleri kullanabilirsiniz:

  • ?, isteğe bağlı bir öğeyi gösterir.
  • * sıfır veya daha fazla, + ise bir veya daha fazla anlamına gelir.
  • (xxxxxx) bir gruplandırmayı gösterir.
  • [a-z0-9], karakter aralıklarını belirtir.
  • |, "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ı
(NOT) LIKE Büyük/küçük harfe duyarlı
İÇERİR (...) Büyük/küçük harfe duyarlı
REGEXP_MATCH İsteğe bağlı olarak her ikisi de

Maddeler

MCQL ile sorgulayabileceğiniz yan tümceler şunlardır:

SEÇ

SELECT yan tümcesi, alınacak alanların virgülle ayrılmış bir listesini alır.

Kullandığınız görünümden istediğiniz alanı seçebilirsiniz. Seçebileceğiniz alanlardan bazıları şunlardır:

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 ifadesi, istekte verilerin alınacağı tabloyu belirtir. FROM yan tümcesinde yalnızca bir alan belirtebilirsiniz. FROM ifadesi tüm sorgular için gereklidir.

WHERE

İsteğinizle ilgili verileri filtrelemek için WHERE ifadesini kullanın. Performans sorguları için WHERE ifadesi gereklidir. Tüm segments alanlarına ve SELECT ifadesinde belirtmeniz durumunda 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 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 fazla 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şulda değerler arasında AND kullanamazsınız. Örneğin: WHERE marketing_method != "ADS" AND "ORGANIC".

Aşağıda, Ağustos ayı boyunca ADS pazarlama yöntemi için 100'den fazla tıklama alan tekliflerin 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 ifadesi OR özelliğini 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 ifadesi, sonuçları belirli bir sırada almanızı sağlar.

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. 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 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ış 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 son olarak 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 ifadesi, 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 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öreceli 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.