Sorun giderme

Video: 2019 atölyesinde yapılan hata giderme konuşmasına göz atın

Hatalar; yanlış ortam kurulumu, yazılımınızdaki bir hata veya bir kullanıcı tarafından girilen geçersiz bir girişten kaynaklanabilir. Kaynağı ne olursa olsun sorunu gidermeniz ve kodunuzu düzeltmeniz ya da kullanıcı hatasını düzeltmek için bir mantık eklemeniz gerekir. Bu kılavuzda, Google Ads API'deki hataları gidermeye yönelik bazı en iyi uygulamalar ele alınmaktadır.

Bağlantıyı sağlama

  1. Google Ads API'ye erişebildiğinizden ve kurulumun doğru olduğundan emin olun. Yanıtınız HTTP hatası döndürürse bunları dikkatli bir şekilde ele aldığınızdan ve kodunuzdan kullanmayı planladığınız hizmetlere ulaştığınızdan emin olun.

  2. Hizmetlerin kimliğinizi doğrulayabilmesi için kimlik bilgileriniz isteğinize yerleştirilir. Özellikle istemci kitaplıklarını kullanmadan çağrıları ele alacaksanız Google Ads API isteklerinin ve yanıtlarının yapısı hakkında bilgi edinin. Her istemci kitaplığı, kimlik bilgilerinizin yapılandırma dosyasına nasıl ekleneceğiyle ilgili belirli talimatlarla gönderilir (istemci kitaplığının README'ye bakın).

  3. Doğru kimlik bilgilerini kullandığınızdan emin olun. 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ı giderme konusuna adım atabilirsiniz.

Sorunun belirlenmesi

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

{
  "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ıtta hataları içeren istisnalar uygular. Bu istisnaları yakalamak ve mesajları bir günlük dosyasına veya sorun giderme ekranında yazdırmak, başlamak için harika bir yoldur. Bu bilgilerin uygulamanızdaki günlüğe kaydedilen diğer etkinliklerle entegre edilmesi, sorunun neden tetiklendiğine dair iyi bir genel bakış sağlar. Günlüklerde hatayı tespit ettikten sonra bunun ne anlama geldiğini anlamanız gerekir.

Hatayı araştırma

  1. En sık karşılaşılan hataları kapsayan Genel Hatalar belgelerimize bakın. Burada hata mesajı, ilgili API referansları ve hatanın nasıl önleneceği veya işleneceği açıklanmaktadır.

  2. Sık karşılaşılan hatalar dokümanlarımızda özellikle söz konusu hatadan bahsedilmiyorsa referans dokümanlarımıza bakın ve hata dizesini arayın.

  3. API deneyimlerini paylaşan diğer geliştiricilere erişmek için destek kanallarımızda arama yapın. Bir başkası yaşadığınız sorunu karşılaşmış ve çözmüş olabilir.

  4. Belgelenmemiş herhangi bir hatayla karşılaşırsanız forumda bu durumu bize bildirin.

  5. 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 kural ve sınırlamalarını devralır.

  6. Blog yayınları, uygulamanızla ilgili sorunları giderirken zaman zaman iyi bir referans olabilir.

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

Nedeni bulma

Hatanın nedenini belirlemek için istisna mesajını kontrol edin. Yanıtı inceledikten sonra isteğin olası nedeni olup olmadığını kontrol edin. Bazı Google Ads API hata mesajları GoogleAdsError içindeki location alanında, hatanın istekte nerede oluştuğunu belirten fieldPathElements simgesi içerir. Ö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 API'ye yanlış bilgiler sağlıyor olabilir. Hata ayıklama konusunda size yardımcı olması için Eclipse (esas olarak Java'yı geliştirmek amacıyla kullanılan, ancak diğer dillerde eklentileri olan ücretsiz ve açık kaynaklı bir IDE) gibi bir Etkileşimli Geliştirme Ortamı (IDE) kullanmanızı önemle tavsiye ederiz. Ayrılma noktaları belirlemenize ve kodunuzda satır satır ilerlemenize olanak tanır.

İsteğin uygulama girişlerinizle eşleştiğinden emin olmak için (örneğin, Kampanyanın adı isteğe yapmıyor olabilir) emin olun. 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ğinde alan maskesinden bir alanın atlanması, API'nin bunu olduğu gibi bırakması gerektiğini gösterir. Uygulamanız bir nesneyi alır, değişiklik yapar ve nesneyi geri gönderirse güncelleme yapmayı desteklemeyen bir alana yazıyor olabilirsiniz. Alanı ne zaman güncelleyebileceğinize veya güncelleyip güncellemeyeceğinize dair herhangi bir kısıtlama olup olmadığını görmek için referans belgelerdeki alan açıklamasını kontrol edin.

Nasıl yardım alabilirim?

Sorunu kendi başınıza belirlemek ve çözmek her zaman mümkün değildir. Forumda soru sormak, aynı sorunla karşılaşmış olabilecek binlerce geliştiriciye sorunuzu gösterir.

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ı. Geliştirici jetonunuz veya AuthToken gibi hassas bilgileri kaldırdığınızdan emin olun.
  • Kod snippet'leri. Dille ilgili bir sorun yaşıyorsanız veya API ile çalışma konusunda yardım istiyorsanız yaptığınız işlemi açıklığa kavuşturacak bir kod snippet'i ekleyin.
  • İstek Kimliği Bu sayede Google Geliştirici İlişkileri ekip üyeleri, üretim ortamına yönelik olarak gönderilmişse isteğinizi bulabilir. Günlüklerinizde requestId'nin yanıt hatalarını içeren istisnalara bir özellik olarak dahil edilmesini ve requestId'nin tek başına yerine daha fazla bağlamı eklemenizi öneririz.
  • Sorun giderme sırasında çalışma zamanı/yorumlayıcı sürümü ve platform gibi ek bilgiler de yararlı olabilir.

Sorunu çözme

Sorunu anladığınıza ve bir çözüm bulduğunuza göre, artık değişikliğinizi yapıp düzeltmeyi bir test hesabı (tercih edilen) veya üretimle (hata yalnızca belirli bir üretim hesabındaki veriler için geçerliyse) test edebilirsiniz.

Paylaşın

Forumda daha önce burada karşılanmayan bir hatayla ilgili bir soru yayınladıysanız ve çözümü bulduysanız, bu soruyu ileti dizisine eklemeyi düşünün. Bir geliştirici aynı sorunu tekrar yaşadığında hemen çözebilir.

Sonraki adımlar

Bu sorunu çözdünüze göre, daha en baştan bu durumdan kaçınmak için kodunuzu iyileştirmenin bir yolunu fark ettiniz mi?

İyi bir birim testleri grubu oluşturmak, kod kalitesini ve güvenilirliğini önemli ölçüde iyileştirmeye yardımcı olur. Ayrıca, önceki işlevleri bozmadığından emin olmak için yeni değişikliklerin test edilme sürecini de hızlandırır. İyi bir hata ele alma stratejisi, sorun giderme için gerekli tüm verileri ortaya çıkarmada da kilit rol oynar.