Este documento abarca algunas técnicas que puedes utilizar para mejorar el rendimiento de tu aplicación. En algunos casos, se usan ejemplos de otras APIs implementadas para ilustrar las ideas que se presentan. Sin embargo, se aplican los mismos conceptos a las campañas de Display y API de Video 360.
Trabaja con recursos parciales
Otra forma de mejorar el rendimiento de tus llamadas a la API es solicitar únicamente la parte de los datos que te interesa. Esto permite que tu aplicación evitar transferir, analizar y almacenar campos innecesarios, de modo que pueda usar recursos como la red, la CPU y la memoria de manera más eficiente.
Respuesta parcial
De forma predeterminada, el servidor devuelve la representación completa de un recurso después de procesar solicitudes. Para obtener un mejor rendimiento, puedes pedirle al servidor que envíe solo los campos que realmente necesitas y, en su lugar, obtendrás una respuesta parcial.
Si quieres solicitar una respuesta parcial, usa el parámetro de solicitud fields
para especificar
los campos que quieres que se devuelvan. Puedes usar este parámetro con cualquier solicitud
que devuelve datos de respuesta.
Ejemplo
En el siguiente ejemplo, se muestra el uso del parámetro fields
con el
Anuncios gráficos y API de Video 360.
Solicitud simple:esta solicitud HTTP GET
omite el parámetro fields
y
muestra el recurso completo.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1
Respuesta de recursos completos: Los datos completos de los recursos incluyen lo siguiente: junto con muchos otros que se omitieron para abreviar.
200 OK
{
"advertisers": [
{
"name": "advertisers/1",
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2019-01-01T00:00:00.000000Z",
"generalConfig": {
"domainUrl": "http://example.com",
"timeZone": "America/New_York",
"currencyCode": "USD",
"address": {
}
},
"adServerConfig": {
"thirdPartyOnlyConfig": {
}
},
"creativeConfig": {
},
"dataAccessConfig": {
"sdfConfig": {
"sdfConfig": {
"version": "VERSION_3_1"
}
}
},
"integrationDetails": {
}
},
{
"name": "advertisers/2",
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2019-01-01T00:00:00.000000Z",
"generalConfig": {
"domainUrl": "http://example.com",
"timeZone": "America/New_York",
"currencyCode": "USD",
"address": {
}
},
"adServerConfig": {
"thirdPartyOnlyConfig": {
}
},
"creativeConfig": {
},
"dataAccessConfig": {
"sdfConfig": {
"sdfConfig": {
"version": "VERSION_3_1"
}
}
},
"integrationDetails": {
}
},
...
],
"nextPageToken": "..."
}
Solicitud de una respuesta parcial: la siguiente solicitud para este mismo recurso
Usa el parámetro fields
para reducir significativamente la cantidad de datos que se muestran.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1&fields=advertisers(advertiserId,partnerId,displayName)
Respuesta parcial: en respuesta a la solicitud anterior, el servidor devuelve un respuesta que contiene un array de anunciantes reducido que incluye solo los ID de anunciante, nombre visible y propiedad de ID de socio de cada anunciante, si presente.
200 OK
{
"advertisers": [
{
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1"
},
{
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2"
},
...
]
}
Ten en cuenta que la respuesta es un objeto JSON que incluye solo los campos seleccionados. y sus objetos superiores adjuntos.
A continuación, se presentan los detalles sobre cómo dar formato al parámetro fields
.
más detalles sobre qué es lo que se devuelve exactamente en la respuesta.
Resumen de la sintaxis de los parámetros de campos
El formato del valor del parámetro de solicitud fields
se basa de manera general en XPath.
sintaxis. La sintaxis admitida se resume a continuación, y se incluyen ejemplos adicionales
que se proporciona en la siguiente sección.
Usa una lista separada por comas para seleccionar varios campos.
Usa
a/b
para seleccionar un campob
que se anida en el campoa
. usara/b/c
para seleccionar un campoc
anidado enb
.Usa un subselector para solicitar un conjunto de subcampos específicos de arrays o objetos colocando las expresiones entre paréntesis “
( )
”.Por ejemplo:
fields=advertisers(advertiserId,generalConfig/domainUrl)
solo devuelve el ID del anunciante y la URL del dominio para cada elemento de la array de anunciantes. También puedes especificar un subcampo único, en el quefields=advertisers(advertiserId)
equivale afields=advertisers/advertiserId
Más ejemplos del uso del parámetro de campos
En los siguientes ejemplos, se incluyen descripciones de cómo el valor del parámetro fields
afecta la respuesta.
- Identifica los campos que deseas que se muestren o realiza selecciones de campo.
El valor del parámetro de solicitud
fields
es una lista de campos separados por comas. cada campo se especifica en relación con la raíz de la respuesta. Por lo tanto, si realizan una operaciónlist
, la respuesta es una colección y generalmente incluye un array de recursos. Si realizas una operación que muestra un solo recurso, los campos se especifican en relación con ese recurso. Si el campo que seleccionas es (o es parte de) un array, el servidor muestra la parte seleccionada de todos los elementos del array.A continuación, se presentan algunos ejemplos a nivel de la colección:
Ejemplo Efecto advertisers
Devuelve todos los elementos de advertisers
array, incluido todos los campos de cada elemento, pero ningún otro campo.advertisers,nextPageToken
Muestra nextPageToken
. y todos los elementos en el Arrayadvertisers
.advertisers/advertiserId
Muestra solo el advertiserId
. para todos los elementos en el Arrayadvertisers
.
Cuando se agrega un campo anidado que se devuelven, la respuesta incluye los objetos superiores adjuntos. Los campos superiores no incluyen cualquier otro campo secundario, a menos también se seleccionan de forma explícita.advertisers/generalConfig/domainUrl
Muestra el campo domainUrl
. para el objetogeneralConfig
, que, a su vez, está anidada bajo el Arrayadvertisers
.A continuación, se presentan algunos ejemplos a nivel de recursos:
Ejemplo Efecto advertiserId
Muestra el campo advertiserId
. del recurso solicitado.generalConfig/domainUrl
Muestra el campo domainUrl
. para el objetogeneralConfig
en el recurso solicitado.- Solicita solo las partes de los campos específicos mediante subselecciones.
De forma predeterminada, si la solicitud especifica campos particulares, el servidor muestra los objetos o elementos del array en su totalidad. Puedes especificar una respuesta que incluye solo ciertos subcampos. Para ello, usa "
( )
" de subselección de atributos, como en el siguiente ejemplo.Ejemplo Efecto advertisers(advertiserId,generalConfig/domainUrl)
Devuelve solo el valores de advertiserId
y generalConfigdomainUrl
para cada elemento enadvertisers
.
Controla las respuestas parciales
Después de que un servidor procesa una solicitud válida que incluye la consulta fields
envía un código de estado HTTP 200 OK
junto con el parámetro
de datos no estructurados. Si el parámetro de consulta fields
tiene un error o no es válido,
el servidor muestra un código de estado HTTP 400 Bad Request
junto con un error
mensaje que te dice qué problema hubo en la selección de los campos (por ejemplo,
"Invalid field selection a/b"
).