Mejor rendimiento

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 campo b que se anida en el campo a. usar a/b/c para seleccionar un campo c anidado en b.

  • 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 que fields=advertisers(advertiserId) equivale a fields=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ón list, 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 Array advertisers.
advertisers/advertiserId Muestra solo el advertiserId. para todos los elementos en el Array advertisers.

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 objeto generalConfig, que, a su vez, está anidada bajo el Array advertisers.

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 objeto generalConfig 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 generalConfig domainUrl para cada elemento en advertisers .
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").