Page Summary
-
Code samples in Java, Python, and PHP are provided for creating and retrieving Bid Manager API reporting queries.
-
Before using the code samples, you must complete prerequisites, generate OAuth 2.0 credentials, and configure your client.
-
Examples demonstrate how to define query metadata, parameters (including dimensions, filters, and metrics), and schedule.
-
Examples show how to retrieve a specific query using its ID.
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() );

