A API REST do Ad Manager usa máscaras de campo para leituras e gravações parciais. Isso pode melhorar o desempenho limitando a quantidade de dados transferidos. Máscaras de campo são representadas por uma lista separada por vírgulas de nomes de campos. Exemplo:
startTime,endTime,targeting.geoTargeting
Ler máscaras
As máscaras de leitura controlam quais campos estão presentes em uma resposta da API. Você pode definir um máscara de leitura na solicitação de duas maneiras:
O parâmetro de consulta
fields
:curl https://admanager.googleapis.com/v1/networks/123456/adUnits?fields=adUnits,nextPageToken,totalSize
O cabeçalho HTTP
X-Goog-FieldMask
:curl -H "X-Goog-FieldMask: adUnits,nextPageToken,totalSize" \ https://admanager.googleapis.com/v1/networks/123456/adUnits
Máscaras de leitura padrão
Alguns métodos de API incluem uma máscara de campo padrão para campos que são caros
para retornar. Os métodos de lista são um exemplo disso. Por padrão, eles não incluem
totalSize
.
Esses campos devem ser explicitamente solicitados na máscara de campo por nome ou por
usando o caractere curinga *
.
Atualizar máscaras
As máscaras de atualização controlam quais campos serão alterados em uma atualização (PATCH
)
solicitação. Quando uma máscara de atualização é definida, somente os campos na máscara são atualizados
independentemente de quais campos são definidos no corpo da solicitação.
As máscaras de atualização são definidas como parâmetros de consulta. Exemplo:
curl -X PATCH https://admanager.googleapis.com/v1/networks/1234/order/4567?updateMask=displayName
Travessia de campos
As máscaras de campo podem especificar campos dentro de uma entidade usando o caractere .
para
travessia. Essa é a mesma sintaxe usada pelo
Filtros.
As máscaras de campo são sempre relativas ao objeto de resposta. Por exemplo, uma máscara para
ler um LineItem
pode incluir primaryGoal.units
. A máscara correspondente
para listagem
LineItems
é lineItems.primaryGoal.units
.
É possível especificar um campo como um todo ou um dos subcampos. Ambos
primaryGoal
e primaryGoal.units
são válidos.
Isso também se aplica a campos repetidos. Uma máscara de campo LineItem
de
creativePlaceholders.size
é válido e inclui apenas o campo size
para cada CreativePlaceholder
.
Caracteres curinga
As máscaras de campo são compatíveis com o caractere *
, que indica todos os campos na mensagem.
Os exemplos a seguir demonstram o uso de caracteres curinga ao listar
Orders
Esse método tem uma máscara de leitura padrão que:
não incluem o campo total_size
.
Exemplo | Significado |
---|---|
* |
Inclui todos os campos, incluindo total_size |
orders |
Inclui apenas o campo orders e todos os subcampos |
orders.* |
Inclui apenas o campo orders e todos os subcampos |
Campos inválidos
Se uma máscara de campo se referir a um valor que não existe, a API responderá
com um erro INVALID_ARGUMENT
.