Sorun giderme

Video: 2019'daki atölye çalışmasında hata işleme ile ilgili konuşmaya göz atın

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 gelen hatalarla ilgili sorunları giderirken dikkat edilmesi gereken bazı en iyi uygulamalar ele alınmaktadır.

Bağlantı olduğundan emin olun

  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ürse bunları dikkatlice ele aldığınızdan ve kodunuzdan kullanmak istediğiniz hizmetlere ulaştığınızdan emin olun.

  2. Hizmetlerin kimliğinizi doğrulayabilmesi için kimlik bilgileriniz isteğinize yerleştirilir. Google Ads API isteklerinin ve yanıtlarının yapısını öğrenin. Özellikle istemci kitaplıklarını kullanmadan çağrıları işleyecekseniz bu bilgiye ihtiyacınız olacaktır. Her istemci kitaplığı, kimlik bilgilerinizi yapılandırma dosyasına nasıl ekleyeceğinizle ilgili talimatlarla birlikte gönderilir (İstemci 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ö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ş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 neden oluştuğunu açıklayan bir mesaj da sağlar. Bunlar, sorunun ne olabileceğine dair ilk sinyallerdir.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword/matchtype'.",
      "location": { "operationIndex": "1" }
    }
  ]
}

Tüm istemci kitaplıklarımız, yanıttaki hataları kapsayan istisnalar oluşturur. Bu istisnaları yakalamak ve mesajları 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 neyin tetikliyor olabileceğine dair 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ı ele alan Sık Karşılaşılan Hatalar dokümanımıza bakın. Hata mesajını, ilgili API referanslarını ve hatanın nasıl önleneceğini veya nasıl ele alınacağını açıklar.

  2. Sık karşılaşılan hatalarla ilgili dokümanlarımızda hata özellikle belirtilmiyorsa 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 çö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 belirlemeniz gerekir.

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": {
        "operationIndex": "0",
        "fieldPathElements": [ { "fieldName": "keyword" } ]
      }
    }
  ]
}

Bir sorunu giderirken uygulamanızın API'ye yanlış bilgi sağladığını fark edebilirsiniz. Hata ayıklama konusunda size yardımcı olması için Eclipse gibi bir etkileşimli geliştirme ortamı (IDE) kullanmanızı önemle tavsiye ederiz (Eclipse, öncelikle Java geliştirmek için kullanılan ücretsiz ve açık kaynaklı bir IDE'dir ancak diğer diller için eklentileri de vardır). Kesme noktaları ayarlamanıza ve kodunuzda satır satır ilerlemenize olanak tanır.

İsteğin, uygulama girişlerinizle eşleştiğinden emin olmak için iki kez 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 mutasyon isteğinde 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ştirerek geri gönderiyorsa güncelleme desteklenmeyen 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ına bakın.

Nasıl yardım alabilirim?

Sorunu kendi başınıza tanımlayıp çö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ı. Geliştirici jetonunuz veya AuthToken'ınız 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.
  • RequestId. Bu sayede, üretim ortamına karşı yapılan istekler Google Geliştirici İlişkileri ekibi üyeleri tarafından bulunabilir. Yanıt hatalarını kapsayan istisnalarda özellik olarak yer alan requestId'yi ve requestId'den daha fazla bağlamı günlüklerinize kaydetmenizi öneririz.
  • Çalışma süresi 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ğinizi 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, kodunuzu 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.