Bid Manager API Query
資源代表您在 UI 中看到的內容
多媒體和「影片 360」報表。執行這項查詢以產生 Report
資源。如果成功,Report
資源會提供
可以下載產生的報表
本頁說明如何建構及建立 Query
資源。
選擇篩選器、維度和指標
請在每個 Query
中,提供下列 Parameters
值:
params
欄位可讓您調整報表傳回的資料:
filters
會限制資料範圍。篩選器會根據 和FilterPair
物件的結構,其中type
是 Filter 列舉,value
是識別字串,例如相關 資源 IDgroupBys
會定義報表的維度。 由 Filter 列舉清單表示。metrics
會定義要填入報表的資料。 以指標列舉清單表示。
如要進一步瞭解 Query
結構,請參閱參考資料
說明文件。
選擇這些值時,請考量您的 ReportType
,
這項資訊會顯示在 type
欄位中。您選取的指標和篩選條件
值必須與報表類型相容
以便順利產生
建立查詢
決定報表的核心結構後,您就可以建立查詢。
以下說明如何製作內含過去七天資料的臨時報表 天:
// Display name of the query to create.
String displayName =display-name ;
// The report type.
String reportType =report-type ;
// The advertisers and campaigns by which to filter report data.
List<String> advertiserIdFilters =
Arrays.asList(advertiser-id,... );
List<String> campaignIdFilters =
Arrays.asList(campaign-id,... );
// The dimensions and metrics for the report.
List<String> dimensions = Arrays.asList(dimension,... );
List<String> metrics = Arrays.asList(metric,... );
// Build a list of filter pairs from given IDs.
List<FilterPair> filters = new ArrayList<FilterPair>();
if (advertiserIdFilters != null) {
for (String advertiserId : advertiserIdFilters) {
filters.add(
new FilterPair().setType("FILTER_ADVERTISER").setValue(advertiserId));
}
}
if (campaignIdFilters != null) {
for (String campaignId : campaignIdFilters) {
filters.add(
new FilterPair().setType("FILTER_MEDIA_PLAN").setValue(campaignId));
}
}
// 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(reportType);
parameters.setGroupBys(dimensions);
parameters.setFilters(filters);
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());
# Display name of the query to create.
display_name =display-name
# The report type.
report_type =report-type
# The advertisers and campaigns by which to filter report data.
filtered_advertiser_ids = [advertiser-id,... ]
filtered_campaign_ids = [campaign-id,... ]
# The dimensions and metrics for the report.
dimensions = [dimension,... ]
metrics = [metric,... ]
# Build list of FilterPair objects.
filters = []
if filtered_campaign_ids != None:
filters.extend([
{"type": "FILTER_MEDIA_PLAN", "value": id}
for id in filtered_campaign_ids
])
if filtered_advertiser_ids != None:
filters.extend([
{"type": "FILTER_ADVERTISER", "value": id}
for id in filtered_advertiser_ids
])
# Build query object.
query_obj = {
"metadata": {
"title": display_name,
"dataRange": {"range": "LAST_7_DAYS"},
"format": "CSV",
},
"params": {
"type": report_type,
"groupBys": dimensions,
"filters": filters,
"metrics": metrics,
},
"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.')
// Display name of the query to create.
$displayName =display-name ;
// The report type.
$reportType =report-type ;
// Advertiser ID and campaign ID by which to filter data.
$advertiserIdFilters = array(advertiser-id,... );
$campaignIdFilters = array(campaign-id,... );
// The dimensions and metrics for the report.
$dimensions = array(dimension,... );
$metrics = array(metric,... );
// Build a list of filter pairs from given IDs.
$filters = array();
foreach ($advertiserIdFilters as $advertiserId) {
$filterPair = new Google_Service_DoubleClickBidManager_FilterPair();
$filterPair->setType("FILTER_ADVERTISER");
$filterPair->setValue($advertiserId);
array_push($filters, $filterPair);
}
foreach ($campaignIdFilters as $campaignId) {
$filterPair = new Google_Service_DoubleClickBidManager_FilterPair();
$filterPair->setType("FILTER_MEDIA_PLAN");
$filterPair->setValue($campaignId);
array_push($filters, $filterPair);
}
// 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 and set the parameters object.
$parameters = new Google_Service_DoubleClickBidManager_Parameters();
$parameters->setType($reportType);
$parameters->setGroupBys($dimensions);
$parameters->setFilters($filters);
$parameters->setMetrics($metrics);
$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.<br>', $queryResult->getQueryId());