Sorun giderme

Video: 2019 atölyesinde yapılan hataları ele alma konuşmasına göz atın

Hatalar; yanlış ortam kurulumu, yazılımınızdaki bir hata veya bir kullanıcının geçersiz girişi olabilir. Kaynak ne olursa olsun sorunu gidermeniz ve kodunuzu düzeltmeniz veya kullanıcı hatasını ele almak için mantık eklemeniz gerekir. Bu kılavuzda, Google Ads API'den kaynaklanan hataları giderirken yararlanabileceğiniz bazı en iyi uygulamalar anlatılmaktadır.

Bağlantının sağlanması

  1. Google Ads API'ye erişiminiz olduğundan ve doğru kuruluma sahip olduğunuzdan emin olun. Yanıtınız HTTP hataları döndürürse bunları dikkatli bir şekilde ele aldığınızdan ve kodunuzdan kullanmak istediğiniz hizmetlere ulaştığınızdan emin olun.

  2. Kimlik bilgileriniz, hizmetlerin kimliğinizi doğrulayabilmesi için isteğinize yerleştirilir. Özellikle çağrıları istemci kitaplıklarını kullanmadan işleyecekseniz Google Ads API istek ve yanıtlarının yapısı hakkında bilgi edinin. Her istemci kitaplığı, kimlik bilgilerinizi yapılandırma dosyasına nasıl ekleyeceğinize dair belirli talimatlarla gönderilir (istemci kitaplığının BENİOKU bölümüne bakın).

  3. Doğru kimlik bilgilerini kullandığınızı doğrulayın. Hızlı Başlangıç Kılavuzu, 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ı giderme konusuna odaklanabilirsiniz.

Sorunun belirlenmesi

Google Ads API, hataları genellikle yanıttaki hataların bir listesini içeren bir JSON hata nesnesi olarak bildirir. Bu nesneler, hata kodunun yanı sıra hatanın nedenini açıklayan bir mesaj da sağlar. Sorunun ne olabileceğine dair ilk sinyalleriniz bunlardır.

{
  "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 belirler. Bu istisnaları yakalamak ve iletileri bir günlükte ya da sorun giderme ekranında yazdırmak, başlamak için iyi bir yoldur. Bu bilgileri uygulamanızdaki diğer günlüğe kaydedilen etkinliklerle entegre etmek, soruna neyin neden olabileceğine dair iyi bir genel bakış sağlar. Günlüklerde hatayı tanımladıktan sonra bunun ne anlama geldiğini belirlemeniz gerekir.

Hatayı araştırma

  1. En sık karşılaşılan hataları kapsayan Genel Hatalar dokümanlarımıza bakın. Hata mesajı, alakalı API referansları ve hatanın nasıl önleneceği veya işleneceği açıklanmaktadır.

  2. Sık karşılaşılan hatalar dokümanımızda hatadan özellikle bahsedilmiyorsa referans belgelerimize bakın ve hata dizesini arayın.

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

  4. Belgelenmemiş hatalarla karşılaşırsanız bu durumu forumda 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 kurallarını ve sınırlamalarını devralır.

  6. Blog yayınları, bazen başvurunuzla ilgili sorunları giderirken iyi bir referans noktası olabilir.

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

Nedeni bulma

Hatanın nedenini belirlemek için istisna mesajını kontrol edin. Yanıta baktıktan sonra talepte olası bir neden olup olmadığını kontrol edin. Bazı Google Ads API hata mesajlarında, GoogleAdsError öğesinin location alanında hatanın isteğin neresinde oluştuğunu belirten bir fieldPathElements bulunur. Örneğin:

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

Uygulamanız bir sorunu giderirken API'ye yanlış bilgi sağlıyor olabilir. Hata ayıklama konusunda size yardımcı olması için Eclipse (öncelikle Java'yı geliştirmek için kullanılan, ancak diğer diller için eklentileri olan ücretsiz ve açık kaynaklı bir IDE) gibi bir Etkileşimli Geliştirme Ortamı'nın (IDE) kullanılmasını kesinlikle öneririz. Ayrılma noktaları belirlemenizi ve kodunuzda satır satır ilerlemenizi sağlar.

İsteğin uygulama girişlerinizle eşleştiğinden emin olmak için tekrar kontrol edin (örneğin, kampanyanın adı isteğe uymuyor olabilir). Google Ads API daha seyrek güncellemeleri desteklediğinden, yapmak istediğiniz güncellemelerle eşleşen bir alan maskesi gönderdiğinizden emin olun. Değişim isteğinde alan maskesinden bir alanın atlanması, API'nin boş bırakması gerektiğini gösterir. Uygulamanız bir nesne alır, değişiklik yapar ve bu nesneyi geri gönderirse güncellemeyi desteklemeyen bir alana yazıyor olabilirsiniz. Alanı ne zaman güncelleyeceğiniz veya güncelleyebileceğiniz konusunda herhangi bir 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 etmeniz ve çözmeniz her zaman mümkün değildir. Forumda soru sorduğunuzda, aynı sorunla çalışmak zorunda kalmış binlerce geliştiriciye sorunuz olursa

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 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 ne yaptığınızı açıklamaya yardımcı olması için bir kod snippet'i ekleyin.
  • Talep Kimliği Bu, Google Geliştirici İlişkileri ekip üyelerinin, üretim ortamına yönelik olarak istekte bulunulduğunda isteğinizin yerini bulmasına olanak tanır. Yanıt hatalarını ve tek başına requestId parametresinden daha fazla bağlamı kapsayan istisnalarda, requestId öğesini günlüklerinize kaydetmenizi öneririz.
  • Sorun giderme sırasında çalışma zamanı/yorumlayıcı sürümü ve platform gibi ek bilgiler de yararlı olabilir.

Sorunu çözme

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

Paylaşmayı düşünebilirsiniz

Forumda daha önce bahsedilmeyen bir hatayla ilgili bir soru yayınladıysanız ve çözümü bulduysanız bunu ileti dizisine ekleyebilirsiniz. Aynı sorunla karşılaşan geliştiriciler sorunu hemen çözebilirler.

Sonraki adımlar

Artık bu sorunu çözdükten sonra, kodunuzun bu durumdan kaçınmak için nasıl iyileştirilebileceğini fark ettiniz mi?

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