Webhook entegrasyonunu kurma

Adapty webhook entegrasyonu şu adımlardan oluşur:

webhook-setup.webp

  1. Endpoint’inizi kurarsınız:
    1. Sunucunuzun Content-Type başlığı application/json olarak ayarlanmış Adapty isteklerini işleyebildiğinden emin olun.
    2. Sunucunuzu Adapty’nin doğrulama isteğini alacak ve herhangi bir 2xx durum koduyla JSON gövdesiyle yanıt verecek şekilde yapılandırın.
    3. Bağlantı doğrulandıktan sonra abonelik olaylarını işleyin.
  2. Webhook entegrasyonunu yapılandırıp etkinleştirirsiniz Adapty Kontrol Paneli’nden. Ayrıca Adapty olaylarını özel olay adlarıyla eşleştirebilirsiniz. Üretime geçmeden önce Sandbox ortamında test etmenizi öneririz.
  3. Adapty sunucunuza bir doğrulama isteği gönderir.
  4. Sunucunuz 2XX durum kodu ve JSON gövdesiyle yanıt verir.
  5. Adapty geçerli bir yanıt aldığında abonelik olaylarını göndermeye başlar.

Adapty isteklerini işlemek için sunucunuzu kurma

Adapty, webhook endpoint’inize 2 tür istek gönderir:

  1. Doğrulama isteği: Bağlantının doğru kurulduğunu doğrulamak için gönderilen ilk istek. Bu istek herhangi bir olay içermez ve Adapty Kontrol Paneli’nin Webhook entegrasyonunda Save düğmesine tıkladığınız anda gönderilir. Endpoint’inizin doğrulama isteğini başarıyla aldığını onaylamak için doğrulama yanıtıyla cevap vermeniz gerekir.
  2. Abonelik olayı: Adapty sunucusunun bir olay oluşturulduğunda gönderdiği standart istek. Sunucunuzun belirli bir yanıt vermesi gerekmez; Adapty sunucusunun ihtiyacı olan tek şey, mesajı başarıyla alması durumunda standart 200 kodlu bir HTTP yanıtıdır.

Doğrulama isteği

Adapty Kontrol Paneli’nde webhook entegrasyonunu etkinleştirdikten sonra Adapty, gövde olarak boş bir JSON nesnesi {} içeren bir POST doğrulama isteği gönderir.

Endpoint’inizin Content-Type header’ını application/json olarak ayarlayın; yani sunucunuzun endpoint’i, gelen webhook isteğinin yükünün JSON formatında olmasını beklemelidir.

Sunucunuz 2xx durum koduyla yanıt vermeli ve örneğin şu şekilde geçerli bir JSON yanıtı göndermelidir:

{}

Adapty doğrulama yanıtını doğru formatta ve 2xx durum koduyla aldığında, Adapty webhook entegrasyonunuz tam olarak yapılandırılmış olur.

Abonelik olayları

Abonelik olayları, Content-Type başlığı application/json olarak ayarlanmış şekilde gönderilir ve JSON formatında olay verisi içerir. Olası olay türleri ve istek yapıları için Webhook olay türleri ve alanları sayfasına bakın.

Adapty Kontrol Paneli’nde webhook entegrasyonunu yapılandırma

Adapty’de, Apple veya Stripe sandbox ortamından ya da Google test hesabından alınan test olayları ve üretim olayları için ayrı akışlar yapılandırabilirsiniz.

Üretim olayları için, geri çağrıların gönderileceği URL’yi belirten Production endpoint URL alanını kullanın. Ayrıca Authorization header value for production endpoint alanını da yapılandırın; bu başlık, sunucunuzun Adapty olaylarını doğrulaması için kullanılır. Authorization header value for production endpoint alanında belirtilen değerin, herhangi bir değişiklik veya ekleme yapılmadan Authorization başlığı olarak aynen kullanılacağını unutmayın.

Test olayları için Sandbox endpoint URL ve Authorization header value for sandbox endpoint alanlarını kullanın.

Webhook entegrasyonunu kurmak için:

  1. Adapty Kontrol Paneli’nde Integrations -> Webhook sayfasını açın.
