En esta página, se incluyen notas de la versión de la API de Google Bid Manager.
Versión 2
Realizar cambios estructurales en la API, incluida la actualización del extremo del servicio y el cambio de nombre de los servicios y métodos
Se actualizaron significativamente los recursos Query y Report mediante la eliminación de campos innecesarios, la reorganización de campos existentes y el cambio de tipos de campo. Esto incluye el cambio de tipos de campos para usar objetos con nombre en lugar de una definición general de “objeto anidado”.
Se requiere la ejecución de consultas ad hoc con el método queries.run
en lugar de que se ejecuten automáticamente después de la creación.
Se reemplazó el parámetro de consulta queries.run
asynchronous
por synchronous
.
Recuperación simplificada de informes a través de los siguientes cambios:
- La adición de un método
queries.reports.get
- La adición de un parámetro de consulta
orderBy
aqueries.reports.list
- La actualización del cuerpo de la respuesta
queries.run
de un objeto vacío a una instancia del recursoReport
generado.
Se actualizaron los mensajes de error que muestra la API para que sean más específicos y proporcionen soluciones más prescriptivas.
Sigue las instrucciones que se presentan en la guía de migración de la versión 2 para migrar de la versión 1.1 a la versión 2.
Funciones nuevas
Se cambió el extremo de servicio:
Extremo de servicio v1 Extremo de servicio v2 https://www.googleapis.com/doubleclickbidmanager
https://doubleclickbidmanager.googleapis.com
Los servicios cambiaron de nombre de la siguiente manera:
Servicio v1 Servicio v2 Búsquedas consultas Informes queries.reports Se cambió el nombre de los métodos de la siguiente manera:
Se agregaron los siguientes métodos:
Servicio Métodos queries.reports get Los siguientes métodos tienen un cuerpo de respuesta nuevo:
Método Objeto de cuerpo de respuesta nuevo queries.run Informe Se quitaron los siguientes campos:
Recurso Campos queries.list
Cuerpo de la respuestakind
queries.reports.list
Cuerpo de la respuestakind
Consulta kind
reportDataEndTimeMs
reportDataStartTimeMs
timezoneCode
RunQueryRequest reportDataEndTimeMs
reportDataStartTimeMs
timezoneCode
El tipo de objeto de los siguientes campos se cambió por lo siguiente:
Recurso Campos Tipo de objeto Consulta Informe RunQueryRequest Se agregaron los siguientes parámetros de consulta del método:
Método Parámetros de consulta queries.list orderBy queries.reports.list orderBy queries.run síncrono Se quitaron los siguientes parámetros de consulta del método:
Método Parámetros de consulta queries.create asíncrono queries.run asíncrono Se agregaron los siguientes valores de filtro:
Valor del filtro FILTER_INVENTORY_MEDIA_COST_TYPE FILTER_TARGETING_EXPANSION Se quitaron los siguientes valores de filtro:
Valor del filtro FILTER_TRUEVIEW_IAR_REGION Se agregaron los siguientes valores de métrica:
Valor de la métrica METRIC_STORE_VISIT_VIEW_THROUGH_CONVERSIONS METRIC_UNIQUE_REACH_AVERAGE_VIEWABLE_IMPRESSION_FREQUENCY METRIC_UNIQUE_REACH_IMPRESSION_REACH_ADDED_WITH_CROSS_STACK_FCAP METRIC_UNIQUE_REACH_IMPRESSION_REACH_ADDED_WITH_PG_FMGMT METRIC_UNIQUE_REACH_INCREMENTAL_CLICK_REACH METRIC_UNIQUE_REACH_INCREMENTAL_IMPRESSION_REACH METRIC_UNIQUE_REACH_INCREMENTAL_TOTAL_REACH METRIC_UNIQUE_REACH_INCREMENTAL_VIEWABLE_IMPRESSION_REACH METRIC_UNIQUE_REACH_VIEWABLE_IMPRESSION_REACH
Errores conocidos
Ningún contenido de este tipo
Versión 1.1
Filtro uno a uno para informar la asignación de columnas
Los filtros asignados a varias columnas de informes ahora se asignan a columnas únicas.
Por ejemplo, en la versión 1, incluir el filtro FILTER_ADVERTISER
genera un informe con las columnas "Anunciante" además de "ID del anunciante". En la versión 1.1, todas las columnas
del informe tienen sus propios filtros. Por ejemplo, un filtro nuevo FILTER_ADVERTISER_NAME
se asigna a "Anunciante". Para obtener las columnas "ID del anunciante" y "Anunciante" en los informes, se deberán incluir los filtros FILTER_ADVERTISER
y FILTER_ADVERTISER_NAME
, respectivamente, en las solicitudes Queries.createquery
.
De manera más concreta, la solicitud createquery
hace lo siguiente:
{
...
"params": {
...
"groupBys": ["FILTER_ADVERTISER"],
"metrics": ["METRIC_IMPRESSIONS"],
...
}
...
}
genera un archivo de informe con los siguientes encabezados en la versión 1:
Advertiser,Advertiser ID,Advertiser Status,Advertiser Integration Code,Impressions
y los siguientes encabezados en la versión v1.1:
Advertiser,Impressions
El siguiente código de la versión 1 que se utiliza para obtener las columnas del informe en el ejemplo anterior:
List<String> groupBys = new ArrayList<>();
groupBys.add("FILTER_ADVERTISER");
List<String> metrics = new ArrayList<>();
metrics.add("METRIC_IMPRESSIONS");
com.google.api.services.doubleclickbidmanager.model.Parameters createQueryParameters =
new com.google.api.services.doubleclickbidmanager.model.Parameters()
.setGroupBys(groupBys)
.setMetrics(metrics);
deberá modificarse de manera similar a la siguiente en la versión 1.1 (orden de filtro de notas):
List<String> groupBys = new ArrayList<>();
groupBys.add("FILTER_ADVERTISER_NAME");
groupBys.add("FILTER_ADVERTISER");
groupBys.add("FILTER_ADVERTISER_INTEGRATION_STATUS");
groupBys.add("FILTER_ADVERTISER_INTEGRATION_CODE");
List<String> metrics = new ArrayList<>();
metrics.add("METRIC_IMPRESSIONS");
com.google.api.services.doubleclickbidmanager.model.Parameters createQueryParameters =
new com.google.api.services.doubleclickbidmanager.model.Parameters()
.setGroupBys(groupBys)
.setMetrics(metrics);
Filtro original | Filtros agregados |
---|---|
FILTER_ADVERTISER |
FILTER_ADVERTISER_NAME FILTER_ADVERTISER_INTEGRATION_CODE FILTER_ADVERTISER_INTEGRATION_STATUS |
FILTER_AD_POSITION |
FILTER_AD_POSITION_NAME |
FILTER_CARRIER |
FILTER_CARRIER_NAME |
FILTER_CHANNEL_ID |
FILTER_CHANNEL_NAME |
FILTER_CITY |
FILTER_CITY_NAME |
FILTER_COMPANION_CREATIVE_ID |
FILTER_COMPANION_CREATIVE_NAME |
FILTER_DMA |
FILTER_DMA_NAME |
FILTER_INSERTION_ORDER |
FILTER_INSERTION_ORDER_NAME |
FILTER_PARTNER |
FILTER_PARTNER_NAME FILTER_PARTNER_STATUS |
FILTER_REGION |
FILTER_REGION_NAME |
FILTER_TRUEVIEW_DMA |
FILTER_TRUEVIEW_DMA_NAME |
FILTER_TRUEVIEW_IAR_REGION |
FILTER_TRUEVIEW_IAR_REGION_NAME |
FILTER_USER_LIST_FIRST_PARTY |
FILTER_USER_LIST_FIRST_PARTY_NAME |
FILTER_USER_LIST_THIRD_PARTY |
FILTER_USER_LIST_THIRD_PARTY_NAME |
Paginación
La versión 1.1 agrega paginación a los métodos Queries.listqueries
y Reports.listreports
.
En la versión 1.1, la cantidad de resultados que muestran estos
métodos es igual a un parámetro pageSize
recién agregado (si no se especifica, el valor predeterminado es
100
). Las respuestas contienen un campo nextPageToken
recién agregado que se puede usar para recuperar el siguiente conjunto de resultados. Este campo estará en blanco si se agotaron los resultados.
El siguiente código v1 para recuperar todos los informes que pertenecen a una consulta específica:
public class GetReports {
public List<Report> getReports(DoubleClickBidManager service, long queryId) throws IOException {
ListReportsResponse reportListResponse = service.reports().listreports(queryId).execute();
return reportListResponse.getReports();
}
}
deberá modificarse de manera similar a la que se muestra en la versión 1.1 para continuar con la recuperación de todos los informes:
public class GetReports {
public List<Report> getReports(DoubleClickBidManager service, long queryId) throws IOException {
ListReportsResponse reportListResponse = service.reports().listreports(queryId).execute();
List<Report> reports = new ArrayList<>(reportListResponse.getReports());
while (reportListResponse.getNextPageToken() != null
&& reportListResponse.getNextPageToken().length() > 0) {
// Get next set of results, aka page.
reportListResponse =
service
.reports()
.listreports(queryId)
.setPageToken(reportListResponse.getNextPageToken())
.execute();
reports.addAll(reportListResponse.getReports());
}
return reports;
}
}
Consulta la documentación sobre los métodos Queries.listqueries
y Reports.listreports
para obtener más información.
Errores conocidos
Ningún contenido de este tipo
Versión 1
Esta es la versión inicial de la API.
Errores conocidos
Ningún contenido de este tipo