Filtreler

Ad Manager API, List yöntemlerinde filtrelemeyi destekler. Filtre dizesi söz dizimi, EBNF dilbilgisinde resmi olarak tanımlanır.

Başlamak için yaygın kullanım alanlarından bazı örnekleri aşağıda bulabilirsiniz.

Örnek Anlamı
orders.updateTime > "2024-01-01T00:00:00-5:00" Doğu Standart Saat Dilimi'nde 1 Ocak 2024'ten sonra updateTime içeren siparişleri listeler
lineItems.targeting.geoTargeting.targetedGeoIds:2840 ABD'yi içeren coğrafi hedeflemeye sahip satır öğelerini listeler (coğrafi hedef kimliği 2480)
lineItems.displayName = "*_interstitial" Görünen adı _interstitial dizesiyle biten satır öğelerini listeler.
orders.displayName = "*video*" Görünen adı video dizesini içeren siparişleri listeler
displayName:"video" Görünen adı video (alternatif söz dizimi) dizesini içeren siparişleri listeler

Değişmez değerler

Yalın değişmez değer (örnekler: 42, Hugo), eşleştirilecek bir değerdir. Tek başına görünen değişken değerler, bir kaynakta desteklenen tüm alanlarla eşleştirilir. Kaynaklar, list yönteminde eşleşme için hangi alanların dikkate alındığını belirtir. Bu özellik, Ad Manager kullanıcı arayüzündeki evrensel arama ile benzerdir ancak tek bir kaynak türüne odaklanmıştır.

Boşluk içeren dize değişmez değerleri çift tırnak içine alınmalıdır (örnek: "Foo bar"). Dize değişmez değerlerini sarmalamak için tek tırnak işareti kullanılamaz.

Mantıksal operatörler

Ad Manager API, AND ve OR ikili operatörlerini destekler.

Operatör Örnek Anlamı
AND a AND b a ve b doğruysa doğru değerini döndürür.
OR a OR b OR c a, b, c değerlerinden herhangi biri doğruysa doğru değerini döndürür.

İnkar operatörleri

Ad Manager API, NOT ve - tek adımlı operatörlerini sağlar. Bu terimler birbirinin yerine kullanılabilir.

Operatör Örnek Anlamı
NOT NOT a a doğru değilse doğru değerini döndürür.
- -a a doğru değilse doğru değerini döndürür.

Karşılaştırma operatörleri

Ad Manager API, dize, sayı, zaman damgası ve süre alanları için =, !=, <, >, <= ve >= ikili karşılaştırma operatörlerini destekler.

Operatör Örnek Anlamı
= a = true a doğruysa doğru değerini döndürür.
!= a != 42 a 42'ye eşit olmadığı sürece doğrudur.
< a < 42 a 42'den küçük bir sayısal değerse doğru değerini alır.
> a > "foo" a, sözcüksel olarak "foo" ifadesinden sonra sıralanırsa doğru değerini döndürür.
<= a <= "foo" a "foo" ise veya söz dizimi açısından ondan önce geliyorsa doğru değerini alır.
>= a >= 42 a 42 veya daha yüksek bir sayısal değerse doğru değerini döndürür.

Filtreler sorgu dizesi olarak kabul edildiğinden, dizenin uygun güçlü türe sahip değere dönüştürülmesi için tür dönüştürme işlemi gerçekleşir:

  • Dizelerde çift tırnak işareti olması gerekir. Örnek: "Foo bar".
  • Listeler, listenin dize temsilini (büyük/küçük harfe duyarlı) bekler.
  • Boole değerleri için true ve false değişmez değerleri beklenir.
  • Sayılarda, standart tam sayı veya kayan noktalı gösterim beklenir. Kayan noktalı sayılar için üsler desteklenir. Örnek: 2.997e9.
  • Süreler için sayısal bir temsilin ardından s son eki (saniye cinsinden) beklenir. Örnekler: "20s", "1.2s".
  • Zaman damgaları, RFC-3339 biçimli bir dize bekler. Örnek: "2012-04-21T11:30:00-04:00". UTC farkları desteklenir.

Joker Karakterler

Ad Manager API, eşitlik için dizeleri karşılaştırırken * karakterini kullanan joker karakterleri destekler.

Örnek Anlamı
a = "*.foo" a ".foo" ile bitiyorsa doğru değerini döndürür.

Geçiş operatörü

Ad Manager API, bir mesaj, harita veya yapı içinde gezinmeyi belirten . operatörünü destekler.

Örnek Anlamı
a.b = true a alanında doğru bir boole b alanı varsa doğru değerini alır.
a.b > 42 a öğesinde 42'den büyük bir sayısal b alanı varsa doğru değerini döndürür.
a.b.c = "foo" a.b'te "foo" olan bir c dizesi alanı varsa doğru değerini döndürür.

Geçiş, kaynaktaki alan adları kullanılarak yazılır. Bağımsız hizmetler, geçiş için desteklenen bir alan alt kümesi belirtebilir.

Operatör var

Ad Manager API, "sahip" anlamına gelen : operatörünü destekler. Koleksiyonlar (yinelenen alanlar veya haritalar), mesajlar ve dizelerle kullanılabilir ve her durumda biraz farklı davranır.

Dizinin eşleşen bir alt dize içerip içermediğini görmek için dize alanı sorgusu:

Örnek Anlamı
r.displayName:"_250x250" Dize alanı r.displayName _250x250 alt dizesini içeriyorsa doğru değerini döndürür.

Yinelenen yapının eşleşen bir öğe içerip içermediğini görmek için yinelenen alanlar sorgusu:

Örnek Anlamı
r:42 r 42 değerini içeriyorsa doğru değerini döndürür.
r.foo:42 r, e.foo = 42 olan bir e öğesi içeriyorsa doğru değerini döndürür.

Haritalar, yapılar ve mesajlar, haritadaki bir alanın veya belirli bir değerin varlığını sorgulayabilir:

Örnek Anlamı
m:foo m "foo" anahtarını içeriyorsa doğru değerini döndürür.
m.foo:* m "foo" anahtarını içeriyorsa doğru değerini döndürür.
m.foo:42 m.foo 42 ise doğru değerini döndürür.

İletiler arasında gezinirken bir alanın mevcut olduğu, yalnızca varsayılan olmayan bir değere sahipse kabul edilir.

Sınırlamalar

Her hizmet, burada tanımlananlara ek olarak filtre sorguları için daha fazla yapı veya sınırlama belirtebilir.

Sipariş

Ad Manager API, List yöntemlerinde sıralamayı destekler. orderBy alanlarının söz dizimi, alan adlarının virgülle ayrılmış bir listesidir. Örneğin: "foo,bar".

Varsayılan sıralama düzeni artan düzendir. Bir alan için azalan düzen belirtmek üzere " desc" son eki ekleyin. Örneğin: "foo desc, bar".

Söz diziminde gereksiz boşluk karakterleri yoksayılır. "foo, bar desc", " foo , bar desc " ve "foo,bar desc" değerleri birbirine eşdeğerdir.

Alt alanlar, geçiş operatörü ile belirtilir. Örneğin, foo.bar veya address.street.