This page provides release notes for sunset versions of the Bid Manager API.
Navigate to our main release notes page for all releases to live versions.
April 15, 2021
New features
Released Bid Manager API v1.1.
v1.1
SDF and Line Item services sunset
SDF and Line Item services are now sunset.
Users who seek to download Structured Data Files or manage line items must instead use the Display & Video 360 API .
Known issues
None.
August 6, 2020
New features
v1.1
Path & Path Attribution Reports
TYPE_PATH
and TYPE_PATH_ATTRIBUTION
report
types
are now live.
This includes the addition of new field params.options.pathQueryOptions
(which contains fields pathFilters
and channelGrouping
) to query
and report
resources.
New Filters
added:
-
FILTER_CHANNEL_GROUPING
-
FILTER_EVENT_TYPE
-
FILTER_PATH_EVENT_INDEX
-
FILTER_PATH_PATTERN_ID
New Metrics
added:
-
METRIC_ACTIVITY_REVENUE
-
METRIC_CONVERTING_PATHS
-
METRIC_EXPOSURE_CONVERSION_RATE
-
METRIC_LAST_TOUCH_CLICK_THROUGH_CONVERSIONS
-
METRIC_LAST_TOUCH_TOTAL_CONVERSIONS
-
METRIC_LAST_TOUCH_VIEW_THROUGH_CONVERSIONS
-
METRIC_PATH_CONVERSION_RATE
-
METRIC_PROVISIONAL_IMPRESSIONS
-
METRIC_TOTAL_EXPOSURES
-
METRIC_TOTAL_PATHS
Known issues
None.
March 20, 2020
New features
v1.1
Asynchronous query run
Queries.createquery
and Queries.runquery
method now
allow running queries asynchronously.
See new parameter asynchronous
in createquery
and runquery
for more details.
Known issues
None.
January 14, 2020
New features
v1.1
Query schedule start time
Queries.createquery
method now
allows specifying the date at which query run schedules start.
See new field schedule.startTimeMs
for
more details.
Known issues
None.
January 8, 2020
New features
v1.1
Toggle targeted audience lists data
Queries.createquery
method now
allows specifying whether audience list data should be limited to specific
insertion orders or line items.
See new field params.options.includeOnlyTargetedUserLists
for more details.
Known issues
None.
November 19, 2019
New features
v1.1
One-to-one filter to report column mapping
Filters that mapped to multiple report columns now map to single columns.
For example, in v1, including the filter FILTER_ADVERTISER
yields a report
with columns "Advertiser" in addition to "Advertiser ID". In v1.1, all
report columns have their own filters. For example, a new filter FILTER_ADVERTISER_NAME
maps to "Advertiser". To get both "Advertiser
ID" and "Advertiser" columns in reports, both filters FILTER_ADVERTISER
and FILTER_ADVERTISER_NAME
, respectively, will have to be included in Queries.createquery
requests.
More concretely, the createquery
request:
{
...
"params"
:
{
...
"groupBys"
:
[
"FILTER_ADVERTISER"
],
"metrics"
:
[
"METRIC_IMPRESSIONS"
],
...
}
...
}
generates a report file with the following headers in v1:
Advertiser,Advertiser ID,Advertiser Status,Advertiser Integration Code,Impressions
and the following headers in v1.1:
Advertiser,Impressions
The following v1 code used to get the report columns:
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
);
will have to be modified similar to the following in v1.1 (note filter ordering):
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
);
Original filter | Added filters |
---|---|
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
|
Pagination
v1.1 adds pagination to methods Queries.listqueries
and Reports.listreports
.
In v1.1, the number of results returned by these
methods is equal to a newly added parameter pageSize
(it defaults to 100
if not specified). Responses contain a newly added nextPageToken
field that
can be used to retrieve the next set of results. This field is blank if results
have been exhausted.
The following v1 code to retrieve all reports belonging to a specific query:
public
class
GetReports
{
public
List<Report>
getReports
(
DoubleClickBidManager
service
,
long
queryId
)
throws
IOException
{
ListReportsResponse
reportListResponse
=
service
.
reports
().
listreports
(
queryId
).
execute
();
return
reportListResponse
.
getReports
();
}
}
will have to be modified similar to the following in v1.1, in order to continue retrieving all reports:
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, or page, of results.
reportListResponse
=
service
.
reports
()
.
listreports
(
queryId
)
.
setPageToken
(
reportListResponse
.
getNextPageToken
())
.
execute
();
reports
.
addAll
(
reportListResponse
.
getReports
());
}
return
reports
;
}
}
See Queries.listqueries
and Reports.listreports
method
documentation for more details.
Known issues
None.