Google fournit une bibliothèque cliente Java pour interagir avec l'API Ad Manager. Nous vous recommandons d'utiliser la bibliothèque cliente avec Apache Maven ou Gradle.
Pour commencer, créez un projet dans l'IDE de votre choix ou ajoutez le
à un projet existant. Google publie les artefacts des bibliothèques clientes
dans le dépôt central 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'
Configurer les identifiants
La bibliothèque cliente Java utilise OAuth2 et les identifiants par défaut de l'application. (ADC) pour s'authentifier.
ADC recherche les identifiants dans l'ordre aux emplacements suivants:
GOOGLE_APPLICATION_CREDENTIALS
.- Identifiants utilisateur configurés via la Google Cloud CLI (gcloud CLI).
- Lors de l'exécution sur Google Cloud, le compte de service associé à la ressource Google Cloud
Pour créer et configurer vos identifiants ADC, consultez Authentification.
Faites votre première demande
Chaque service possède un objet ServiceClient
avec des valeurs synchrones et asynchrones
pour chaque méthode REST. L'exemple suivant indique un objet Network
de manière synchrone.
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);
}
}
}
Pour obtenir des exemples d'autres méthodes et ressources, consultez le dépôt GitHub
googleapis/google-cloud-java
Consigner les requêtes et réponses HTTP
La classe com.google.api.client.http.HttpTransport
effectue toutes les requêtes HTTP.
Ce cours utilise
java.util.logging
(JUL) pour consigner les détails des requêtes et des réponses HTTP, y compris l'URL, les en-têtes et
contenus.
Pour activer la journalisation, définissez l'enregistreur pour cette classe sur un niveau de journalisation de
CONFIG
ou version ultérieure. La procédure diffère selon le type de journalisation
que vous utilisez.
JUL
Pour activer la journalisation, définissez com.google.api.client.http.level
sur CONFIG
ou
plus haut dans votre fichier logging.properties
.
handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG
Vous pouvez également activer la journalisation dans votre code 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
Si vous utilisez Log4j pour la journalisation, vous pouvez utiliser
Adaptateur de journalisation JDK Log4j
pour consigner les messages JUL. Vous pouvez configurer cela via un SystemProperty
ou
à l'aide de Log4jBridgeHandler
et d'un fichier JUL logging.properties
.
Propriété système
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Gestionnaire de pont Log4j
handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true
Ces paramètres permettent d'écrire les journaux de l'API Ad Manager sur n'importe quel enregistreur ayant un niveau
CONFIG
ou version ultérieure. L'exemple de fichier log4j2.xml
suivant configure un
Logger qui écrit dans 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>
Gérer les erreurs
Toutes les erreurs de l'API Ad Manager sont des sous-classes de ApiException dans la bibliothèque cliente Java.
Toutes les erreurs, à l'exception de 404 Not Found
et 401 Unauthorized
, contiennent ErrorDetails
avec des informations supplémentaires.
Erreurs d'analyse
Le champ "Motif de l'erreur" identifie les types d'erreurs de manière unique. Utilisez ce champ pour déterminer comment gérer l'erreur.
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
// Unique error code in UPPER_SNAKE_CASE.
String errorCode = errorDetails.getReason();
}
Les erreurs de l'API Ad Manager incluent également un request_id
unique que vous pouvez
fournir à l'assistance pour obtenir de l'aide
le dépannage. L'exemple suivant extrait les
request_id
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
// Unique request identifier.
String requestId = errorDetails.getRequestInfo().getRequestId();
}
Créer des noms de ressources
La bibliothèque cliente fournit des classes d'assistance pour créer des noms de ressources à partir de ID.
import com.google.ads.admanager.v1.OrderName;
// ...
// Constructs a String in the format:
// "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");
Configurer les paramètres de proxy
La bibliothèque cliente Java respecte à la fois http.proxyHost
et https.proxyHost
Paramètres de la propriété système. Pour en savoir plus sur ces paramètres, consultez
Mise en réseau et proxys Java.