Khi xem báo cáo, bạn sẽ truy xuất được thông tin chi tiết về cấu hình của các mẫu Report được tạo cho tài khoản tuyển chọn của bạn.
Hướng dẫn này mô tả cách bạn có thể dùng Curation Partners API để xem cấu hình của một báo cáo cụ thể hoặc liệt kê một tập hợp báo cáo được tạo cho tài khoản của bạn.
Trước khi bắt đầu
Trước khi tiếp tục, bạn phải thiết lập quy trình xác thực.
Xem từng báo cáo
Để xem thông tin chi tiết về một báo cáo cụ thể, hãy sử dụng phương thức curators.reports.get.
Ví dụ sau đây đưa ra yêu cầu GET để truy xuất một báo cáo theo tên tài nguyên:
REST
Yêu cầu
curl \
'https://curationpartners.googleapis.com/v1/curators/ACCOUNT_ID/reports/123456789' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--compressed
Thay thế nội dung sau:
ACCOUNT_ID: mã tài khoản của bạn.ACCESS_TOKEN: mã truy cập của bạn.
Phản hồi
{
"name": "curators/ACCOUNT_ID/reports/123456789",
"reportId": "123456789",
"displayName": "Updated Data Segment Performance",
"reportDefinition": {
"dimensions": [
"DATE",
"CURATION_DATA_SEGMENT_ID"
],
"metrics": [
"IMPRESSIONS",
"CLICKS",
"SPEND",
"CURATION_PARTNER_FEE"
],
"dateRange": {
"relative": "THIS_MONTH_TO_DATE"
},
"timeZoneSource": "UTC"
},
"createTime": "2026-08-01T10:00:00Z",
"updateTime": "2026-08-01T10:10:00Z",
"locale": "en"
}
Java
/* * Copyright (c) 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.api.services.samples.curationpartners.v1.curators.reports; import com.google.api.services.curationpartners.v1.CurationPartners; import com.google.api.services.curationpartners.v1.model.Report; import com.google.api.services.samples.curationpartners.v1.Utils; import java.io.IOException; import java.security.GeneralSecurityException; import net.sourceforge.argparse4j.ArgumentParsers; import net.sourceforge.argparse4j.inf.ArgumentParser; import net.sourceforge.argparse4j.inf.ArgumentParserException; import net.sourceforge.argparse4j.inf.Namespace; public class GetReport { /** * Executes the get operation for a report. * * @param curationPartnersClient the initialized Curation Partners API client. * @param accountId the account ID of the curator that created the report. * @param reportId the resource ID of the report to retrieve. * @throws IOException if the API returns an error. */ public static void execute( CurationPartners curationPartnersClient, Long accountId, String reportId) throws IOException { String name = String.format("curators/%s/reports/%s", accountId, reportId); System.out.printf("Get report with name \"%s\".%n", name); // Get the specified report. Report report = curationPartnersClient.curators().reports().get(name).execute(); System.out.println("Successfully retrieved report:"); Utils.jsonPrettyPrint(report); } /** * Creates and configures the ArgumentParser for this sample. * * @return the configured ArgumentParser. */ private static ArgumentParser createArgumentParser() { ArgumentParser parser = ArgumentParsers.newFor("GetReport") .build() .defaultHelp(true) .description("Gets a specified report."); // Required arguments. parser .addArgument("-a", "--account_id") .help("The account ID of the curator that created the report.") .required(true) .type(Long.class); parser .addArgument("-r", "--report_id") .help("The resource ID of the report to retrieve.") .required(true); return parser; } public static void main(String[] args) { ArgumentParser parser = createArgumentParser(); Namespace parsedArgs = null; try { parsedArgs = parser.parseArgs(args); } catch (ArgumentParserException ex) { parser.handleError(ex); System.exit(1); } CurationPartners client = null; try { client = Utils.getCurationPartnersClient(); } catch (IOException ex) { System.out.printf("Unable to create Curation Partners API service:%n%s", ex); System.out.println("Did you specify a valid path to a service account key file?"); System.exit(1); } catch (GeneralSecurityException ex) { System.out.printf("Unable to establish secure HttpTransport:%n%s", ex); System.exit(1); } try { execute( client, parsedArgs.getLong("account_id"), parsedArgs.getString("report_id")); } catch (IOException ex) { System.out.printf("Curation Partners API returned error response:%n%s", ex); System.exit(1); } } }
Xem danh sách báo cáo
Để xem báo cáo, hãy sử dụng phương thức curators.reports.list.
Ví dụ sau đây đưa ra yêu cầu GET để liệt kê tất cả báo cáo cho một tài khoản người tuyển chọn:
REST
Yêu cầu
curl \
'https://curationpartners.googleapis.com/v1/curators/ACCOUNT_ID/reports?pageSize=2' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--compressed
Phản hồi
{
"reports": [
{
"name": "curators/ACCOUNT_ID/reports/123456789",
"reportId": "123456789",
"displayName": "Updated Data Segment Performance",
"reportDefinition": {
"dimensions": [
"DATE",
"CURATION_DATA_SEGMENT_ID"
],
"metrics": [
"IMPRESSIONS",
"CLICKS",
"SPEND",
"CURATION_PARTNER_FEE"
],
"dateRange": {
"relative": "THIS_MONTH_TO_DATE"
},
"timeZoneSource": "UTC"
},
"createTime": "2026-08-01T10:00:00Z",
"updateTime": "2026-08-01T10:10:00Z",
"locale": "en"
},
{
"name": "curators/ACCOUNT_ID/reports/987654321",
"reportId": "987654321",
"displayName": "Curated Package Performance",
"reportDefinition": {
"dimensions": [
"DATE",
"DEAL_ID"
],
"metrics": [
"IMPRESSIONS",
"SPEND"
],
"dateRange": {
"relative": "THIS_MONTH_TO_DATE"
},
"timeZoneSource": "UTC"
},
"createTime": "2026-08-02T15:20:00Z",
"updateTime": "2026-08-02T15:20:00Z",
"locale": "en"
}
],
"nextPageToken": "RG9ybW91c2VTcGFubmVyQ29udGludWF0aW9uVG9rZW46MQ=="
}
Java
/* * Copyright (c) 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.api.services.samples.curationpartners.v1.curators.reports; import com.google.api.services.curationpartners.v1.CurationPartners; import com.google.api.services.curationpartners.v1.model.ListReportsResponse; import com.google.api.services.curationpartners.v1.model.Report; import com.google.api.services.samples.curationpartners.v1.Utils; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.List; import net.sourceforge.argparse4j.ArgumentParsers; import net.sourceforge.argparse4j.inf.ArgumentParser; import net.sourceforge.argparse4j.inf.ArgumentParserException; import net.sourceforge.argparse4j.inf.Namespace; public class ListReports { /** * Executes the list operation for reports. * * @param curationPartnersClient the initialized Curation Partners API client. * @param accountId the account ID of the curator whose reports to list. * @param pageSize the maximum number of items to return per page. * @param pageToken the page token from a previous response, if any. * @param filter a filter expression. * @param orderBy an order by expression. * @throws IOException if the API returns an error. */ public static void execute( CurationPartners curationPartnersClient, Long accountId, Integer pageSize, String pageToken, String filter, String orderBy) throws IOException { String parent = String.format("curators/%s", accountId); System.out.printf("Listing reports for curator account \"%s\".%n", parent); CurationPartners.Curators.Reports.List request = curationPartnersClient.curators().reports().list(parent); if (pageSize != null) { request.setPageSize(pageSize); } if (pageToken != null) { request.setPageToken(pageToken); } if (filter != null) { request.setFilter(filter); } if (orderBy != null) { request.setOrderBy(orderBy); } ListReportsResponse response = request.execute(); List<Report> reports = response.getReports(); if (reports == null || reports.isEmpty()) { System.out.println("No reports found."); return; } System.out.println("Successfully listed reports:"); for (Report report : reports) { Utils.jsonPrettyPrint(report); System.out.println(); } if (response.getNextPageToken() != null) { System.out.printf("Next page token: %s%n", response.getNextPageToken()); } } /** * Creates and configures the ArgumentParser for this sample. * * @return the configured ArgumentParser. */ private static ArgumentParser createArgumentParser() { ArgumentParser parser = ArgumentParsers.newFor("ListReports") .build() .defaultHelp(true) .description("Lists reports for the specified curator account."); // Required arguments. parser .addArgument("-a", "--account_id") .help("The account ID of the curator whose reports to list.") .required(true) .type(Long.class); // Optional arguments. parser .addArgument("--page_size") .help("The maximum number of reports to return per page.") .type(Integer.class); parser .addArgument("--page_token") .help("A page token, received from a previous `ListReports` call."); parser .addArgument("--filter") .help("An optional parameter used to filter the reports returned. Uses Cloud API list " + "filtering syntax. To learn more, see:" + "https://developers.google.com/ad-manager/api/beta/filters"); parser .addArgument("--order_by") .help("An expression to order the results by. To learn more, see: " + "https://developers.google.com/ad-manager/api/beta/filters#order"); return parser; } public static void main(String[] args) { ArgumentParser parser = createArgumentParser(); Namespace parsedArgs = null; try { parsedArgs = parser.parseArgs(args); } catch (ArgumentParserException ex) { parser.handleError(ex); System.exit(1); } CurationPartners client = null; try { client = Utils.getCurationPartnersClient(); } catch (IOException ex) { System.out.printf("Unable to create Curation Partners API service:%n%s", ex); System.out.println("Did you specify a valid path to a service account key file?"); System.exit(1); } catch (GeneralSecurityException ex) { System.out.printf("Unable to establish secure HttpTransport:%n%s", ex); System.exit(1); } try { execute( client, parsedArgs.getLong("account_id"), parsedArgs.getInt("page_size"), parsedArgs.getString("page_token"), parsedArgs.getString("filter"), parsedArgs.getString("order_by")); } catch (IOException ex) { System.out.printf("Curation Partners API returned error response:%n%s", ex); System.exit(1); } } }
Để kiểm soát đầu ra của danh sách, hãy sử dụng các tham số truy vấn không bắt buộc sau:
pageSize: Số lượng báo cáo tối đa cần trả về trên mỗi trang.pageToken: Mã thông báo nhận được từ phản hồilisttrước đó để truy xuất trang báo cáo tiếp theo.filter: Một biểu thức để lọc kết quả.orderBy: Một biểu thức để sắp xếp kết quả.
Các bước tiếp theo
- Tìm hiểu cách tạo và sửa đổi báo cáo bằng Curation Partners API.
- Tìm hiểu cách chạy báo cáo bằng Curation Partners API.
- Tìm hiểu cách bỏ phiếu và xem báo cáo đã hoàn tất bằng Curation Partners API.