Anda dapat membuat dan menjadwalkan laporan menggunakan UI Google Display & Video 360 atau API. Misalnya, pengguna akhir dapat menyiapkan laporan harian yang menampilkan tayangan kemarin, atau laporan bulanan yang menunjukkan total pembelanjaan.
Membuat Laporan Terjadwal
Buat laporan terjadwal baru di antarmuka pelaporan Display & Video 360 atau
dengan metode queries.create
API. Detail lengkap tentang
fungsi pelaporan Display & Video 360 dan cara membuat laporan baru dapat
ditemukan di situs dukungan Display & Video 360.
Laporan dapat dijadwalkan saat pembuatan menggunakan kolom Repeats
di UI dan kolom
schedule
di API. Kolom ini harus disetel ke
interval waktu yang sesuai.
Setelah kolom yang tepat ditetapkan, laporan ini akan berjalan sesuai jadwal tersebut, dan laporan yang dihasilkan akan tersedia untuk didownload.
Akses 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, file dapat didownload secara manual dari UI Display & Video 360 atau diambil secara terprogram menggunakan URL yang telah diotorisasi sebelumnya yang diperoleh dari API.
Contoh penggunaan API untuk mendownload file laporan tercantum di bawah. Dalam contoh
ini, queries.reports.list
digunakan dengan
parameter orderBy
untuk mengambil laporan terbaru
dalam kueri. Kemudian, kolom
Report.reportMetadata.googleCloudStoragePath
digunakan untuk menemukan file laporan dan mendownload kontennya 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); }