Liste yanıtlarını filtrele

Display & Video 360 API'sindeki çoğu hizmet, kaynakları toplu olarak almak için bir LIST yöntemi sağlar. Bu LIST yöntemleri genellikle bir filter sorgu parametresi aracılığıyla sonuçları filtrelemeyi destekler. Yalnızca ihtiyacınız olan bilgileri alarak API kullanımınızı optimize etmek için bu parametreyi kullanın.

Bu kılavuzda, filter parametresinin nasıl etkili bir şekilde kullanılacağı gösterilmektedir.

Filtre yapısı

filter parametre değeri, AND veya OR operatörleriyle birleştirilebilen ve parantez kullanılarak gruplandırılabilen bir veya daha fazla kısıtlamadan oluşan bir dizedir.

Kısıtlamalar {field} {operator} {value} şeklindedir. Aşağıda bir örnek verilmiştir:

entityStatus="ENTITY_STATUS_ACTIVE"

Filtre dizesi uzunluğu 500 karakteri aşamaz. Filtre dizeniz 500 karakteri aşıyorsa aşağıdakilerden birini yapın:

  • Mantığı birden fazla filtre dizesine bölün ve ayrı LIST istekleri kullanarak kaynakları alın.
  • Filtre dizesindeki mantığın bir kısmını kaldırın ve alınan kaynakları yerel olarak filtrelemek için kullanın.

Mantığın doğru uygulandığından emin olmak için kısıtlama değerlerini tırnak içine alın.

İstemci kitaplığı kullanmadan doğrudan LIST çağrıları yapıyorsanız filtre dizelerinizi URL olarak kodlayın.

Sorgularınızı biçimlendirme hakkında daha fazla bilgi için Kısıtlamalar arasındaki mantık bölümüne bakın.

Filtrelenebilir alanlar

Her LIST yönteminin filtrelenebilir alanları, yöntemin filterparametre açıklamasında listelenir. Çoğu durumda, bir kaynağın standart alanlarının alt kümesine göre filtreleme yapabilirsiniz. Bazı nadir durumlarda, yalnızca filtreleme için kullanabileceğiniz ek alanlar vardır.

Parametrenin açıklamasındaki her alan, aşağıdaki karşılaştırılabilir operatörlerden en az birini destekler:

Karşılaştırılabilir Operatörler
EQUALS (=) Kaynak alanı değeri, belirtilen değere eşit.

Örnek: entityStatus="ENTITY_STATUS_ACTIVE"

LESS THAN OR EQUAL TO (<=) Kaynak alanı değeri, belirtilen değerden düşük veya buna eşit. Genellikle bir tarihi veya tarih saatini karşılaştırırken kullanılır.

Örnek: updateTime<="2023-04-01T12:00:00Z"

GREATER THAN OR EQUAL TO (>=) Kaynak alanı değeri, belirtilen değerden büyük veya bu değere eşittir. Genellikle bir tarihi veya tarih saatini karşılaştırırken kullanılır.

Örnek: updateTime>="2023-03-01T12:00:00Z"

HAS (:) Kaynak alanı değeri, belirtilen değeri içerir. Kaynak alanı bir dize ise verilen değerin mevcut bir alt dize olup olmadığını kontrol eder. Kaynak alanı bir diziyse dizi içinde belirtilen değerin bulunup bulunmadığını kontrol eder.

Örnek: lineItemIds:"1234"

Parametrenin açıklamasında alan için operatör belirtilmemişse yalnızca EQUALS (=) operatörünü kullanabilirsiniz. Bazı alanlar birden fazla operatörü destekler.

Tarih ve saat alanları gibi filtrelenebilir bazı alanlar, karşılaştırılabilir değerin belirli bir biçime uymasını gerektirir. Biçim, filter parametresi açıklamasında alanın yanında belirtilir.

Kısıtlamalar arasındaki mantık

LIST isteğinizden gelen yanıtı daraltmak veya genişletmek için birden fazla kısıtlamayı birleştirebilirsiniz.

Genellikle birden fazla kısıtlamayı AND ve OR mantıksal operatörleriyle birleştirebilirsiniz. Her LIST yöntemi, desteklediği operatörleri belirtir. Bazı yöntemler, filter parametresinde yalnızca tek bir kısıtlama kullanılmasını destekler.

AND veya OR mantıksal operatörleriyle filtre dizeleri oluştururken aşağıdaki kısıtlamaları göz önünde bulundurun:

  • AND, farklı alanları filtreleyen veya aynı alanı farklı şekilde filtreleyen kısıtlamalar ya da kısıtlama grupları arasında kullanılmalıdır. Aşağıda bazı örnekler verilmiştir:
    • updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE"
    • updateTime>="2023-03-01T12:00:00Z" AND updateTime<="2023-04-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED")
  • OR, aynı alana göre filtre uygulayan ayrı kısıtlamalar arasında kullanılmalıdır. Aşağıda bir örnek verilmiştir:
    • (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED") AND (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" OR lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT")
  • İki kısıtlama grubunu birleştirmek için OR işaretini kullanamazsınız. Bunun yerine farklı filtre değerlerine sahip birden fazla LIST isteği kullanın. Örneğin, aşağıdaki ayrı LIST isteklerini kullanın:

    • (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123")
    • (lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")

    Bunları birleştirmek için OR operatörünü kullanmayın:

    (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123") OR (lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")

  • Filtre dizesindeki kısıtlamaları gruplandırmak için parantezleri kullanmazsanız parantezler ima edilebilir. Örneğin, aşağıdaki filtre dizesi:

    updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT"

    şu şekilde yorumlanır:

    updateTime>="2023-03-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT")