This page provides release notes for sunset versions of the Bid Manager API.

Navigate to our [main release notes page](https://developers.google.com/bid-manager/release-notes) 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](https://developers.google.com/bid-manager/v1.1/sdf) and [Line Item](https://developers.google.com/bid-manager/v1.1/lineitems)
services are now sunset.

Users who seek to download [Structured Data
Files](https://developers.google.com/display-video/api/structured-data-file/format) or manage line items must
instead use the [Display \& Video 360 API](https://developers.google.com/display-video/api/reference/rest).

### Known issues

None.

## August 6, 2020

### New features

#### v1.1

##### [Path \& Path Attribution Reports](https://support.google.com/displayvideo/answer/10010860)

`TYPE_PATH` and `TYPE_PATH_ATTRIBUTION` [`report
types`](https://developers.google.com/bid-manager/v1.1/queries#params.type) are now live.

This includes the addition of new field `params.options.pathQueryOptions`
(which contains fields `pathFilters` and `channelGrouping`) to
[`query`](https://developers.google.com/bid-manager/v1.1/queries#params.options.pathQueryOptions) and
[`report`](https://developers.google.com/bid-manager/v1.1/reports#params.options.pathQueryOptions) resources.

New [`Filters`](https://developers.google.com/bid-manager/v1.1/filters-metrics#filters) added:

- `FILTER_CHANNEL_GROUPING`
- `FILTER_EVENT_TYPE`
- `FILTER_PATH_EVENT_INDEX`
- `FILTER_PATH_PATTERN_ID`

New [`Metrics`](https://developers.google.com/bid-manager/v1.1/filters-metrics#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`](https://developers.google.com/bid-manager/v1.1/queries/createquery) and
[`Queries.runquery`](https://developers.google.com/bid-manager/v1.1/queries/runquery) method now
allow running queries asynchronously.

See new parameter `asynchronous` in
[`createquery`](https://developers.google.com/bid-manager/v1.1/queries/createquery#asynchronous) and
[`runquery`](https://developers.google.com/bid-manager/v1.1/queries/runquery#asynchronous) for more details.

### Known issues

None.

## January 14, 2020

### New features

#### v1.1

##### Query schedule start time

[`Queries.createquery`](https://developers.google.com/bid-manager/v1.1/queries/createquery) method now
allows specifying the date at which query run schedules start.

See new field
[`schedule.startTimeMs`](https://developers.google.com/bid-manager/v1.1/queries#schedule.startTimeMs) for
more details.

### Known issues

None.

## January 8, 2020

### New features

#### v1.1

##### Toggle targeted audience lists data

[`Queries.createquery`](https://developers.google.com/bid-manager/v1.1/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`](https://developers.google.com/bid-manager/v1.1/queries#params.options.includeOnlyTargetedUserLists)
for more details.

### Known issues

None.

## November 19, 2019

### New features

#### v1.1

> [!NOTE]
> **Note:** All changes introduced in v1.1 only affect [`Queries`](https://developers.google.com/bid-manager/v1.1/queries) and [`Reports`](https://developers.google.com/bid-manager/v1.1/reports).

##### 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`](https://developers.google.com/bid-manager/v1.1/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);

> [!NOTE]
> **Note:** Other API methods and existing queries are not affected by this change. See the following table for newly added filters.

| 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`](https://developers.google.com/bid-manager/v1.1/queries/listqueries) and
[`Reports.listreports`](https://developers.google.com/bid-manager/v1.1/reports/listreports).

In v1.1, the number of results returned by these
methods is equal to a newly added parameter
[`pageSize`](https://developers.google.com/bid-manager/v1.1/queries/listqueries#parameters) (it defaults to
`100` if not specified). Responses contain a newly added
[`nextPageToken`](https://developers.google.com/bid-manager/v1.1/queries/listqueries#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`](https://developers.google.com/bid-manager/v1.1/queries/listqueries) and
[`Reports.listreports`](https://developers.google.com/bid-manager/v1.1/reports/listreports) method
documentation for more details.

### Known issues

None.