Java

Google では、Ad Manager API とやり取りするための Java クライアント ライブラリを提供しています。 Apache Maven または Gradle でクライアント ライブラリを使用することをおすすめします。

まず、お好みの IDE で新しいプロジェクトを作成するか、 追加することもできます。Google はクライアント ライブラリのアーティファクトを Maven セントラルリポジトリに com.google.api-ads/ad-manager

Maven

<!-- pom.xml -->
<dependency>
  <groupId>com.google.api-ads</groupId>
  <artifactId>ad-manager</artifactId>
  <version>0.1.0</version>
</dependency>

Gradle

implementation 'com.google.api-ads:ad-manager:0.1.0'

認証情報の構成

Java クライアント ライブラリは OAuth2 とアプリケーションのデフォルト認証情報を使用します。 認証を行います。

ADC は、次の場所で認証情報を順番に検索します。

  1. GOOGLE_APPLICATION_CREDENTIALS 環境変数。
  2. Google Cloud CLI(gcloud CLI)で設定したユーザー認証情報。
  3. Google Cloud で実行する場合、Google Cloud リソースに関連付けられたサービス アカウント。

ADC 認証情報の作成と構成については、以下をご覧ください。 認証

最初のリクエストを行う

各サービスには、同期と非同期の両方の ServiceClient オブジェクトがあります。 メソッドごとに指定できます。次の例では、Network を読み取ります。 実行されます。

import com.google.ads.admanager.v1.GetNetworkRequest;
import com.google.ads.admanager.v1.Network;
import com.google.ads.admanager.v1.NetworkName;
import com.google.ads.admanager.v1.NetworkServiceClient;

public class SyncGetNetwork {

  public static void main(String[] args) throws Exception {
    syncGetNetwork();
  }

  public static void syncGetNetwork() throws Exception {
    try (NetworkServiceClient networkServiceClient = NetworkServiceClient.create()) {
      GetNetworkRequest request =
          GetNetworkRequest.newBuilder()
              .setName(NetworkName.of("[NETWORK_CODE]").toString())
              .build();
      Network response = networkServiceClient.getNetwork(request);
    }
  }
}

他のメソッドやリソースの例については、GitHub リポジトリをご覧ください。 googleapis/google-cloud-java

HTTP リクエストとレスポンスをログに記録する

com.google.api.client.http.HttpTransport クラスは、すべての HTTP リクエストを行います。 このクラスで使用する java.util.logging (7 月)は、HTTP リクエストおよびレスポンスの詳細(URL、ヘッダー、 説明します。

ロギングを有効にするには、このクラスのロガーのログレベルを「 CONFIG 以降。この手順は、使用するロギング 実装してください。

7 月

ロギングを有効にするには、com.google.api.client.http.levelCONFIG に設定します。または、 logging.properties ファイルの上位に指定します。

handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG

別の方法として、Java コードでロギングを有効にすることもできます。


import com.google.api.client.http.HttpTransport;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;

public static void enableLogging() {
  Logger logger = Logger.getLogger(HttpTransport.class.getName());
  logger.setLevel(Level.CONFIG);
  ConsoleHandler handler = new ConsoleHandler();
  handler.setLevel(Level.CONFIG);
  logger.addHandler(handler);
}

Log4j

ロギングに Log4j を使用する場合は、 Log4j JDK ロギング アダプタ JUL メッセージをログに記録します。これは、SystemProperty を使用するか、 Log4jBridgeHandler と 7 月の logging.properties ファイルを使用します。

システム プロパティ

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager

Log4j ブリッジ ハンドラ

handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true

これらの設定により、すべてのロガーに Ad Manager API ログが書き込まれます。 CONFIG 以降。次の log4j2.xml ファイルの例では、 System.out に書き込むロガー。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="com.google.api.client.http.HttpTransport" level="debug">
      <AppenderRef ref="Console"/>
    </Logger>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

エラーを処理する

Ad Manager API エラーはすべて、 ApiException クライアント ライブラリを使用します。

404 Not Found401 Unauthorized を除くすべてのエラーに ErrorDetails が含まれます。 ご確認ください。

エラーを解析する

[エラーの理由] フィールドは、エラータイプを一意に識別します。使用 このフィールドでエラーの処理方法を決めます。

ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
  // Unique error code in UPPER_SNAKE_CASE.
  String errorCode = errorDetails.getReason();
}

Ad Manager API のエラーには、一意の request_id もあり、その場合は サポートに提供し、 トラブルシューティングを行います次の例では request_id

ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
  // Unique request identifier.
  String requestId = errorDetails.getRequestInfo().getRequestId();
}

リソース名を作成する

クライアント ライブラリには、リソースからリソース名を作成するためのヘルパークラスが あります。

import com.google.ads.admanager.v1.OrderName;

// ...

//  Constructs a String in the format:
//  "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");

プロキシを構成する

Java クライアント ライブラリは http.proxyHosthttps.proxyHost の両方を遵守します。 システム プロパティの設定。これらの設定について詳しくは、 Java ネットワーキングとプロキシ