مشاهده گزارش‌ها

مشاهده گزارش‌ها، جزئیات پیکربندی الگوهای Report ایجاد شده برای حساب نمایندگی شما را بازیابی می‌کند.

این راهنما نحوه استفاده از API آژانس‌ها و برندها را برای مشاهده پیکربندی یک گزارش خاص یا فهرست کردن مجموعه‌ای از گزارش‌های ایجاد شده برای حساب کاربری شما شرح می‌دهد.

قبل از اینکه شروع کنی

قبل از ادامه، باید احراز هویت را تنظیم کنید .

مشاهده گزارش فردی

برای مشاهده جزئیات یک گزارش خاص، از متد agencies.reports.get استفاده کنید.

مثال زیر یک درخواست GET برای بازیابی گزارش با استفاده از نام منبع ایجاد می‌کند:

استراحت

درخواست

curl \
  'https://agenciesandbrands.googleapis.com/v1/agencies/ACCOUNT_ID/reports/123456789' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --compressed

موارد زیر را جایگزین کنید:

  • ACCOUNT_ID : شناسه حساب شما.
  • ACCESS_TOKEN : توکن دسترسی شما.

پاسخ

{
  "name": "agencies/ACCOUNT_ID/reports/123456789",
  "reportId": "123456789",
  "displayName": "Updated Deal and Creative Performance",
  "reportDefinition": {
    "dimensions": [
      "DATE",
      "DEAL_ID",
      "CREATIVE_ID"
    ],
    "metrics": [
      "BIDS",
      "BIDS_IN_AUCTION",
      "AUCTIONS_WON",
      "IMPRESSIONS",
      "CLICKS",
      "SPEND",
      "SPEND_WITHOUT_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"
}

جاوا

/*
 * 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.agenciesandbrands.v1.agencies.reports;

import com.google.api.services.agenciesandbrands.v1.AgenciesAndBrands;
import com.google.api.services.agenciesandbrands.v1.model.Report;
import com.google.api.services.samples.agenciesandbrands.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 agenciesAndBrandsClient the initialized Agencies & Brands API client.
   * @param accountId the account ID of the agency 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(
      AgenciesAndBrands agenciesAndBrandsClient, Long accountId, String reportId)
      throws IOException {
    String name = String.format("agencies/%s/reports/%s", accountId, reportId);

    System.out.printf("Get report with name \"%s\".%n", name);

    // Get the specified report.
    Report report = agenciesAndBrandsClient.agencies().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 agency 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);
    }

    AgenciesAndBrands client = null;
    try {
      client = Utils.getAgenciesAndBrandsClient();
    } catch (IOException ex) {
      System.out.printf("Unable to create Agencies & Brands 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("Agencies & Brands API returned error response:%n%s", ex);
      System.exit(1);
    }
  }
}

مشاهده لیست گزارش‌های شما

برای مشاهده گزارش‌های خود، از متد agencies.reports.list استفاده کنید.

مثال زیر یک درخواست GET برای لیست کردن تمام گزارش‌های یک حساب کاربری آژانس ایجاد می‌کند:

استراحت

درخواست

curl \
  'https://agenciesandbrands.googleapis.com/v1/agencies/ACCOUNT_ID/reports?pageSize=2' \
  --header 'Authorization: Bearer ACCESS_TOKEN' \
  --header 'Accept: application/json' \
  --compressed

پاسخ

{
  "reports": [
    {
      "name": "agencies/ACCOUNT_ID/reports/123456789",
      "reportId": "123456789",
      "displayName": "Updated Deal and Creative Performance",
      "reportDefinition": {
        "dimensions": [
          "DATE",
          "DEAL_ID",
          "CREATIVE_ID"
        ],
        "metrics": [
          "BIDS",
          "BIDS_IN_AUCTION",
          "AUCTIONS_WON",
          "IMPRESSIONS",
          "CLICKS",
          "SPEND",
          "SPEND_WITHOUT_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": "agencies/ACCOUNT_ID/reports/987654321",
      "reportId": "987654321",
      "displayName": "Deal 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=="
}

جاوا

/*
 * 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.agenciesandbrands.v1.agencies.reports;

import com.google.api.services.agenciesandbrands.v1.AgenciesAndBrands;
import com.google.api.services.agenciesandbrands.v1.model.ListReportsResponse;
import com.google.api.services.agenciesandbrands.v1.model.Report;
import com.google.api.services.samples.agenciesandbrands.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 agenciesAndBrandsClient the initialized Agencies & Brands API client.
   * @param accountId the account ID of the agency 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(
      AgenciesAndBrands agenciesAndBrandsClient,
      Long accountId,
      Integer pageSize,
      String pageToken,
      String filter,
      String orderBy)
      throws IOException {
    String parent = String.format("agencies/%s", accountId);

    System.out.printf("Listing reports for agency account \"%s\".%n", parent);

    AgenciesAndBrands.Agencies.Reports.List request =
        agenciesAndBrandsClient.agencies().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 agency account.");

    // Required arguments.
    parser
        .addArgument("-a", "--account_id")
        .help("The account ID of the agency 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);
    }

    AgenciesAndBrands client = null;
    try {
      client = Utils.getAgenciesAndBrandsClient();
    } catch (IOException ex) {
      System.out.printf("Unable to create Agencies & Brands 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("Agencies & Brands API returned error response:%n%s", ex);
      System.exit(1);
    }
  }
}

برای کنترل خروجی لیست، از پارامترهای پرس و جوی اختیاری زیر استفاده کنید:

  • pageSize : حداکثر تعداد گزارش‌هایی که در هر صفحه باید برگردانده شود.
  • pageToken : توکنی که از پاسخ list قبلی برای بازیابی صفحه بعدی گزارش‌ها دریافت شده است.
  • filter : عبارتی برای فیلتر کردن نتایج.
  • orderBy : عبارتی برای مرتب‌سازی نتایج.

مراحل بعدی