Merchant Center Query Language

Merchant Center Sorgu Dili (MCQL), SQL'e benzer bir sorgu dilidir. Siz MCQL'yi Merchant Reports API ile birlikte kullanarak ürünleriniz ve rekabet ettikleri pazar hakkında performans verilerini alabilirsiniz.

Dilbilgisi

MCQL dil bilgisi referansı şu şekildedir (normal ifade gösterimiyle):

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

Şu simgeleri kullanabilirsiniz:

  • ?, isteğe bağlı bir öğeyi belirtir.
  • *, sıfır veya daha fazla anlamına gelir; + bir veya daha fazla anlamına gelir.
  • (xxxxxx) bir gruplandırmayı gösterir.
  • [a-z0-9], karakter aralıklarını ifade eder.
  • |, "veya" anlamına gelir.
ziyaret edin.

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ı
İÇİNDE (DEĞİL) Büyük/küçük harfe duyarlı
(DEĞİL) BEĞENİ Büyük/küçük harfe duyarlı
İÇERİR (...) Büyük/küçük harfe duyarlı
REGEXP_MATCH Her İkisi de İsteğe Bağlı

Maddeler

MCQL ile sorgulayabileceğiniz ifadeler şunlardır:

SEÇ

SELECT yan tümcesi, almak için alanların virgülle ayrılmış bir listesini alır.

Kullandığınız görünümdeki herhangi bir alanı seçebilirsiniz. Elektronik tablo kullanarak yapılmış şu alanları seçebilirsiniz:

Tek bir istekte birden fazla alan türünü sorgulayabilirsiniz. Aşağıda bununla ilgili 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 alınacağı tabloyu belirtir. Şunları yapabilirsiniz: FROM yan tümcesinde yalnızca bir alan belirtin. FROM ifadesi şunun için gereklidir: tüm sorgularda gösterilir.

WHERE

İsteğinize göre verileri filtrelemek için WHERE ifadesini kullanın. WHERE ifadesi performans için gereklidir sorgu değerleridir. Tümüne göre filtreleme yapabilirsiniz segments alanlarını temel alarak ve ek olarak metrics alanlarını SELECT ifadesini kullanarak belirtmeniz gerekir.

Aşağıda, yalnızca belirli bir öğeden gösterim döndürmek için WHERE etiketinin kullanıldığı bir örnek verilmiştir. dönem (Ağustos ayı):

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. Tam koşullar arasında AND değerini kullanın, örneğin: WHERE marketingMethod != "ADS" AND marketingMethod != "ORGANIC". AND yönergesini, tek koşul, örneğin: WHERE marketingMethod != "ADS" AND "ORGANIC".

Aşağıda, teklif başına tıklama sayısını döndüren ve ADS pazarlama yöntemi için aylık 100'den fazla tıklama Ağustos:

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. Örneğin, Operatörlerin tam listesi için grammar bölümünü inceleyin.

ORDER BY (isteğe bağlı)

ORDER BY ifadesi, sonuçları belirli bir sırada almanızı sağlar.

Sırayı fieldName, ardından ASC veya DESC ile belirtin. Yalnızca şuna göre sipariş verebilirsiniz: alanları, sorgunuzun SELECT ifadesinde belirtilmiş olmalıdır. ORDER BY varsayılan olarak ayarlandı Belirtmezseniz ASC.

Aşağıdaki sorgu, döndürülen satırları tıklama sayısına göre, en yüksekten en düşüğe:

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

Virgülle ayrılmış değer kullanarak ORDER BY yan tümcesinde birden çok alan belirtebilirsiniz liste'ye dokunun.

Örneğin, aşağıdaki sorgunun sonuçları aşağıdaki ölçütlere göre artan düzende sıralanır: offerId, ardından gösterim sayısına göre azalan sırada, daha sonra azalan sırada tıklama sayısına göre sırala:

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

LIMIT

LIMIT ifadesi, döndürülecek sonuç sayısını belirtmenizi sağlar.

Aşağıda, daha fazla satır mevcut 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. Şunu kullanmanız gerekir: Tüm performanslar için date aralığını belirtmek üzere WHERE deyimi daha fazla bilgi edinin.

Ö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

LAST_30_DAYS veya THIS_MONTH gibi göreli bir tarih aralığı belirtebilirsiniz. BETWEEN ve AND yerine DURING kullanarak:

WHERE date DURING LAST_30_DAYS

Kullanılabilir göreli tarih aralıklarının tam listesi için dilbilgisine bakın.