Analytics entegrasyonları
Adapty, tüm abonelik etkinliklerini Amplitude, Mixpanel ve AppMetrica gibi analitik servislere gönderir. Ayrıca webhook entegrasyonu kullanarak etkinlikleri sunucunuza da iletebiliriz. Bunun en güzel yanı, etkinlikleri kendiniz göndermenize gerek olmamasıdır; biz hallederiz. Tek yapmanız gereken entegrasyonu Adapty Kontrol Paneli’nde yapılandırmak.
Adapty aşağıdaki üçüncü taraf analitik servisleriyle entegrasyonu destekler:
Analitik sağlayıcınızı görmüyor musunuz?
Bize bildirin! Bir özellik talebi oluşturun, değerlendirip ekleyebiliriz.
Etkinlik özellikleri
Webhook etkinlikleri JSON formatında gönderilir. Tüm etkinlikler aynı yapıyı takip eder, ancak alanları etkinlik türüne, mağazaya ve özel yapılandırmanıza göre farklılık gösterir.
Adapty, diğer para birimlerini USD’ye currencylayer.com döviz kuru üzerinden çevirir (her 8 saatte bir güncellenir). Kur, işlem anında sabitlenir — sonraki değişiklikler dönüşüm sonucunu etkilemez.
| Özellik | Tür | Açıklama |
|---|---|---|
| profile_id | uuid | Adapty kullanıcı kimliği. |
| currency | str | Yerel para birimi (varsayılan USD). |
| price_usd | float | Apple/Google kesintisi öncesi ürün fiyatı. Gelir. |
| proceeds_usd | float | Apple/Google kesintisi sonrası ürün fiyatı. Net gelir. |
| net_revenue_usd | float | Net gelir (Apple/Google kesintisi ve vergiler sonrası gelir), USD cinsinden. Boş olabilir. |
| price_local | float | Apple/Google kesintisi öncesi yerel para birimindeki ürün fiyatı. Gelir. |
| proceeds_local | float | Apple/Google kesintisi sonrası yerel para birimindeki ürün fiyatı. Net gelir. |
| transaction_id | str | Satın alma veya yenileme gibi bir işleme ait benzersiz tanımlayıcı. |
| original_transaction_id | str | Orijinal satın almanın işlem tanımlayıcısı. |
| purchase_date | ISO 8601 date | Ürünün satın alındığı tarih ve saat. |
| original_purchase_date | ISO 8601 date | Orijinal satın almanın tarihi ve saati. |
| environment | str | Sandbox veya Production olabilir. |
| vendor_product_id | str | Apple App Store, Google Play Store veya Stripe’taki ürün kimliği. 12 aylık taahhüt planı için değer <product_id>:monthly şeklindedir. |
| base_plan_id | str | Google Play Store’daki temel plan kimliği veya Stripe’taki fiyat kimliği. |
| event_datetime | ISO 8601 date | Etkinliğin tarihi ve saati. |
| store | str | app_store veya play_store olabilir. |
| trial_duration | str | Deneme süresinin gün cinsinden uzunluğu. ” days” biçiminde gönderilir, örneğin “7 days”. |
| cancellation_reason | str | Kullanıcının aboneliği iptal etme nedeni. Olabilecek değerler: iOS & Android voluntarily_cancelled, billing_error, refund iOS price_increase, product_was_not_available, unknown Android new_subscription_replace, cancelled_by_developer |
| subscription_expires_at | ISO 8601 date | Aboneliğin sona erme tarihi. Genellikle gelecekteki bir tarihdir. |
| consecutive_payments | int | Kullanıcının kesintisiz olarak abone olduğu dönem sayısı. Mevcut dönem dahildir. |
| rate_after_first_year | bool | Bir yıllık kesintisiz yenilemeden sonra aboneliğin indirimli komisyon oranına (genellikle %15) hak kazandığını gösteren boolean değer. Komisyon oranları, programa uygunluk ve ülkeye göre değişir. Ayrıntılar için Mağaza komisyonu ve vergileri bölümüne bakın. |
| promotional_offer_id | str | Adapty Kontrol Paneli’nin Ürün bölümünde belirtilen promosyon teklifinin kimliği. |
| store_offer_category | str | introductory veya promotional olabilir. |
| store_offer_discount_type | str | free_trial, pay_as_you_go veya pay_up_front olabilir. |
| paywall_name | str | İşlemin gerçekleştiği paywall’ın adı. Bir flow için, paywall ekranının kimliği (scr_...). |
| paywall_revision | int | İşlemin gerçekleştiği paywall’ın revizyonu. Değer 1 olarak ayarlanır. |
| developer_id | str | İşlemin gerçekleştiği placement’ın geliştirici (SDK) kimliği. |
| ab_test_name | str | İşlemin gerçekleştiği A/B testinin adı. Placement’lar arası bir A/B testi için, bir placement üzerindeki testin adı (<test name> child-N). Placement’lar arası testi gruplamak için ab_test_id kullanın. |
| ab_test_revision | int | İşlemin gerçekleştiği A/B testinin revizyonu. Değer 1 olarak ayarlanır. |
| ab_test_id | uuid | İşlemin gerçekleştiği A/B testinin kimliği. Placement’lar arası bir A/B testinde her placement için aynıdır. |
| ab_test_parent_name | str | Placement’lar arası A/B testinin adı. Yalnızca placement’lar arası A/B testlerinde mevcuttur. |
| ab_test_variant_id | uuid | İşlemin gerçekleştiği A/B testi varyantının kimliği. İşlemleri test varyantına göre ayırmak için kullanın. |
| ab_test_variant_name | str | A/B testi varyantının adı. |
| flow_id | uuid | İşlemin gerçekleştiği flow’un kimliği. |
| flow_name | str | İşlemin gerçekleştiği flow’un adı. |
| flow_variation_id | uuid | Bu placement’taki flow varyantının kimliği; SDK’daki flow.variationId ile aynıdır. |
| cohort_name | str | Profilin ait olduğu kitlenin adı. |
| profile_event_id | uuid | Tekilleştirme için kullanılabilecek benzersiz etkinlik kimliği. |
| store_country | str | Mağaza tarafından bize gönderilen ülke. |
| profile_ip_address | str | Profil IP’si (IPv4 veya IPv6 olabilir; mevcut olduğunda IPv4 tercih edilir). Cihazın IP’si her değiştiğinde güncellenir. |
| profile_country | str | Adapty tarafından profil IP’sine göre belirlenir. |
| profile_total_revenue_usd | float | İadeler dahil profil için toplam gelir. |
| variation_id | uuid | Satın almanın yapıldığı paywall’ın benzersiz kimliği. Bir flow için, A/B testi varyantı değil, flow içindeki paywall ekranının kimliği. |
| access_level_id | str | Ücretli access level kimliği. |
| is_active | bool | Ücretli access level’ın profil için etkin olup olmadığını gösteren boolean değer. |
| will_renew | bool | Ücretli access level’ın yenilenip yenilenmeyeceğini gösteren boolean değer. |
| is_refund | bool | İşlemin iade edilip edilmediğini gösteren boolean değer. |
| is_lifetime | bool | Ücretli access level’ın süresiz olup olmadığını gösteren boolean değer. |
| is_in_grace_period | bool | Profilin ek sürede olup olmadığını gösteren boolean değer. |
| starts_at | ISO 8601 date | Kullanıcı için ücretli access level’ın başladığı tarih ve saat. |
| renewed_at | ISO 8601 date | Ücretli erişimin mevcut döneminin en son başladığı tarih ve saat. İlk yenilemeden önce activated_at ile aynıdır. |
| expires_at | ISO 8601 date | Ücretli erişimin sona ereceği tarih ve saat. |
| activated_at | ISO 8601 date | Ücretli erişimin etkinleştirildiği tarih ve saat. |
| billing_issue_detected_at | ISO 8601 date | Ödeme sorununun tespit edildiği tarih ve saat. |
| profile_has_access_level | Bool | Profilin etkin bir access level’a sahip olup olmadığını gösteren boolean değer (yalnızca Webhook). |
Her olay şu özelliklere sahiptir:
transaction_id, original_transaction_id, purchase_date, original_purchase_date, environment, vendor_product_id, event_datetime, store.
Bunların yanı sıra bazı olaylar ek özellikler içerir. subscription_refunded ve non_subscription_purchase_refunded olayları için price_usd ve proceeds_usd değerlerinin ek özellik olarak sağlanması zorunludur.
| Olay Adı | Özellikler |
|---|---|
| subscription_initial_purchase | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| subscription_renewed | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| subscription_cancelled | cancellation_reason, trial_duration |
| trial_started | subscription_expires_at, trial_duration |
| trial_converted | price_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration |
| trial_cancelled | cancellation_reason, trial_duration |
| non_subscription_purchase | price_usd, proceeds_usd |
| billing_issue_detected | subscription_expires_at, trial_duration |
| entered_grace_period | subscription_expires_at, trial_duration |
Olay örneği
{
"price_usd": 9.99,
"proceeds_usd": 6.99,
"transaction_id": "1000000628581600",
"original_transaction_id": "1000000628581600",
"purchase_date": "2020-02-18T18:40:22.000000+0000",
"original_purchase_date": "2020-02-18T18:40:22.000000+0000",
"environment": "Sandbox",
"vendor_product_id": "premium",
"event_datetime": "2020-02-18T18:40:22.000000+0000",
"store": "app_store"
}
Adapty olayları sunucunuza ve üçüncü taraf analitik sistemlere gönderir.
profile_ip_address özelliği mevcut cihaz IP’siyle senkronize edilir. Adapty sunucuları SDK’dan bilgi aldığında, kayıtlarımızdakinden farklıysa IP güncellenecektir.
Profil tanımlayıcısını ayarlama
- Seçilen analitik için profil tanımlayıcısını uygulamanızda kullanıcı özelliklerini ayarlama talimatları iOS, Android, React Native, Flutter ve Unity kullanarak ayarlayın.
Tekrarlamayı önleme
Tekrarlamayı önlemek için cihazlardan ve sunucunuzdan abonelik olaylarının gönderilmesini devre dışı bırakmayı unutmayın.
Belirli bir müşteri için harici analitiği devre dışı bırakma
Belirli bir müşteri için analitik olaylarının gönderilmesini durdurmak isteyebilirsiniz. Bu, uygulamanızda analitik servislerinden çıkış seçeneği sunduğunuzda kullanışlıdır.
Bir müşteri için harici analitiği devre dışı bırakmak üzere updateProfile() metodunu kullanın. AdaptyProfileParameters.Builder nesnesi oluşturun ve ilgili değeri ayarlayın.
Harici analitik engellendiğinde, Adapty belirli kullanıcı için hiçbir entegrasyona olay göndermez. Uygulamanızdaki tüm kullanıcılar için bir entegrasyonu devre dışı bırakmak istiyorsanız Adapty Kontrol Paneli’nden kapatmanız yeterlidir.
Harici analizleri engellemek, bu kullanıcı için özel webhook’lar dahil tüm entegrasyonlara yapılan etkinlik teslimini durdurur. Backend’iniz bu kullanıcının erişimini yönetmek için webhook etkinliklerine güveniyorsa bunu kullanmayın.
Bu ayar geriye dönük olarak uygulanmaz: ayarlanmadan önce oluşturulan etkinlikler yine de iletilir. Ayrıca Adapty’nin kendi analizlerini etkilemez — kullanıcının işlemleri kontrol paneli grafiklerinde görünmeye devam eder.