Filter

Ad Manager API mendukung pemfilteran pada metode List. Sintaksis string filter ditentukan secara formal dalam tata bahasa EBNF.

Untuk memulai, berikut beberapa contoh kasus penggunaan umum.

Contoh Arti
orders.updateTime > "2024-01-01T00:00:00-5:00" Mencantumkan pesanan dengan updateTime setelah 1 Januari 2024 dalam Zona Waktu Standar Timur
lineItems.targeting.geoTargeting.targetedGeoIds:2840 Mencantumkan item baris dengan penargetan geografis yang berisi Amerika Serikat (ID target geografis 2480)
lineItems.displayName = "*_interstitial" Mencantumkan item baris yang memiliki nama tampilan yang diakhiri dengan string _interstitial
orders.displayName = "*video*" Mencantumkan pesanan yang memiliki nama tampilan yang berisi string video
displayName:"video" Mencantumkan pesanan yang memiliki nama tampilan yang berisi string video (sintaksis alternatif)

Literal

Nilai literal murni (contoh: 42, Hugo) adalah nilai yang akan dicocokkan. Literal yang muncul sendiri dicocokkan secara fuzzy dengan semua kolom yang didukung di resource. Referensi mendokumentasikan kolom mana yang dipertimbangkan untuk pencocokan pada metode list. Fitur ini sebanding dengan penelusuran universal di UI Ad Manager, tetapi dicakup untuk satu jenis resource.

Literal string yang berisi spasi harus diapit tanda kutip ganda (contoh: "Foo bar"). Tanda kutip tunggal tidak dapat digunakan untuk mengapit literal string.

Operator logika

Ad Manager API mendukung operator biner AND dan OR.

Operator Contoh Arti
AND a AND b Benar jika a dan b benar.
OR a OR b OR c Benar jika salah satu dari a, b, c benar.

Operator negasi

Ad Manager API menyediakan operator unary NOT dan -. Kedua istilah ini dapat digunakan secara bergantian.

Operator Contoh Arti
NOT NOT a Benar jika a tidak benar.
- -a Benar jika a tidak benar.

Operator perbandingan

Ad Manager API mendukung operator perbandingan biner =, !=, <, >, <=, dan >= untuk kolom string, numerik, stempel waktu, dan durasi.

Operator Contoh Arti
= a = true Benar jika a benar.
!= a != 42 Benar kecuali jika a sama dengan 42.
< a < 42 Benar jika a adalah nilai numerik yang kurang dari 42.
> a > "foo" Benar jika a diurutkan secara leksikonis setelah "foo".
<= a <= "foo" Benar jika a adalah "foo" atau secara leksik sebelumnya.
>= a >= 42 Benar jika a adalah nilai numerik 42 atau lebih tinggi.

Karena filter diterima sebagai string kueri, konversi jenis akan dilakukan untuk menerjemahkan string ke nilai strongly-typed yang sesuai:

  • String mengharapkan tanda kutip ganda. Contoh: "Foo bar".
  • Enum memerlukan representasi string enum (peka huruf besar/kecil).
  • Boolean mengharapkan nilai literal true dan false.
  • Angka mengharapkan representasi bilangan bulat atau float standar. Untuk float, eksponen didukung. Contoh: 2.997e9.
  • Durasi mengharapkan representasi numerik yang diikuti dengan akhiran s (untuk detik). Contoh: "20s", "1.2s".
  • Stempel waktu mengharapkan string berformat RFC-3339. Contoh: "2012-04-21T11:30:00-04:00". Selisih waktu UTC didukung.

Karakter pengganti

Saat membandingkan string untuk kesetaraan, Ad Manager API mendukung karakter pengganti menggunakan karakter *.

Contoh Arti
a = "*.foo" Benar jika a berakhir dengan ".foo".

Operator traversal

Ad Manager API mendukung operator ., yang menunjukkan perjalanan melalui pesan, peta, atau struct.

Contoh Arti
a.b = true Benar jika a memiliki kolom b boolean yang benar.
a.b > 42 Benar jika a memiliki kolom b numerik yang lebih besar dari 42.
a.b.c = "foo" Benar jika a.b memiliki kolom c string yang berupa "foo".

Pelacakan ditulis menggunakan nama kolom dari resource. Setiap layanan dapat menentukan subset kolom yang didukung untuk traversal.

Memiliki operator

Ad Manager API mendukung operator :, yang berarti "memiliki". Parameter ini dapat digunakan dengan koleksi (kolom atau peta berulang), pesan, dan String, serta memiliki perilaku yang sedikit berbeda dalam setiap kasus.

Kueri kolom string untuk melihat apakah string berisi substring yang cocok:

Contoh Arti
r.displayName:"_250x250" Benar jika kolom String r.displayName berisi substring _250x250.

Kueri kolom berulang untuk melihat apakah struktur berulang berisi elemen yang cocok:

Contoh Arti
r:42 Benar jika r berisi 42.
r.foo:42 Benar jika r berisi elemen e sedemikian rupa sehingga e.foo = 42.

Peta, struct, dan pesan dapat membuat kueri untuk mengetahui keberadaan kolom dalam peta atau nilai tertentu:

Contoh Arti
m:foo Benar jika m berisi kunci "foo".
m.foo:* Benar jika m berisi kunci "foo".
m.foo:42 Benar jika m.foo adalah 42.

Saat menjelajahi pesan, kolom hanya dianggap ada jika memiliki nilai non-default.

Batasan

Setiap layanan dapat menentukan struktur atau batasan lebih lanjut untuk kueri filter selain yang ditentukan di sini.

Pesan

Ad Manager API mendukung pengurutan pada metode List. Sintaksis untuk kolom orderBy adalah daftar nama kolom yang dipisahkan koma. Misalnya: "foo,bar".

Urutan pengurutan default adalah menaik. Untuk menentukan urutan menurun untuk kolom, tambahkan akhiran " desc". Contoh: "foo desc, bar".

Karakter spasi yang berlebihan dalam sintaksis akan diabaikan. Nilai "foo, bar desc", " foo , bar desc ", dan "foo,bar desc" semuanya setara.

Subkolom ditentukan dengan operator traversal. Contoh: foo.bar atau address.street.