Google מספקת ספריית לקוח ב-Java לאינטראקציה עם Ad Manager API. אנחנו ממליצים להשתמש בספריית הלקוח עם 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 וב-Application Default Credentials (ADC) לאימות.
אפשר לחפש פרטי כניסה ב-ADC במיקומים הבאים:
- משתנה סביבה
GOOGLE_APPLICATION_CREDENTIALS
. - פרטי כניסה של משתמשים שהוגדרו באמצעות Google Cloud CLI (CLI של gcloud).
- כשמריצים ב-Google Cloud, חשבון השירות שמצורף למשאב של Google Cloud.
במאמר הבא מוסבר איך ליצור ולהגדיר את פרטי הכניסה ל-ADC. אימות.
יצירת הבקשה הראשונה
לכל שירות יש אובייקט ServiceClient
עם גם סינכרוני וגם אסינכרוני
לכל method של REST. בדוגמה הבאה כתוב 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
(JUL) לרישום בקשת HTTP ופרטי תגובה, כולל כתובת URL, כותרות
תוכן.
כדי להפעיל רישום ביומן, צריך להגדיר את יומן הרישום של הכיתה הזו לרמת יומן של
CONFIG
ומעלה. השלבים לשם כך משתנים בהתאם לרישום ביומן
שבו אתם משתמשים.
יולי
כדי להפעיל רישום ביומן, צריך להגדיר את 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 Logging
כדי לתעד הודעות של JUL. אפשר להגדיר זאת דרך SystemProperty
או
באמצעות Log4jBridgeHandler
והקובץ 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 בספריית הלקוח של Java.
כל השגיאות מלבד 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");
קביעת הגדרות לשרת proxy
ספריית הלקוח של Java מכבדת גם את http.proxyHost
וגם את https.proxyHost
הגדרות של נכס מערכת. לפרטים נוספים על ההגדרות האלה, אפשר לעיין במאמר
רישות Java ושרתי proxy.