Sorun giderme

Hatalar, yanlış ortam kurulumundan, yazılımınızdaki bir hatadan veya kullanıcıdan gelen geçersiz girişten kaynaklanabilir. Kaynağı ne olursa olsun, sorunu gidermeniz ve kodunuzu düzeltmeniz ya da kullanıcı hatasını işleyecek mantık eklemeniz gerekir. Bu kılavuzda, Google Ads API'den kaynaklanan hatalarla ilgili sorunları giderirken dikkat edilmesi gereken bazı en iyi uygulamalar ele alınmaktadır.

Bağlantıyı kontrol etme

  1. Google Ads API'ye erişiminiz olduğundan ve doğru bir kurulum yaptığınızdan emin olun. Yanıtınız herhangi bir HTTP hatası döndürüyorsa bunları dikkatlice ele aldığınızdan ve kodunuzdan kullanmak istediğiniz hizmetlere ulaştığınızdan emin olun.

  2. Hizmetlerin kimliğinizi doğrulaması için kimlik bilgileriniz isteğinize yerleştirilir. Google Ads API istek ve yanıtlarının yapısını öğrenin. Özellikle istemci kitaplıklarını kullanmadan çağrıları işleyecekseniz bu yapıya hakim olmanız gerekir. Her istemci kitaplığı, kimlik bilgilerinizi yapılandırma dosyasına nasıl ekleyeceğinizle ilgili talimatlarla birlikte gönderilir (istemci kitaplığının README dosyasına bakın).

  3. Doğru kimlik bilgilerini kullandığınızı doğrulayın. Hızlı başlangıç kılavuzumuz, ihtiyacınız olan doğru seti edinme sürecinde size yol gösterir. Örneğin, aşağıdaki yanıt hatası, kullanıcının geçersiz kimlik doğrulama kimlik bilgileri gönderdiğini gösteriyor:

    {
      "error": {
        "code": 401,
        "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. Visit https://developers.google.com/identity/sign-in/web/devconsole-project.",
        "status": "UNAUTHENTICATED",
        "details": [
          {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "detail": "Authentication error: 2"
          }
        ]
      }
    }
    

Bu adımları uygulamanıza rağmen sorun yaşamaya devam ediyorsanız Google Ads API hatalarını gidermeye başlamanız gerekir.

Sorunu belirleme

Google Ads API, hataları genellikle yanıttaki hata listesini içeren bir JSON hata nesnesi olarak bildirir. Bu nesneler, hata kodunun yanı sıra hatanın neden oluştuğunu açıklayan bir mesaj sağlar. Bu mesajlar, sorunun ne olabileceğine dair ilk sinyallerdir.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword.match_type'.",
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 1 }
        ]
      }
    }
  ]
}

Tüm istemci kitaplıklarımız, yanıttaki hataları kapsayan istisnalar oluşturur. Bu istisnaları yakalamak ve iletileri bir günlükte veya sorun giderme ekranında yazdırmak, başlamak için harika bir yoldur. Bu bilgileri uygulamanızdaki diğer kaydedilmiş etkinliklerle entegre etmek, sorunu tetikleyebilecek unsurlara dair iyi bir genel bakış sunar. Günlüklerdeki hatayı belirledikten sonra ne anlama geldiğini anlamanız gerekir.

Hatayı araştırın

  1. En sık karşılaşılan hataları ele alan Sık Karşılaşılan Hatalar dokümanımıza bakın. Hata mesajı, ilgili API referansları ve hatanın nasıl önleneceği veya ele alınacağı açıklanır.

  2. Sık karşılaşılan hatalarla ilgili dokümanlarımızda bu hatadan özellikle bahsedilmiyorsa referans dokümanlarımıza göz atın ve hata dizesini bulun.

  3. API ile ilgili deneyimlerini paylaşan diğer geliştiricilere erişmek için destek kanallarımızda arama yapın. Başka bir kullanıcı, karşılaştığınız sorunu yaşamış ve çözmüş olabilir.

  4. Doğrulama veya hesap sınırı sorunlarını giderme konusunda yardım almak için Google Ads Yardım Merkezi'ne gidin. Google Ads API, temel Google Ads ürününün kurallarını ve sınırlamalarını devralır.

  5. Blog yayınları, uygulamanızda sorun giderirken zaman zaman iyi bir referans olabilir.

  6. Belgelenmemiş hatalarla karşılaşırsanız destek ekibiyle iletişime geçin.

