Sie können Berichte über die Benutzeroberfläche von Google Display &Video 360 oder die API erstellen und planen. Endnutzer können beispielsweise einen Tagesbericht mit den Impressionen von gestern oder einen Monatsbericht mit den Gesamtausgaben einrichten.
Geplante Berichte erstellen
Erstellen Sie einen neuen geplanten Bericht in der Berichtsoberfläche von Display & Video 360 oder
mit der queries.create API-Methode. Ausführliche Informationen zur Berichtsfunktion von Display & Video 360 und zum Erstellen neuer Berichte finden Sie auf der Display & Video 360-Hilfeseite.
Berichte können bei der Erstellung über das Repeats Feld in der Benutzeroberfläche und das
schedule Feld in der API geplant werden. Diese Felder sollten auf ein geeignetes Zeitintervall festgelegt werden.
Nachdem das entsprechende Feld festgelegt wurde, wird dieser Bericht gemäß diesem Zeitplan ausgeführt und die generierten Berichte können heruntergeladen werden.
Auf geplante Berichte zugreifen
Geplante Berichte werden als einfache CSV-Dateien generiert und automatisch und sicher in Google Cloud Storage gespeichert. Es ist jedoch nicht möglich, direkt auf die Google Cloud Storage-Buckets zuzugreifen, die diese Dateien enthalten. Stattdessen können die Dateien manuell über die Benutzeroberfläche von Display & Video 360 heruntergeladen oder programmatisch über vorautorisierte URLs abgerufen werden, die von der API bereitgestellt werden.
Unten finden Sie ein Beispiel für die Verwendung der API zum Herunterladen einer Berichtsdatei. In diesem
Beispiel wird queries.reports.list mit dem
orderBy Parameter verwendet, um den neuesten Bericht
für eine Abfrage abzurufen. Anschließend wird das
Report.reportMetadata.googleCloudStoragePath Feld
verwendet, um die Berichtsdatei zu finden und ihren Inhalt in eine lokale CSV-Datei herunterzuladen.
Java
Erforderliche Importe:
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;
Codebeispiel:
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
Erforderliche Importe:
from contextlib import closing from six.moves.urllib.request import urlopen
Codebeispiel:
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); }