Sorun giderme

Hatalar; yanlış ortam kurulumundan, yazılımınızdaki bir hatadan veya kullanıcının geçersiz girişinden kaynaklanabilir. Kaynağı ne olursa olsun, sorunu gidermeniz ve kodunuzu düzeltmeniz ya da kullanıcı hatasını gidermek için 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ı sağlama

  1. Google Ads API'ye erişiminiz olduğundan ve doğru şekilde ayarlandığından emin olun. Yanıtınız herhangi bir HTTP hatası döndürürse 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. Özellikle istemci kitaplıklarını kullanmadan çağrıları işleyecekseniz Google Ads API isteklerinin ve yanıtlarının yapısını öğrenin. 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 bilgileri gönderdiğini gösterir:

    {
      "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şlayabilirsiniz.

Sorunu belirleme

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

{
  "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 durumlar hakkında iyi bir genel bakış sunar. Günlüklerdeki hatayı belirledikten sonra ne anlama geldiğini anlamanız gerekir.

Hatayı araştırma

  1. En sık karşılaşılan hataları kapsayan 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 nasıl 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 ulaşmak için destek kanallarımızda arama yapın. Yaşadığınız sorunla daha önce karşılaşmış ve sorunu çözmüş birileri 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 reklam ürününün kurallarını ve sınırlamalarını devralır.

  5. Blog yayınları, uygulamanızla ilgili sorunları giderirken bazen iyi bir referans olabilir.

  6. Belgelenmemiş bir hatayla 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ıta baktıktan sonra, olası bir neden için isteği kontrol edin. Bazı Google Ads API hata mesajları, GoogleAdsError'nin 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, kodunuzu satır satır incelemek ve oluşturulan istek yüklerini gönderilmeden önce incelemek için entegre bir 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, kampanya adı isteğe eklenmemiş 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 değişiklik isteğindeki alan maskesinden bir alanın çıkarılması, 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 güncelleyebileceğiniz veya güncelleyip güncelleyemeyeceğinizle ilgili kısıtlama olup olmadığını görmek için referans belgelerindeki alan açıklamasını kontrol edin.

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 şunlardır:

  • Temizlenmiş JSON isteği ve yanıtı. OAuth erişim jetonunuz, yenileme jetonunuz 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ışırken yardım istiyorsanız ne yaptığınızı açıklamak için bir kod snippet'i ekleyin.
  • request-id. Bu sayede Google Developers İlişkileri ekibi üyeleri, üretim ortamında yapılmışsa isteğinizi bulabilir. Yalnızca request-id yerine daha fazla bağlamın yanı sıra yanıt başlıklarına veya yanıt hatalarını kapsayan istisnalara dahil edilen request-id değerini günlüğe kaydetmenizi ö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 seti oluşturmak, kod kalitesini ve güvenilirliğini önemli ölçüde artırır. Ayrıca, yeni değişikliklerin önceki işlevleri bozmadığından emin olmak için test sürecini hızlandırır. İyi bir hata işleme stratejisi, sorun giderme için gerekli tüm verileri ortaya çıkarmak açısından da önemlidir.