webhook_integration.webp
  1. Entegrasyonu başlatmak için geçiş düğmesini açın.

  2. Entegrasyon alanlarını doldurun:

    AlanAçıklama
    Production endpoint URLAdapty’nin üretimdeki olaylar için HTTP POST istekleri göndermek üzere kullandığı URL.
    Authorization header value for production endpoint

    Sunucunuzun üretimdeki Adapty isteklerini doğrulamak için kullanacağı başlık. Bu alanda belirtilen değerin, herhangi bir değişiklik veya ekleme yapılmadan Authorization başlığı olarak aynen kullanılacağını unutmayın.

    Zorunlu olmamakla birlikte, güvenliği artırmak için kullanılması önemle tavsiye edilir.

    Sandbox ortamındaki test ihtiyaçlarınız için iki ek alan daha mevcuttur:

    Test alanıAçıklama
    Sandbox endpoint URLAdapty’nin sandbox ortamındaki olaylar için HTTP POST istekleri göndermek üzere kullandığı URL.
    Authorization header value for sandbox endpoint

    Sunucunuzun sandbox ortamında test sırasında Adapty isteklerini doğrulamak için kullanacağı başlık. Bu alanda belirtilen değerin, herhangi bir değişiklik veya ekleme yapılmadan Authorization başlığı olarak aynen kullanılacağını unutmayın.

    Zorunlu olmamakla birlikte, güvenliği artırmak için kullanılması önemle tavsiye edilir.

  3. (isteğe bağlı) Almak istediğiniz olayları seçin ve adlarını eşleştirin. Farklı durumlarda hangi olayların tetiklendiğini görmek için Olay akışları sayfasına göz atın.

    Olay ID’leriniz Adapty’de kullanılanlardan farklıysa, sisteminizdeki ID’leri olduğu gibi tutun ve Integrations -> Webhooks sayfasının Events names bölümünde varsayılan Adapty olay ID’lerini kendinizinkilerle değiştirin.

    Olay ID’si herhangi bir dize olabilir; webhook işleme sunucunuzdaki olay ID’sinin Adapty Kontrol Paneli’ne girdiğinizle eşleştiğinden emin olun. Etkinleştirilmiş olaylar için olay ID alanını boş bırakamazsınız.

86942b8-event_names_renaming.webp
  1. Ek alanlar ve seçenekler zorunlu değildir; gerektiğinde kullanın:

    AyarAçıklama
    Send Trial PriceEtkinleştirildiğinde, Adapty Trial Started olayı için price_local ve price_usd alanlarına abonelik fiyatını ekler.
    Exclude Historical EventsKullanıcının Adapty SDK ile uygulamayı yüklemesinden önce gerçekleşen olayları hariç tutmayı seçin. Bu, olayların tekrarlanmasını önler ve doğru raporlamayı sağlar. Örneğin, bir kullanıcı 10 Ocak’ta aylık abonelik başlattıysa ve 6 Mart’ta Adapty SDK ile uygulamayı güncellediyse, Adapty 6 Mart öncesindeki olayları atlayıp sonraki olayları saklar.
    Send user attributesDil tercihleri gibi kullanıcıya özgü nitelikleri göndermek için bu seçeneği etkinleştirin. Bu nitelikler user_attributes alanında görünecektir. Daha fazla bilgi için Olay alanları bölümüne bakın.
    Send attributionAttribution bilgilerini (örn. AppsFlyer verileri) attributions alanına eklemek için bu seçeneği açın. Ayrıntılar için Attribution verisi bölümüne bakın.
    Send Play Store purchase tokenGerektiğinde satın alma yeniden doğrulaması için gereken Play Store token’ını almak üzere bu seçeneği açın. Etkinleştirildiğinde olaya play_store_purchase_token parametresi eklenir. İçeriği hakkında ayrıntılar için Play Store purchase token bölümüne bakın.
  2. Değişiklikleri onaylamak için Save düğmesine tıklamayı unutmayın.

Save düğmesine tıkladığınız anda Adapty bir doğrulama isteği gönderir ve sunucunuzun doğrulama yanıtını bekler.

Gönderilecek olayları seçme ve olay adlarını eşleştirme

Yanındaki geçiş düğmesini etkinleştirerek sunucunuzda almak istediğiniz olayları seçin. Olay adlarınız Adapty’dekilerden farklıysa ve kendi adlarınızı korumak istiyorsanız, Integrations -> Webhooks sayfasının Events names bölümünde varsayılan Adapty olay adlarını kendinizinkilerle değiştirerek eşleştirme yapabilirsiniz.

86942b8-event_names_renaming.webp

Olay adı herhangi bir dize olabilir. Etkinleştirilmiş olaylar için alanları boş bırakamazsınız. Adapty olay adını yanlışlıkla sildiyseniz, adı her zaman Üçüncü taraf entegrasyonlarına gönderilecek olaylar konusundan kopyalayabilirsiniz.

Webhook olaylarını işleme

Webhook’lar genellikle olay gerçekleştikten 5 ila 60 saniye içinde iletilir. Ancak iptal olayları, kullanıcı aboneliğini iptal ettikten sonra iletilmesi 2 saate kadar sürebilir. Sunucunuzun yanıt durum kodu 200-404 aralığının dışındaysa Adapty, olayı üstel geri çekilme (exponential backoff) yöntemiyle 24 saat boyunca 9 defaya kadar yeniden göndermeye çalışır. Webhook’unuzu, yanıt vermeden önce Adapty’den gelen olay gövdesinin yalnızca temel doğrulamasını yapacak şekilde kurmanızı öneririz. Sunucunuz olayı işleyemiyorsa ve Adapty’nin yeniden denemesini istemiyorsanız 200-404 aralığında bir durum kodu kullanın. Ayrıca zaman alan görevleri asenkron olarak ele alın ve Adapty’ye hızlıca yanıt verin. Adapty 10 saniye içinde yanıt alamazsa girişimi başarısız sayar ve yeniden dener.