Hataları aşağıdaki geniş kategorilere ayırdık:
- Kimlik doğrulama
- Yeniden denenebilir
- Doğrulama
- Senkronizasyonla ilgili
Bu kategoriler olası tüm hataları kapsamamasına ve bazı hatalar birden fazla kategoriye girebilmesine rağmen, uygulamanızın hata işlemeyi yapılandırmak için bir başlangıç noktası olarak kullanılabilir. Belirli hatalar hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın:
- Sık Karşılaşılan Hatalar, belirli bir hata hakkında daha fazla ayrıntı sağlar.
- API tarafından kullanılan mantıksal hata modeli hakkında ayrıntılı bilgi için google.rpc.Status.
Kimlik doğrulama hataları
Kimlik doğrulama, uygulamanızın bir kullanıcı tarafından kendi adına 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 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 müşteriler için ayrı Google Ads hesaplarını yönetiyorsa ve bu müşterinin hesabını yönetirken her müşteri için ayrı ayrı kimlik doğruluyorsa müşteriler, uygulamanızın erişimini istedikleri zaman iptal edebilir. Erişiminizin ne zaman iptal edildiğine bağlı olarak API doğrudan AuthenticationError.OAUTH_TOKEN_REVOKED
hatasını döndürebilir veya istemci kitaplıklarındaki yerleşik kimlik bilgisi nesneleri, jeton iptal edildi istisnası oluşturabilir. Her iki durumda da uygulamanızın müşterileriniz için bir kullanıcı arayüzü varsa müşterilerinizden, uygulamalarınızın kendi adlarına işlem yapma iznini yeniden oluşturmak için OAuth2 akışını yeniden başlatmalarını isteyebilir.
Yeniden denenebilir hatalar
TRANSIENT_ERROR
veya INTERNAL_ERROR
gibi bazı hatalar, kısa bir duraklamadan sonra isteği yeniden deneyerek çözülebilecek geçici bir sorunu gösterebilir.
Kullanıcı tarafından başlatılan isteklerde, kullanıcı arayüzünüzde hemen bir hata belirtip kullanıcıya yeniden deneme seçeneği sunabilirsiniz. Alternatif olarak, uygulamanız önce isteği otomatik olarak yeniden deneyebilir ve yalnızca maksimum yeniden deneme sayısına veya toplam kullanıcı bekleme süresine ulaşıldıktan sonra kullanıcı arayüzünde hatayı gösterebilir.
Arka uçta başlatılan istekler için uygulamanız, isteği maksimum deneme sayısına kadar otomatik olarak yeniden denemelidir.
İstekleri yeniden denerken eksponansiyel geri yükleme politikası kullanın. Örneğin, ilk yeniden denemeden önce 5 saniye duraklatırsanız ikinci yeniden denemeden sonra 10 saniye, üçüncü yeniden denemeden sonra ise 20 saniye duraklatabilirsiniz. Eksponansiyel geri yükleme, API'yi çok agresif bir şekilde çağırmadığınızdan emin olmanıza yardımcı olur.
Doğrulamayla ilgili hatalar
Doğrulama hataları, bir işleme yapılan girişin kabul edilemediğini gösterir.
Örneğin, PolicyViolationError
,
DateError
,
DateRangeError
,
StringLengthError
ve
UrlFieldError
.
Doğrulama hataları en sık, kullanıcının geçersiz giriş yaptığı kullanıcı tarafından başlatılan isteklerde görülür. Bu gibi durumlarda, aldığınız API hatasına göre kullanıcıya uygun bir hata mesajı sağlamanız gerekir. Ayrıca, API çağrısı yapmadan önce kullanıcı girişini yaygın hatalara karşı doğrulayarak uygulamanızın daha hızlı yanıt vermesini ve API kullanımınızın daha verimli olmasını sağlayabilirsiniz. Arka uçtan gelen istekler için uygulamanız, başarısız olan işlemi bir sıraya ekleyebilir. Bu sıra, bir operatör tarafından incelenir.
Senkronizasyonla ilgili hatalar
Birçok Google Ads uygulaması, Google Ads nesnelerini depolamak için yerel bir veritabanı kullanır. Bu yaklaşımla ilgili bir zorluk, yerel veritabanının Google Ads'deki gerçek nesnelerle senkronizasyonunun bozulabilmesidir. Örneğin, bir kullanıcı doğrudan Google Ads'de bir reklam grubunu silebilir ancak uygulama ve yerel veritabanı bu değişiklikten haberdar 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
gibi çeşitli hatalara ve daha pek çok soruna neden olabilir.
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 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ç isteklerinde, bazı hatalar uygulamanızın yerel veritabanınızı otomatik ve artımlı olarak düzeltmesi için yeterli bilgiyi sağlar. Örneğin,
CANNOT_OPERATE_ON_REMOVED_ADGROUPAD
uygulamanızın, yerel veritabanınızda bu reklamı
kaldırılmış olarak işaretlemesine neden olmalıdır. Bu şekilde işleyemediğiniz hatalar, uygulamanızın daha kapsamlı bir senkronizasyon işi başlatmasına veya bir operatör tarafından incelenmek üzere sıraya eklenmesine neden olabilir.