Planlanmış Raporlar Oluşturma ve Raporlara Erişme

Raporları, Google Display & Video 360 kullanıcı arayüzünü veya API'yi kullanarak oluşturabilir ve planlayabilirsiniz. Örneğin, son kullanıcılar düne ait gösterim sayısını gösteren günlük bir rapor veya toplam harcamayı gösteren aylık bir rapor oluşturabilir.

Planlanmış Raporlar Oluşturma

Display & Video 360 raporlama arayüzünde veya queries.create API yöntemiyle yeni bir planlanmış rapor oluşturun. Display & Video 360'ın raporlama işlevi ve yeni raporların nasıl oluşturulacağı ile ilgili tüm ayrıntıları Display & Video 360 destek sitesinde bulabilirsiniz.

Raporlar, kullanıcı arayüzündeki Repeats alanı ve API'deki schedule alanı kullanılarak oluşturulma sırasında planlanabilir. Bu alanlar uygun bir zaman aralığına ayarlanmalıdır.

Uygun alan ayarlandıktan sonra, bu rapor bu planlamaya göre çalıştırılır ve oluşturulan raporlar indirilebilir.

Planlanmış Raporlara Erişme

Planlanmış raporlar basit CSV dosyaları olarak oluşturulur, Google Cloud Storage'da otomatik ve güvenli bir şekilde saklanır. Ancak bu dosyaları doğrudan içeren Google Cloud Storage paketlerine erişmek mümkün değildir. Bunun yerine, dosyalar Display & Video 360 kullanıcı arayüzünden manuel olarak indirilebilir veya API'den edinilen önceden yetkilendirilmiş URL'ler kullanılarak programlı bir şekilde alınabilir.

Rapor dosyası indirmek için API'nin kullanılmasına ilişkin bir örnek aşağıda verilmiştir. Bu örnekte, bir sorgu altındaki en son raporu almak için orderBy parametresiyle queries.reports.list kullanılmıştır. Ardından, rapor dosyasının yerini bulmak ve içeriğini yerel bir CSV dosyasına indirmek için Report.reportMetadata.googleCloudStoragePath alanı kullanılır.

Java

Gerekli içe aktarmalar:

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;

Kod örneği:

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

Gerekli içe aktarmalar:

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

Kod örneği:

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