Membuat dan Mengakses Laporan Terjadwal

Anda dapat membuat dan menjadwalkan laporan menggunakan antarmuka UI Video 360 atau Compute Engine API. Misalnya, pengguna akhir dapat menyiapkan laporan harian yang menampilkan aktivitas tayangan iklan, atau laporan bulanan yang menampilkan total pembelanjaan.

Membuat Laporan Terjadwal

Membuat laporan terjadwal baru di platform Display & Antarmuka pelaporan Video 360 atau dengan metode queries.create API. Detail lengkap di Layar & Fungsi pelaporan Video 360 dan cara membuat laporan baru dapat yang ada di artikel Display & Situs dukungan Video 360.

Laporan dapat dijadwalkan saat pembuatan menggunakan kolom Repeats di UI dan Kolom schedule di API. Bidang ini harus diatur ke interval waktu yang sesuai.

Setelah isian yang sesuai ditetapkan, laporan ini akan dijalankan pada jadwal tersebut dan laporan yang dihasilkan kemudian akan tersedia untuk diunduh.

Mengakses Laporan Terjadwal

Laporan terjadwal dibuat sebagai file CSV sederhana dan disimpan secara otomatis dan aman di Google Cloud Storage. Namun, Anda tidak dapat mengakses Bucket Google Cloud Storage yang berisi file ini secara langsung. Sebagai gantinya, dapat didownload secara manual dari tab Display & UI Video 360 atau diambil secara terprogram menggunakan URL yang telah diberi otorisasi sebelumnya yang diperoleh dari API.

Contoh penggunaan API untuk mendownload file laporan tersedia di bawah. Di sini contoh, queries.reports.list digunakan dengan Parameter orderBy untuk mengambil laporan terbaru dalam kueri. Kemudian, Kolom Report.reportMetadata.googleCloudStoragePath sekarang adalah digunakan untuk menemukan file laporan dan mengunduh isinya ke file CSV lokal.

Java

Impor yang diperlukan:

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;

Contoh kode:

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

Impor yang diperlukan:

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

Contoh kode:

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);
}