Google, Ad Manager API ile etkileşim için bir Java istemci kitaplığı sağlar. İstemci kitaplığını Apache Maven veya Gradle ile kullanmanızı öneririz.
Başlamak için seçtiğiniz IDE'de yeni bir proje oluşturun veya
ya da mevcut
projelere bağlıdır. Google, istemci kitaplığı yapılarını
depolandığı gibi
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'
Kimlik bilgilerini yapılandırma
Java istemci kitaplığı OAuth2 ve Uygulama Varsayılan Kimlik Bilgilerini kullanır (ADC) eklemeniz gerekir.
ADC, kimlik bilgilerini aşağıdaki konumlarda sırayla arar:
GOOGLE_APPLICATION_CREDENTIALS
ortam değişkeni.- Kullanıcı kimlik bilgileri, Google Cloud KSA (gcloud KSA) üzerinden ayarlanır.
- Google Cloud'da çalışırken Google Cloud kaynağına bağlı hizmet hesabı.
ADC kimlik bilgilerinizi oluşturmak ve yapılandırmak için bkz. Kimlik Doğrulama.
İlk talebinizi gönderin
Her hizmette hem eşzamanlı hem de eşzamansız olan bir ServiceClient
nesnesi bulunur
yöntemlerine göz atın. Aşağıdaki örnekte Network
senkronize edebilirsiniz.
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);
}
}
}
Diğer yöntem ve kaynak örnekleri için GitHub deposuna göz atın
googleapis/google-cloud-java
.
HTTP isteklerini ve yanıtlarını günlüğe kaydetme
Tüm HTTP isteklerini com.google.api.client.http.HttpTransport
sınıfı yapar.
Bu sınıfta kullanılanlar
java.util.logging
(JUL) URL, başlıklar ve dahil olmak üzere HTTP isteğini ve yanıt ayrıntılarını günlüğe kaydetmek için
içerik.
Günlüğe kaydetmeyi etkinleştirmek için bu sınıfın günlük kaydını şu günlük düzeyi olarak ayarlayın:
CONFIG
veya üzeri. Bu işleme ilişkin adımlar, hangi günlük kaydına
pek çok yolu vardır.
TEM
Günlük kaydını etkinleştirmek için com.google.api.client.http.level
öğesini CONFIG
olarak ayarlayın veya
daha yüksek olduğunu görebilirsiniz.logging.properties
handlers=java.util.logging.ConsoleHandler
com.google.api.client.http.level=CONFIG
java.util.logging.ConsoleHandler.level=CONFIG
Alternatif olarak, Java kodunuza giriş yapmayı da etkinleştirebilirsiniz.
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
Günlük kaydı için Log4j'yi kullanıyorsanız
Log4j JDK Günlük Kaydı Adaptörü
JUL mesajlarını günlüğe kaydetme. Bu, SystemProperty
aracılığıyla veya
(Log4jBridgeHandler
ve TEMMUZ logging.properties
dosyası kullanılarak)
System Mülkü
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
Log4j Köprü İşleyicisi
handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler
org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels = true
Bu ayarlar, Ad Manager API günlüklerini
CONFIG
veya üzeri. Aşağıdaki örnek log4j2.xml
dosyası,
System.out
alanına yazan günlük kaydı.
<?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>
Hataları işleme
Tüm Ad Manager API hataları şunun alt sınıflarıdır: ApiException kullanabilirsiniz.
404 Not Found
ve 401 Unauthorized
dışındaki tüm hatalar ErrorDetails
içeriyor
inceleyebilirsiniz.
Ayrıştırma hataları
Hata nedeni alanı, hata türlerini benzersiz şekilde tanımlar. Tekliflerinizi otomatikleştirmek ve optimize etmek için bu alana girin.
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null) {
// Unique error code in UPPER_SNAKE_CASE.
String errorCode = errorDetails.getReason();
}
Ad Manager API hataları, uygulayabileceğiniz benzersiz bir request_id
de içerir.
şu konuda yardım almak için destek ekibine ulaşın:
sorun giderme adımlarına göz atın. Aşağıdaki örnekte
request_id
ErrorDetails errorDetails = apiException.getErrorDetails();
if (errorDetails != null && errorDetails.getRequestInfo() != null) {
// Unique request identifier.
String requestId = errorDetails.getRequestInfo().getRequestId();
}
Kaynak adları oluşturma
İstemci kitaplığı, Kimlikler.
import com.google.ads.admanager.v1.OrderName;
// ...
// Constructs a String in the format:
// "networks/{networkCode}/orders/{orderId}"
OrderName.of("123", "789");
Proxy ayarlarını yapılandırma
Java istemci kitaplığı hem http.proxyHost
hem de https.proxyHost
yönergesini dikkate alıyor
Sistem Özelliği ayarları. Bu ayarlarla ilgili daha fazla bilgi için bkz.
Java ağ iletişimi ve proxy'ler.