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 は、次の場所で認証情報を順番に検索します。
GOOGLE_APPLICATION_CREDENTIALS
環境変数。- Google Cloud CLI(gcloud CLI)で設定したユーザー認証情報。
- 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.level
を CONFIG
に設定します。または、
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 Found
と 401 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.proxyHost
と https.proxyHost
の両方を遵守します。
システム プロパティの設定。これらの設定について詳しくは、
Java ネットワーキングとプロキシ。