ایجاد پرس و جو

منبع Query API مدیر پیشنهاد، آنچه را که در رابط کاربری به عنوان یک گزارش Display & Video 360 می‌بینید، نشان می‌دهد. این کوئری را برای تولید یک منبع Report اجرا کنید. در صورت موفقیت، منبع Report URL را ارائه می‌دهد که می‌توانید گزارش حاصل را از آنجا دانلود کنید.

این صفحه نحوه ساختاردهی و ایجاد یک منبع Query را توضیح می‌دهد.

فیلترها، ابعاد و معیارها را انتخاب کنید

در هر Query ، Parameters زیر را در فیلد params وارد کنید تا داده‌های برگردانده شده در گزارش اصلاح شوند:

  • filters دامنه داده‌ها را محدود می‌کنند. فیلترها لیستی از اشیاء FilterPair را می‌گیرند، که در آن type یک شمارشی فیلتر است و value آن یک رشته شناسایی مانند شناسه منبع مربوطه است.
  • groupBys ابعاد گزارش را تعریف می‌کند که توسط لیستی از Filter enumها نمایش داده می‌شود.
  • 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());