Raporty można tworzyć i planować za pomocą funkcji Sieć reklamowa Google i Interfejs Video 360 API. Użytkownicy mogą na przykład utworzyć raport dzienny pokazujący wczorajsze lub miesięczny raport z łącznymi wydatkami.
Tworzenie zaplanowanych raportów
Tworzenie nowego zaplanowanego raportu w Display & interfejsu raportowania usługi Video 360 lub
za pomocą metody interfejsu API queries.create
. Szczegółowe informacje:
Reklamy displayowe i Funkcje raportowania w Video 360 i sposób tworzenia nowych raportów
w narzędziu Display & Witryna pomocy Google Video 360.
Raporty można zaplanować podczas ich tworzenia, korzystając z pola Repeats
w interfejsie oraz
schedule
w interfejsie API. W tych polach należy ustawić
w odpowiednim przedziale czasu.
Po ustawieniu właściwego pola raport będzie generowany zgodnie z tym harmonogramem, wygenerowane raporty będzie można pobrać.
Dostęp do zaplanowanych raportów
Zaplanowane raporty są generowane jako proste pliki CSV i przechowywane automatycznie i bezpiecznie w Google Cloud Storage. Nie można jednak uzyskać dostępu do Zasobniki Google Cloud Storage, które bezpośrednio zawierają te pliki. Zamiast tego makro które można pobierać ręcznie z Film 360 – UI lub pobrany automatycznie przy użyciu wstępnie autoryzowanych adresów URL uzyskanych z interfejs API.
Poniżej znajdziesz przykład użycia interfejsu API do pobrania pliku raportu. W tym
na przykład queries.reports.list
jest używany z
Parametr orderBy
, aby pobrać najnowszy raport
w danym zapytaniu. Później
Pole Report.reportMetadata.googleCloudStoragePath
ma wartość
aby znaleźć plik raportu i pobrać jego zawartość do lokalnego pliku CSV.
Wymagane importy:
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;
Przykładowy kod:
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);
}
Wymagane importy:
from contextlib import closing
from six.moves.urllib.request import urlopen
Przykładowy kod:
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)
$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);
}