After you complete the prerequisites, generate the OAuth 2.0 credentials, and configure your client, you can use the following code samples to create and retrieve a Bid Manager API reporting query.
For a full list of Bid Manager API methods, see the reference documentation.
Create a query
Here's an example of how to create a Display & Video 360 reporting query:
Java
// Display name of the query to create. String displayName = display-name; // Advertiser ID and campaign ID by which to filter report data. String advertiserId = advertiser-id; String campaignId = campaign-id; // Create the query structure. Query query = new Query(); // Build and set the metadata object. QueryMetadata metadata = new QueryMetadata(); metadata.setTitle(displayName); metadata.setDataRange(new DataRange().setRange("LAST_7_DAYS")); metadata.setFormat("CSV"); query.setMetadata(metadata); // Build the parameters object. Parameters parameters = new Parameters(); parameters.setType("STANDARD"); // Build and assign list of standard reporting dimensions to parameters object. ArrayList<String> dimensions = new ArrayList<String>(); dimensions.add("FILTER_ADVERTISER_NAME"); dimensions.add("FILTER_ADVERTISER"); dimensions.add("FILTER_ADVERTISER_CURRENCY"); dimensions.add("FILTER_INSERTION_ORDER_NAME"); dimensions.add("FILTER_INSERTION_ORDER"); dimensions.add("FILTER_LINE_ITEM_NAME"); dimensions.add("FILTER_LINE_ITEM"); parameters.setGroupBys(dimensions); // Build a list of filters. ArrayList<FilterPair> filters = new ArrayList<FilterPair>(); filters.add(new FilterPair().setType("FILTER_ADVERTISER").setValue(advertiserId)); filters.add(new FilterPair().setType("FILTER_MEDIA_PLAN").setValue(campaignId)); // Set filters in parameters object. parameters.setFilters(filters); // Build and assign list of standard reporting metrics to parameters object. ArrayList<String> metrics = new ArrayList<String>(); metrics.add("METRIC_IMPRESSIONS"); metrics.add("METRIC_BILLABLE_IMPRESSIONS"); metrics.add("METRIC_CLICKS"); metrics.add("METRIC_CTR"); metrics.add("METRIC_TOTAL_CONVERSIONS"); metrics.add("METRIC_LAST_CLICKS"); metrics.add("METRIC_LAST_IMPRESSIONS"); metrics.add("METRIC_REVENUE_ADVERTISER"); metrics.add("METRIC_MEDIA_COST_ADVERTISER"); parameters.setMetrics(metrics); // Set parameters object in query. query.setParams(parameters); // Build and set the schedule object. QuerySchedule schedule = new QuerySchedule(); schedule.setFrequency("ONE_TIME"); query.setSchedule(schedule); // Create the query. Query queryResponse = service.queries().create(query).execute(); // Log query creation. System.out.printf("Query %s was created.%n", queryResponse.getQueryId());
Python
# Display name of the query to create. display_name = display-name # Advertiser ID and campaign ID by which to filter report data. advertiser_id = advertiser-id campaign_id = campaign-id # Build query object with basic dimension and metrics values. query_obj = { "metadata": { "title": display_name, "dataRange": {"range": "LAST_7_DAYS"}, "format": "CSV", }, "params": { "type": "STANDARD", "groupBys": [ "FILTER_ADVERTISER_NAME", "FILTER_ADVERTISER", "FILTER_ADVERTISER_CURRENCY", "FILTER_INSERTION_ORDER_NAME", "FILTER_INSERTION_ORDER", "FILTER_LINE_ITEM_NAME", "FILTER_LINE_ITEM", ], "filters": [ {"type": "FILTER_ADVERTISER", "value": advertiser_id}, {"type": "FILTER_MEDIA_PLAN", "value": campaign_id} ], "metrics": [ "METRIC_IMPRESSIONS", "METRIC_BILLABLE_IMPRESSIONS", "METRIC_CLICKS", "METRIC_CTR", "METRIC_TOTAL_CONVERSIONS", "METRIC_LAST_CLICKS", "METRIC_LAST_IMPRESSIONS", "METRIC_REVENUE_ADVERTISER", "METRIC_MEDIA_COST_ADVERTISER", ], }, "schedule": {"frequency": "ONE_TIME"} } # Create query object. query_response = service.queries().create(body=query_obj).execute() # Print new query ID. print(f'Query {query_response["queryId"]} was created.')
PHP
// Display name of the query to create. $displayName = display-name; // Advertiser ID and campaign ID by which to filter data. $advertiserId = advertiser-id; $campaignId = campaign-id; // Create the query structure. $query = new Google_Service_DoubleClickBidManager_Query(); // Build and set the metadata object. $metadata = new Google_Service_DoubleClickBidManager_QueryMetadata(); $metadata->setTitle($displayName); $metadata->setFormat("CSV"); $dataRange = new Google_Service_DoubleClickBidManager_DataRange(); $dataRange->setRange("LAST_7_DAYS"); $metadata->setDataRange($dataRange); $query->setMetadata($metadata); // Build the parameters object. $parameters = new Google_Service_DoubleClickBidManager_Parameters(); $parameters->setType("STANDARD"); // Build and assign list of standard reporting dimensions. $parameters->setGroupBys( array( "FILTER_ADVERTISER_NAME", "FILTER_ADVERTISER", "FILTER_ADVERTISER_CURRENCY", "FILTER_INSERTION_ORDER_NAME", "FILTER_INSERTION_ORDER", "FILTER_LINE_ITEM_NAME", "FILTER_LINE_ITEM" ) ); // Build and assign a list of filters. $filters = array(); $advertiserFilterPair = new Google_Service_DoubleClickBidManager_FilterPair(); $advertiserFilterPair->setType("FILTER_ADVERTISER"); $advertiserFilterPair->setValue($advertiserId); array_push($filters, $advertiserFilterPair); $campaignFilterPair = new Google_Service_DoubleClickBidManager_FilterPair(); $campaignFilterPair->setType("FILTER_MEDIA_PLAN"); $campaignFilterPair->setValue($campaignId); array_push($filters, $campaignFilterPair); $parameters->setFilters($filters); // Build and assign list of standard reporting metrics. $parameters->setMetrics( array( "METRIC_IMPRESSIONS", "METRIC_BILLABLE_IMPRESSIONS", "METRIC_CLICKS", "METRIC_CTR", "METRIC_TOTAL_CONVERSIONS", "METRIC_LAST_CLICKS", "METRIC_LAST_IMPRESSIONS", "METRIC_REVENUE_ADVERTISER", "METRIC_MEDIA_COST_ADVERTISER" ) ); // Set parameters object in query. $query->setParams($parameters); // Build and set the schedule object. $schedule = new Google_Service_DoubleClickBidManager_QuerySchedule(); $schedule->setFrequency("ONE_TIME"); $query->setSchedule($schedule); // Call the API, creating the query. $queryResult = $this->service->queries->create($query); printf('Query %s was created.
', $queryResult['queryId']);
Retrieve a query
Here's an example of how to retrieve a Display & Video 360 reporting query:
Java
// ID of query to retrieve. Long queryId = query-id; // Retrieve Display & Video 360 query. Query queryResponse = service.queries().get(queryId).execute(); // Print display name of query. System.out.printf( "Query ID %s was retrieved with display name %s.%n", queryResponse.getQueryId(), queryResponse.getMetadata().getTitle() );
Python
# ID of query to retrieve. query_id = query-id # Retrieve Display & Video 360 query query = service.queries().get(queryId=query_id).execute() # Print display name of query. print( f'Query ID {query_id} retrieved with display name' f' {query["metadata"]["title"]}.' )
PHP
// ID of a query to retrieve. $queryId = query-id; // Retrieve Display & Video 360 query. $queryResponse = $this->service->queries->get($queryId); printf( 'Query ID %s was retrieved with display name %s.
', $queryId, $queryResponse->getMetadata()->getTitle() );