Hata Türleri

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

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

Bu kategoriler olası tüm hataları kapsamasa ve bazıları birden fazla kategoriye sığabilir ancak yine de uygulamanızın hata işleme yöntemini yapılandırmak için başlangıç noktası olarak kullanılabilir. Belirli bir hatayla ilgili daha fazla bilgi için Yaygın Hatalar bölümüne bakın.

Kimlik doğrulama hataları

Kimlik doğrulama, bir kullanıcı tarafından uygulamanıza kullanıcı adına Google Ads'e erişmek için izin verilip verilmediğini ifade eder. Kimlik doğrulama, OAuth2 akışı tarafından oluşturulan kimlik bilgileri ile yönetilir.

Kimlik doğrulama hatasının kontrolünüz dışındaki faktörlerden kaynaklanan 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 müşteriler için ayrı Google Ads hesapları yönetiyor ve bu müşterinin hesabını yönetirken her müşteri için ayrı ayrı kimlik doğrulaması yapıyorsa bir istemci, uygulamanızın erişimini istediği zaman iptal edebilir. Erişiminizin iptal edilme zamanına bağlı olarak API doğrudan AuthenticationError.OAUTH_TOKEN_REVOKED hatası döndürebilir veya İstemci Kitaplıkları'ndaki yerleşik kimlik bilgisi nesneleri, jeton iptal edilmiş istisna uygulayabilir. Her iki durumda da, uygulamanızda müşterileriniz için bir kullanıcı arayüzü varsa uygulamanızın müşterileriniz adına işlem yapma iznini yeniden elde etmek için OAuth2 akışını yeniden başlatması istenebilir.

Yeniden denenebilir hatalar

TRANSIENT_ERROR veya INTERNAL_ERROR gibi bazı hatalar, kısa bir duraklamanın ardından isteği yeniden deneyerek çözülebilecek geçici bir sorun olduğunu gösterebilir.

Kullanıcı tarafından başlatılan istekler için bir strateji, kullanıcı arayüzünde hemen bir hata belirtmek ve kullanıcıya yeniden deneme tetiklemesi seçeneği sunmaktır. Alternatif olarak, uygulamanız yalnızca maksimum yeniden deneme sayısına veya toplam kullanıcı bekleme süresine ulaştıktan sonra kullanıcı arayüzünde hatayı göstererek isteği otomatik olarak yeniden deneyebilir.

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

İstekleri yeniden denerken üstel geri yükleme politikası kullanın. Örneğin, ilk yeniden denemeden 5 saniye önce duraklatırsanız ikinci denemeden 10 saniye sonra ve üçüncü yeniden denemeden sonra 20 saniye sonra duraklatabilirsiniz. Eksponansiyel 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 edilmediğini gösterir. Örneğin, PolicyViolationError, DateError, DateRangeError, StringLengthError ve UrlFieldError.

Doğrulama hataları en yaygın olarak 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 spesifik API hatasına göre kullanıcıya uygun bir hata mesajı sağlamanız gerekir. API çağrısı yapmadan önce kullanıcı girişini sık yapılan hatalar için doğrulayabilirsiniz. Böylece uygulamanız daha hızlı yanıt verebilir ve API kullanımınızı daha verimli hale getirebilirsiniz. Uygulamanız, arka uçtan gelen istekler için başarısız işlemi gerçek kişi olan 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 senkronize olmamasıdır. Örneğin, bir kullanıcı reklam grubunu doğrudan Google Ads'de silebilir ancak uygulama ve yerel veritabanı bu değişiklikten haberdar değildir ve API çağrıları, sanki reklam grubu varmış gibi yayınlamaya devam eder. Bu senkronizasyon sorunları DUPLICATE_CAMPAIGN_NAME, DUPLICATE_ADGROUP_NAME, AD_NOT_UNDER_ADGROUP, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD gibi çeşitli hatalar şeklinde kendini gösterebilir.

Kullanıcı tarafından başlatılan istekler için kullanıcıyı olası bir senkronizasyon sorunu konusunda uyarmak, hemen ilgili Google Ads nesne 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ç istekleri için 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 bu reklamı yerel veritabanınızda kaldırıldı olarak işaretlemesine neden olmalıdır. Bu şekilde ele alamayacağınız hatalar, uygulamanızın daha eksiksiz bir senkronizasyon işi başlatmasına veya gerçek kişi olan operatörün incelemesi için bir sıraya eklenmesine neden olabilir.