La ejecución de un informe inicia la ejecución de una plantilla existente
Report
para producir datos de rendimiento de tu cuenta de Curation.
En esta guía, se explica cómo puedes producir un informe que describa el rendimiento de tu cuenta de Curation
con la API de Curation Partners para ejecutar
una Report plantilla.
Antes de comenzar
Antes de continuar, debes completar lo siguiente:
Inicia la ejecución de un informe
Para ejecutar un informe existente, usa el
curators.reports.run
método.
En el siguiente ejemplo, se realiza una solicitud POST para iniciar la ejecución de un informe:
REST
Solicitud
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
Reemplaza lo siguiente:
ACCOUNT_ID: Es tu ID de cuenta.ACCESS_TOKEN: Es tu token de acceso.
Respuesta
{
"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); } } }
La ejecución de un informe es una operación asíncrona de larga duración. Cuando llamas al
run método, la API de Curation Partners responde con un
Operation
recurso. El campo name de la operación identifica la operación de ejecución y tiene el siguiente formato:
curators/ACCOUNT_ID/reports/REPORT_ID/operations/OPERATION_ID
El objeto Operation que se muestra contiene lo siguiente:
name: Es el nombre asignado por el servidor para la operación de larga duración.metadata: Es información de progreso opcional específica del servicio. Es posible que el campometadatano se complete en el objetoOperationque recibes en la respuestacurators.reports.run.
Después de iniciar la ejecución de un informe, no podrás ver los resultados hasta que el campo done de la operación sea el valor true. El tiempo que tarda en completarse la ejecución de un informe varía según la complejidad del informe.
Próximos pasos
- Obtén información para sondear y ver informes completados con la API de Curation Partners.
- Obtén información para ver informes existentes con la API de Curation Partners.