Hatayı araştırdıktan sonra temel nedeni belirleme zamanı gelir.

Nedeni bulma

Hatanın nedenini belirlemek için istisna mesajını kontrol edin. Yanıtı inceledikten sonra olası bir neden için isteği kontrol edin. Bazı Google Ads API hata mesajları, GoogleAdsError öğesinin location alanında fieldPathElements içerir. Bu, hatanın istekte nerede oluştuğunu gösterir. Örneğin:

{
  "errors": [
    {
      "errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
      "message": "Criteria type can not be targeted.",
      "trigger": { "stringValue": "" },
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 0 },
          { "fieldName": "create" },
          { "fieldName": "keyword" }
        ]
      }
    }
  ]
}

Bir sorunu giderirken uygulamanızın API'ye yanlış bilgi sağladığını fark edebilirsiniz. Kesme noktaları ayarlamak, kodunuzda satır satır ilerlemek ve oluşturulan istek yüklerini gönderilmeden önce incelemek için entegre geliştirme ortamı (IDE) hata ayıklayıcısı kullanmanızı önemle tavsiye ederiz.

İsteğin, uygulama girişlerinizle eşleştiğinden emin olmak için tekrar kontrol edin (örneğin, kampanyanın adı isteğe dahil edilmemiş olabilir). Yapmak istediğiniz güncellemelerle eşleşen bir alan maskesi gönderdiğinizden emin olun. Google Ads API, seyrek güncellemeleri destekler. Bir alanı mutate isteğindeki alan maskesinden çıkarmak, API'nin bu alanı olduğu gibi bırakması gerektiğini gösterir. Uygulamanız bir nesneyi alıp değiştirip geri gönderiyorsa güncellemeyi desteklemeyen bir alana yazıyor olabilirsiniz. Alanı ne zaman veya güncelleyip güncelleyemeyeceğinizle ilgili kısıtlamalar olup olmadığını görmek için referans belgelerindeki alanın açıklamasını inceleyin.

Nasıl yardım alabilirim?

Sorunu kendi başınıza tespit edip çözmeniz her zaman mümkün olmayabilir. Yardım için destek ekibiyle iletişime geçebilirsiniz.

Sorgularınıza mümkün olduğunca fazla bilgi eklemeye çalışın. Önerilen öğeler şunları içerir:

  • Temizlenmiş JSON isteği ve yanıtı. OAuth erişim jetonunuz, yenileme jetonunuz, geliştirici jetonunuz (eski istek başlıklarında hâlâ yer alıyorsa) ve müşteri kimlikleriniz gibi hassas bilgileri kaldırdığınızdan emin olun.
  • Kod snippet'leri. Dile özgü bir sorun yaşıyorsanız veya API ile çalışma konusunda yardım istiyorsanız ne yaptığınızı açıklamanıza yardımcı olması için bir kod snippet'i ekleyin.
  • request-id. Bu sayede, üretim ortamına yönelik bir istekte bulunmanız durumunda Google Geliştirici İlişkileri ekibi üyeleri isteğinizi bulabilir. Yanıtlarda yer alan request-id veya yanıt hatalarını kapsayan istisnaların yanı sıra yalnızca request-id'dan daha fazla bağlamın kaydedilmesini öneririz.
  • Çalışma zamanı veya yorumlayıcı sürümü ve platform gibi ek bilgiler de sorun giderme sırasında yararlı olabilir.

Sorunu çözün

Sorunu belirleyip çözümünü bulduğunuza göre artık değişikliği yapma ve düzeltmeyi bir test hesabında (tercih edilen) veya üretimde (hata yalnızca belirli bir üretim hesabındaki veriler için geçerliyse) test etme zamanı geldi.

Sonraki adımlar

Bu sorunu çözdüğünüze göre, kodu iyileştirerek bu sorunu en baştan önlemenin yollarını fark ettiniz mi?

İyi bir birim testi grubu oluşturmak, kod kalitesini ve güvenilirliğini önemli ölçüde artırır. Ayrıca, önceki işlevlerin bozulmadığından emin olmak için yeni değişikliklerin test edilme sürecini de hızlandırır. İyi bir hata işleme stratejisi, sorun giderme için gerekli tüm verilerin ortaya çıkarılmasında da önemlidir.