Java

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:

  1. GOOGLE_APPLICATION_CREDENTIALS ortam değişkeni.
  2. Kullanıcı kimlik bilgileri, Google Cloud KSA (gcloud KSA) üzerinden ayarlanır.
  3. 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.