สร้างและเข้าถึงรายงานที่ตั้งเวลา

คุณสามารถสร้างและกําหนดเวลารายงานได้โดยใช้ UI ของ Google Display &AMP, Video 360 หรือ API เช่น ผู้ใช้ปลายทางสามารถสร้างรายงานประจําวันที่แสดงการแสดงผลของเมื่อวาน หรือรายงานรายเดือนที่แสดงการใช้จ่ายทั้งหมดได้

สร้างรายงานที่ตั้งเวลาไว้

สร้างรายงานใหม่ที่มีกําหนดเวลาในอินเทอร์เฟซการรายงาน Display & Video 360 หรือด้วยเมธอด queries.create API ดูรายละเอียดทั้งหมดเกี่ยวกับฟังก์ชันการรายงาน Display & Video 360' และวิธีสร้างรายงานใหม่ได้ในไซต์การสนับสนุน Display & Video 360

คุณกําหนดเวลาการสร้างรายงานได้โดยใช้ช่อง Repeats ใน UI และช่อง schedule ใน API ช่องเหล่านี้ควรอยู่ใน ช่วงเวลาที่เหมาะสม

หลังจากตั้งค่าช่องที่ถูกต้องแล้ว รายงานนี้จะทํางานตามกําหนดเวลาดังกล่าว แล้วรายงานที่สร้างจะพร้อมให้ดาวน์โหลด

เข้าถึงรายงานที่ตั้งเวลาไว้

รายงานที่ตั้งเวลาจะสร้างขึ้นเป็นไฟล์ CSV แบบง่ายและจัดเก็บโดยอัตโนมัติและปลอดภัยใน Google Cloud Storage อย่างไรก็ตาม การเข้าถึงที่เก็บข้อมูล Google Cloud Storage ที่มีไฟล์เหล่านี้โดยตรงนั้นทําไม่ได้ แต่อาจดาวน์โหลดไฟล์จาก UI ของ Display & Video 360 ด้วยตนเองได้ หรือดึงข้อมูลแบบเป็นโปรแกรมโดยใช้ URL ที่ได้รับอนุญาตล่วงหน้าซึ่งได้รับจาก API

ด้านล่างนี้คือตัวอย่างการใช้ API เพื่อดาวน์โหลดไฟล์รายงาน ในตัวอย่างนี้ queries.reports.list ใช้กับพารามิเตอร์ orderBy เพื่อเรียกรายงานล่าสุดภายใต้คําค้นหา จากนั้นจะใช้ช่อง Report.reportMetadata.googleCloudStoragePath เพื่อค้นหาไฟล์รายงานและดาวน์โหลดเนื้อหาเป็นไฟล์ CSV ในเครื่อง

Java

การนําเข้าที่ต้องการ:

import com.google.api.client.googleapis.media.MediaHttpDownloader;
import com.google.api.client.googleapis.util.Utils;
import com.google.api.client.http.GenericUrl;
import com.google.api.services.doubleclickbidmanager.DoubleClickBidManager;
import com.google.api.services.doubleclickbidmanager.model.ListReportsResponse;
import com.google.api.services.doubleclickbidmanager.model.Report;
import java.io.FileOutputStream;
import java.io.OutputStream;

ตัวอย่างโค้ด

long queryId = query-id;

// Call the API, listing the reports under the given queryId from most to
// least recent.
ListReportsResponse reportListResponse =
    service
        .queries()
        .reports()
        .list(queryId)
        .setOrderBy("key.reportId desc")
        .execute();

// Iterate over returned reports, stopping once finding a report that
// finished generating successfully.
Report mostRecentReport = null;
if (reportListResponse.getReports() != null) {
  for (Report report : reportListResponse.getReports()) {
    if (report.getMetadata().getStatus().getState().equals("DONE")) {
      mostRecentReport = report;
      break;
    }
  }
} else {
  System.out.format("No reports exist for query Id %s.\n", queryId);
}

// Download report file of most recent finished report found.
if (mostRecentReport != null) {
  // Retrieve GCS URL from report object.
  GenericUrl reportUrl =
      new GenericUrl(mostRecentReport.getMetadata().getGoogleCloudStoragePath());

  // Build filename.
  String filename =
      mostRecentReport.getKey().getQueryId() + "_"
          + mostRecentReport.getKey().getReportId() + ".csv";

  // Download the report file.
  try (OutputStream output = new FileOutputStream(filename)) {
    MediaHttpDownloader downloader =
        new MediaHttpDownloader(Utils.getDefaultTransport(), null);
    downloader.download(reportUrl, output);
  }
  System.out.format("Download of file %s complete.\n", filename);
} else {
  System.out.format(
      "There are no completed report files to download for query Id %s.\n",
      queryId);
}

Python

การนําเข้าที่ต้องการ:

from contextlib import closing
from six.moves.urllib.request import urlopen

ตัวอย่างโค้ด

query_id = query-id

# Call the API, listing the reports under the given queryId from most to
# least recent.
response = service.queries().reports().list(queryId=query_id, orderBy="key.reportId desc").execute()

# Iterate over returned reports, stopping once finding a report that
# finished generating successfully.
most_recent_report = None
if response['reports']:
  for report in response['reports']:
    if report['metadata']['status']['state'] == 'DONE':
      most_recent_report = report
      break
else:
  print('No reports exist for query Id %s.' % query_id)

# Download report file of most recent finished report found.
if most_recent_report != None:
  # Retrieve GCS URL from report object.
  report_url = most_recent_report['metadata']['googleCloudStoragePath']

  # Build filename.
  output_file = '%s_%s.csv' % (report['key']['queryId'], report['key']['reportId'])

  # Download the report file.
  with open(output_file, 'wb') as output:
    with closing(urlopen(report_url)) as url:
      output.write(url.read())
  print('Download of file %s complete.' % output_file)
else:
  print('There are no completed report files to download for query Id %s.' % query_id)

PHP

$queryId = query-id;

// Call the API, listing the reports under the given queryId from most to
// least recent.
$optParams = array('orderBy' => "key.reportId desc");
$response = $service->queries_reports->listQueriesReports($queryId, $optParams);

// Iterate over returned reports, stopping once finding a report that
// finished generating successfully.
$mostRecentReport = null;
if (!empty($response->getReports())) {
  foreach ($response->getReports() as $report) {
    if ($report->metadata->status->state == "DONE") {
      $mostRecentReport = $report;
      break;
    }
  }
} else {
  printf('<p>No reports exist for query ID %s.</p>', $queryId);
}

// Download report file of most recent finished report found.
if ($mostRecentReport != null) {
  // Build filename.
  $filename = $mostRecentReport->key->queryId . '_' . $mostRecentReport->key->reportId . '.csv';

  // Download the report file.
  file_put_contents($filename, fopen($mostRecentReport->metadata->googleCloudStoragePath, 'r'));
  printf('<p>Download of file %s complete.</p>', $filename);
} else {
  printf('<p>There are no completed report files to download for query Id %s.</p>', $queryId);
}