Hata Türleri

Hataları aşağıdaki genel kategorilere ayırdık:

  • Kimlik doğrulama
  • Tekrar denenebilir
  • Doğrulama
  • Senkronizasyonla ilgili

Bu kategoriler olası tüm hataları kapsamasa da ve bazıları birden fazla kategoriye girebilir. Yine de bu kategoriler, uygulamanızın hata işleme biçimini yapılandırmada başlangıç noktası olarak kullanılabilir. Belirli bir hata hakkında daha ayrıntılı bilgi için Sık Karşılaşılan Hatalar bölümüne bakın.

Kimlik doğrulama hataları

Kimlik doğrulama, bir kullanıcı adına uygulamanıza Google Ads'e erişme izni verilip verilmediğini ifade eder. Kimlik doğrulama, OAuth2 akışı tarafından oluşturulan kimlik bilgileri aracılığıyla yönetilir.

Kimlik doğrulama hatasının sizin kontrolünüz dışındaki faktörlerden kaynaklanmasının en yaygın nedeni, kimliği doğrulanmış kullanıcının, uygulamanıza kendi adına işlem yapması için verdiği izni iptal etmesidir. Örneğin, uygulamanız bağımsız istemciler için ayrı Google Ads hesaplarını yönetiyorsa ve söz konusu istemcinin hesabını yönetirken her istemci için ayrı ayrı kimlik doğrulaması yapıyorsa bir istemci, uygulamanızın erişimini istediği zaman iptal edebilir. Erişiminizin ne zaman iptal edildiğine bağlı olarak API doğrudan AuthenticationError.OAUTH_TOKEN_REVOKED hatası verebilir veya İstemci Kitaplıkları'ndaki yerleşik kimlik bilgisi nesneleri bir jetonun iptal edildiği istisnaya yol açabilir. Her iki durumda da, uygulamanızda müşterileriniz için bir kullanıcı arayüzü varsa uygulamanızın istemciler adına işlem yapma iznini yeniden almak için OAuth2 akışını yeniden başlatmalarını isteyebilir.

Yeniden denenebilir hatalar

TRANSIENT_ERROR veya INTERNAL_ERROR gibi bazı hatalar, isteğin kısa bir duraklamadan sonra yeniden denenmesiyle çözülebilecek geçici bir soruna işaret edebilir.

Kullanıcı tarafından başlatılan istekler için bir strateji, kullanıcı arayüzünüzde bir hata olduğunu hemen belirtmek ve kullanıcıya yeniden denemeyi tetiklemek için bir seçenek sunmaktır. Alternatif olarak, uygulamanız önce isteği otomatik olarak yeniden deneyebilir. Bu durumda, maksimum yeniden deneme sayısına veya toplam kullanıcı bekleme süresine ulaşıldığında hata sadece kullanıcı arayüzünde gösterilir.

Arka uçta başlatılan istekler için uygulamanızın, maksimum yeniden deneme sayısına kadar isteği otomatik olarak yeniden denemesi gerekir.

İstekleri yeniden denediğinizde eksponansiyel geri yükleme politikası kullanın. Örneğin, ilk denemeden önce 5 saniye duraklarsanız ikinci denemeden sonra 10 saniye, üçüncü yeniden denemeden sonra 20 saniye duraklayabilirsiniz. Üstel geri yükleme, API'yi çok agresif bir şekilde çağırmamanızı sağlar.

Doğrulamayla ilgili hatalar

Doğrulama hataları, bir işlem girişinin kabul edilebilir olmadığını gösterir. Örneğin, PolicyViolationError, DateError, DateRangeError, StringLengthError ve UrlFieldError.

Doğrulama hataları en sık, kullanıcının geçersiz giriş girdiği kullanıcı tarafından başlatılan isteklerde ortaya çıkar. Bu gibi durumlarda, aldığınız belirli API hatasına göre kullanıcıya uygun bir hata mesajı sağlamanız gerekir. API çağrısı yapmadan önce yaygın hatalarla ilgili kullanıcı girişlerini de doğrulayabilirsiniz. Böylece uygulamanız daha duyarlı hale gelir ve API kullanımınız daha verimli olur. Arka uçtan gelen isteklerde uygulamanız, başarısız işlemi gerçek kişi olan bir operatörün incelemesi için bir sıraya ekleyebilir.

Birçok Google Ads uygulaması, Google Ads nesnelerini depolamak için yerel bir veritabanı kullanır. Bu yaklaşımın zorluklarından biri, yerel veritabanının Google Ads'deki gerçek nesnelerle senkronizasyonunun bozulmasıdır. Örneğin, bir kullanıcı bir reklam grubunu doğrudan Google Ads'de silebilir, ancak uygulama ve yerel veritabanı bu değişikliğin farkında olmaz ve reklam grubu varmış gibi API çağrıları yapmaya devam eder. Bu senkronizasyon sorunları DUPLICATE_CAMPAIGN_NAME, DUPLICATE_ADGROUP_NAME, AD_NOT_UNDER_ADGROUP, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD ve daha pek çok hata şeklinde kendini gösterebilir.

Kullanıcı tarafından başlatılan istekler için bir strateji, kullanıcıyı olası bir senkronizasyon sorunu konusunda uyarmak, hemen ilgili Google Ads nesneleri sınıfını alan ve yerel veritabanını güncelleyen bir iş başlatmak, ardından kullanıcıdan kullanıcı arayüzünü yenilemesini istemektir.

Arka uç isteklerindeki bazı hatalar, uygulamanızın yerel veritabanınızı otomatik ve artımlı olarak düzeltmesi için yeterli bilgi sağlar. Örneğin CANNOT_OPERATE_ON_REMOVED_ADGROUPAD, uygulamanızın yerel veritabanınızda ilgili reklamı kaldırıldı olarak işaretlemesine neden olmalıdır. Bu şekilde işleyemeyeceğiniz hatalar, uygulamanızın daha kapsamlı bir senkronizasyon işi başlatmasına veya gerçek bir operatörün incelemesi için bir sıraya eklenmesine neden olabilir.