A maioria dos serviços na API Display & Video 360 oferece um método LIST
para recuperação em massa de recursos. Esses métodos LIST
geralmente oferecem suporte à filtragem de resultados usando um
parâmetro de consulta filter
. Use esse parâmetro para otimizar o uso da API, recuperando apenas o que você precisa.
Este guia mostra como usar o parâmetro filter
de maneira eficaz.
Estrutura do filtro
Um valor de parâmetro filter
é uma string que consiste em uma ou mais restrições
que podem ser combinadas com os operadores AND
ou OR
e agrupadas usando
parênteses.
As restrições têm o formato {field} {operator} {value}
. Veja um
exemplo:
entityStatus="ENTITY_STATUS_ACTIVE"
O comprimento da string de filtro não pode exceder 500 caracteres. Se a string de filtro tiver mais de 500 caracteres, faça o seguinte:
- Divida a lógica em várias strings de filtro e extraia os recursos usando
solicitações
LIST
separadas. - Remova parte da lógica da string de filtro e use-a para filtrar os recursos recuperados localmente.
Encapsule os valores de restrição entre aspas para garantir que a lógica seja aplicada corretamente.
Use a codificação de URL nas strings de filtro se você estiver fazendo chamadas LIST
diretamente sem
usar uma biblioteca de cliente.
Consulte Lógica entre restrições para mais detalhes sobre a formatação das consultas.
Campos que aceitam filtros
Os campos filtráveis de cada método LIST
são listados na descrição do parâmetro filter
do método. Na maioria dos casos, é possível filtrar um subconjunto dos campos padrão de um recurso. Em alguns casos raros, há outros campos que podem ser usados
apenas para filtrar.
Cada campo na descrição do parâmetro aceita pelo menos um dos operadores comparáveis a seguir:
Operadores semelhantes | ||
---|---|---|
EQUALS (=)
|
O valor do campo de recurso é igual ao valor fornecido.
Exemplo: |
|
LESS THAN OR EQUAL TO (<=)
|
O valor do campo de recurso é menor ou igual ao valor fornecido. Usado com frequência
ao comparar uma data ou data/hora.
Exemplo: |
|
GREATER THAN OR EQUAL TO (>=)
|
O valor do campo de recurso é maior ou igual ao valor especificado. Usado com frequência
ao comparar uma data ou data/hora.
Exemplo: |
|
HAS (:)
|
O valor do campo de recurso contém o valor fornecido. Se o campo de recurso for uma
string, ele vai verificar se o valor fornecido é uma substring existente. Se o campo de recurso for uma matriz, ele vai verificar se a matriz contém o valor fornecido.
Exemplo: |
Se nenhum operador for especificado para o campo na descrição do parâmetro, só será possível usar o operador EQUALS (=)
. Alguns campos aceitam vários operadores.
Alguns campos filtráveis, como os de datas e horários, exigem que o valor comparável siga um formato específico. O formato é especificado ao lado
do campo na descrição do parâmetro filter
.
Lógica entre restrições
É possível combinar várias restrições para restringir ou ampliar a resposta da sua solicitação
LIST
.
Geralmente, é possível combinar várias restrições com operadores lógicos
AND
e OR
. Cada método LIST
especifica quais operadores são compatíveis.
Alguns métodos só aceitam uma restrição no parâmetro filter
.
Considere as seguintes restrições ao criar strings de filtro com operadores lógicos AND
ou OR
:
AND
precisa ser usado entre restrições ou grupos de restrições que filtram campos diferentes ou filtram o mesmo campo de maneira diferente. Confira alguns exemplos: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
precisa ser usado entre restrições individuais que filtram pelo mesmo campo. Confira um exemplo:(entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED") AND (lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" OR lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT")
Não é possível usar
OR
para combinar dois grupos de restrições. Use várias solicitaçõesLIST
com valores de filtro diferentes. Por exemplo, use as seguintes solicitaçõesLIST
separadas:(lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123")
(lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")
Não use o operador
OR
para combiná-los:(lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT" AND insertionOrderId="123") OR (lineItemType="LINE_ITEM_TYPE_VIDEO_DEFAULT" AND insertionOrderId="456")
Os parênteses podem ser implícitos se você não os usar para agrupar restrições em uma string de filtro. Por exemplo, a seguinte string de filtro:
updateTime>="2023-03-01T12:00:00Z" AND entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT"
é interpretada como:
updateTime>="2023-03-01T12:00:00Z" AND (entityStatus="ENTITY_STATUS_ACTIVE" OR entityStatus="ENTITY_STATUS_PAUSED" OR entityStatus="ENTITY_STATUS_DRAFT")