เรียกใช้รายงาน

การเรียกใช้รายงานจะเริ่มการดำเนินการเทมเพลต Report ที่มีอยู่เพื่อสร้างข้อมูลประสิทธิภาพของบัญชี Curation

คู่มือนี้จะอธิบายวิธีสร้างรายงานที่อธิบายประสิทธิภาพของบัญชี Curation โดยใช้ Curation Partners API เพื่อ เรียกใช้ เทมเพลต Report

ก่อนเริ่มต้น

คุณต้องดำเนินการต่อไปนี้ให้เสร็จสมบูรณ์ก่อนดำเนินการต่อ

เริ่มการเรียกใช้รายงาน

หากต้องการเรียกใช้รายงานที่มีอยู่ ให้ใช้เมธอด curators.reports.run

ตัวอย่างต่อไปนี้จะส่งคำขอ POST เพื่อเริ่มการเรียกใช้รายงาน

REST

ส่งคำขอ

curl --request POST \
  'https://curationpartners.googleapis.com/v1/curators/ACCOUNT_ID/reports/123456789:run' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{}' \
  --compressed

แทนที่ค่าต่อไปนี้

  • ACCOUNT_ID: รหัสบัญชีของคุณ
  • ACCESS_TOKEN: โทเค็นเพื่อการเข้าถึงของคุณ

คำตอบ

{
  "name": "curators/ACCOUNT_ID/reports/123456789/operations/10486370264",
  "done": false,
  "metadata": {
    "@type": "type.googleapis.com/google.ads.curationpartners.v1.RunReportMetadata"
  }
}

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.Operation;
import com.google.api.services.curationpartners.v1.model.RunReportRequest;
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 RunReport {

  /**
   * Executes the run 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 run.
   * @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("Running report with name \"%s\".%n", name);

    RunReportRequest requestBody = new RunReportRequest();

    // Run the specified report to start an asynchronous operation.
    Operation operation =
        curationPartnersClient
            .curators()
            .reports()
            .run(name, requestBody)
            .execute();

    System.out.println("Successfully initiated report run operation:");
    Utils.jsonPrettyPrint(operation);
  }

  /**
   * Creates and configures the ArgumentParser for this sample.
   *
   * @return the configured ArgumentParser.
   */
  private static ArgumentParser createArgumentParser() {
    ArgumentParser parser =
        ArgumentParsers.newFor("RunReport")
            .build()
            .defaultHelp(true)
            .description("Runs a specified report asynchronously, returning an Operation " +
                "that can be used to track its progress.");

    // 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 run.")
        .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);
    }
  }
}

การเรียกใช้รายงานเป็นการดำเนินการแบบอะซิงโครนัสที่ใช้เวลานาน เมื่อคุณเรียกใช้เมธอด run Curation Partners API จะตอบกลับด้วยทรัพยากร Operation ฟิลด์ name ของการดำเนินการจะระบุการดำเนินการเรียกใช้และมีรูปแบบดังนี้

curators/ACCOUNT_ID/reports/REPORT_ID/operations/OPERATION_ID

ออบเจ็กต์ Operation ที่แสดงผลจะมีข้อมูลต่อไปนี้

  • name: ชื่อที่เซิร์ฟเวอร์กำหนดให้สำหรับการดำเนินการที่ใช้เวลานาน
  • metadata: ข้อมูลความคืบหน้าเฉพาะบริการที่ไม่บังคับ ระบบอาจไม่ป้อนข้อมูลในฟิลด์ metadata ในออบเจ็กต์ Operation ที่คุณได้รับในการตอบกลับ curators.reports.run

หลังจากเริ่มการเรียกใช้รายงานแล้ว คุณจะดูผลลัพธ์ของรายงานไม่ได้จนกว่าฟิลด์ done ของการดำเนินการจะมีค่าเป็น true ระยะเวลาที่ใช้ในการเรียกใช้รายงานให้เสร็จสมบูรณ์จะแตกต่างกันไปตามความซับซ้อนของรายงาน

ขั้นตอนถัดไป