Webhook olay türleri ve alanları
Adapty, abonelik olaylarına karşılık olarak webhook’lar gönderir. Bu bölümde bu olay türleri ve her webhook’ta yer alan veriler açıklanmaktadır.
Webhook olay türleri
Tüm olay türlerini webhook’unuza gönderebilir veya yalnızca bir kısmını seçebilirsiniz. Ne tür gelen veriler bekleyeceğinizi ve bunların etrafında iş mantığınızı nasıl kuracağınızı öğrenmek için Olay akışları sayfamıza göz atabilirsiniz. İhtiyaç duymadığınız olay türlerini Webhook entegrasyonunuzu ayarlarken devre dışı bırakabilirsiniz. Ayrıca gerekirse Adapty’nin varsayılan olay kimliklerini kendi kimliklerinizle değiştirebilirsiniz.
| Event name | Description |
|---|---|
| subscription_started | Kullanıcı deneme süresi olmaksızın ücretli bir abonelik etkinleştirdiğinde, yani anında ücretlendirildiğinde tetiklenir. |
| subscription_renewed | Abonelik yenilendiğinde ve kullanıcı ücretlendirildiğinde gerçekleşir. Bu olay, deneme süreli veya deneme süresiz aboneliklerde ikinci ödemeden itibaren başlar. |
| subscription_renewal_cancelled | Kullanıcı abonelik otomatik yenilemesini kapattığında tetiklenir. Kullanıcı, ücretli abonelik süresi sonuna kadar premium özelliklere erişmeye devam eder. |
| subscription_renewal_reactivated | Kullanıcı abonelik otomatik yenilemesini yeniden etkinleştirdiğinde tetiklenir. |
| subscription_expired | İptal edilen bir abonelik tamamen sona erdiğinde tetiklenir. Örneğin, kullanıcı aboneliğini 12 Aralık’ta iptal etmiş ancak abonelik 31 Aralık’a kadar aktif kalmaya devam ediyorsa, olay aboneliğin sona erdiği 31 Aralık’ta kaydedilir. |
| subscription_paused | Kullanıcı abonelik duraklatma özelliğini etkinleştirdiğinde gerçekleşir (yalnızca Android). |
| subscription_deferred | Abonelik satın alımı ertelendiğinde tetiklenir; kullanıcılar premium özelliklere erişimlerini sürdürürken ödemeyi geciktirebilir. Bu özellik Google Play Developer API aracılığıyla kullanılabilir ve ücretsiz denemeler için ya da mali güçlük yaşayan kullanıcılara destek sağlamak amacıyla kullanılabilir. |
| non_subscription_purchase | Süresiz erişim veya oyun içi coin gibi consumable ürünler dahil, abonelik dışındaki tüm satın almalar. |
| trial_started | Kullanıcı deneme aboneliği etkinleştirdiğinde tetiklenir. |
| trial_converted | Deneme süresi sona erdiğinde ve kullanıcı ücretlendirildiğinde (ilk satın alma) gerçekleşir. Örneğin, kullanıcının denemesi 14 Ocak’a kadar sürüyor ancak 7 Ocak’ta ücretlendiriliyorsa, bu olay 7 Ocak’ta kaydedilir. |
| trial_renewal_cancelled | Kullanıcı deneme süresi boyunca abonelik otomatik yenilemesini kapattığında tetiklenir. Kullanıcı deneme süresi sonuna kadar premium özelliklere erişmeye devam eder; ancak ücretlendirilmez ve abonelik başlatılmaz. |
| trial_renewal_reactivated | Kullanıcı deneme süresi boyunca abonelik otomatik yenilemesini yeniden etkinleştirdiğinde gerçekleşir. |
| trial_expired | Deneme süresi aboneliğe dönüşmeden sona erdiğinde tetiklenir. |
| entered_grace_period | Ödeme girişimi başarısız olduğunda ve kullanıcı ek süreye girdiğinde gerçekleşir (etkinleştirilmişse). Kullanıcı bu süre boyunca premium erişimini korur. |
| billing_issue_detected | Ücretlendirme girişimi sırasında bir ödeme sorunu oluştuğunda (örn. yetersiz kart bakiyesi) tetiklenir. |
| subscription_refunded | Bir abonelik iade edildiğinde (örn. Apple Support tarafından) tetiklenir. |
| non_subscription_purchase_refunded | Abonelik dışı bir satın alma iade edildiğinde tetiklenir. |
| access_level_updated | Kullanıcının access level’ı güncellendiğinde gerçekleşir. |
subscription_renewal_reactivated olayı, kullanıcı farklı bir ürün satın alarak yeniden aktif etmiş olsa bile, önceki ürün kimliğini — yani kullanıcının iptal ettiği sırada aktif olan ürünü — taşır. Apple, iptal → yeniden aktifleştirme zinciri boyunca aynı original_transaction_id değerini kullandığından bu olay orijinal ürünü yansıtır. Yeni ürün, yeni ürünün faturalandırması başladığında bir sonraki subscription_renewed olayında görünür.
Webhook olay yapısı
Adapty, yalnızca Integrations -> Webhooks sayfasının Events names bölümünde seçtiğiniz olayları size gönderir.
Webhook olayları JSON formatında serileştirilir. Sunucunuza gönderilen POST isteğinin gövdesi, aşağıdaki yapıya sarılmış serileştirilmiş olayı içerir. Tüm olaylar aynı yapıyı takip eder; ancak alanlar olay türüne, mağazaya ve özel yapılandırmanıza göre farklılık gösterir. Kullanıcı nitelikleri, sizin oluşturduğunuz özel kullanıcı nitelikleridir, dolayısıyla yapılandırdığınız verileri içerirler. Attribution veri alanları da tüm olay türleri için aynıdır; ancak attribution listesi, mobil uygulamanızda kullandığınız attribution kaynaklarına göre değişir. Aşağıda bir olay örneğine bakabilirsiniz:
{
"profile_id": "00000000-0000-0000-0000-000000000000",
"customer_user_id": "UserIdInYourSystem",
"idfv": "00000000-0000-0000-0000-000000000000",
"idfa": "00000000-0000-0000-0000-000000000000",
"advertising_id": "00000000-0000-0000-0000-000000000000",
"profile_install_datetime": "2000-01-31T00:00:00.000000+0000",
"user_agent": "ExampleUserAgent/1.0 (Device; OS Version) Browser/Engine",
"email": "[email protected]",
"event_type": "subscription_started",
"event_datetime": "2000-01-31T00:00:00.000000+0000",
"event_properties": {
"store": "play_store",
"currency": "USD",
"price_usd": 4.99,
"profile_id": "00000000-0000-0000-0000-000000000000",
"cohort_name": "All Users",
"environment": "Production",
"price_local": 4.99,
"base_plan_id": "b1",
"developer_id": "onboarding_placement",
"ab_test_name": "onboarding_ab_test",
"ab_test_revision": 1,
"paywall_name": "UsedPaywall",
"proceeds_usd": 4.2315,
"variation_id": "00000000-0000-0000-0000-000000000000",
"purchase_date": "2024-11-15T10:45:36.181000+0000",
"store_country": "AR",
"event_datetime": "2000-01-31T00:00:00.000000+0000",
"proceeds_local": 4.2415,
"tax_amount_usd": 0,
"transaction_id": "0000000000000000",
"net_revenue_usd": 4.2415,
"profile_country": "AR",
"paywall_revision": "1",
"profile_event_id": "00000000-0000-0000-0000-000000000000",
"tax_amount_local": 0,
"net_revenue_local": 4.2415,
"vendor_product_id": "onemonth_no_trial",
"profile_ip_address": "10.10.1.1",
"consecutive_payments": 1,
"rate_after_first_year": false,
"original_purchase_date": "2000-01-31T00:00:00.000000+0000",
"original_transaction_id": "0000000000000000",
"subscription_expires_at": "2000-01-31T00:00:00.000000+0000",
"profile_has_access_level": true,
"profile_total_revenue_usd": 4.99,
"promotional_offer_id": null,
"store_offer_category": null,
"store_offer_discount_type": null
},
"event_api_version": 1,
"profiles_sharing_access_level": [{"profile_id": "00000000-0000-0000-0000-000000000000", "customer_user_id": "UserIdInYourSystem"}],
"attributions": {
"appsflyer": {
"ad_set": "Keywords 1.12",
"status": "non_organic",
"channel": "Google Ads",
"ad_group": null,
"campaign": "Social media influencers - Rest of the world",
"creative": null,
"created_at": "2000-01-31T00:00:00.000000+0000"
}
},
"user_attributes": {"Favourite_color": "Violet", "Pet_name": "Fluffy"},
"integration_ids": {"firebase_app_instance_id": "val1", "branch_id": "val2", "one_signal_player_id": "val3"},
"play_store_purchase_token": {
"product_id": "product_123",
"purchase_token": "token_abc_123",
"is_subscription": true
}
}
Etkinlik alanları
Etkinlik parametreleri tüm etkinlik türleri için aynıdır.
| Alan | Tür | Açıklama |
|---|---|---|
| advertising_id | UUID | Reklam kimliği (yalnızca Android). |
| attributions | JSON | Attribution verisi. Webhook ayarları’nda Send Attribution etkinleştirilmişse dahil edilir. |
| customer_user_id | String | Kullanıcıları tanımlarken uygulama kodunuzda ayarladıysanız uygulamanızdan gelen kullanıcı kimliği (UUID, e-posta veya başka bir kimlik). Uygulama kodunda kullanıcıları tanımlamıyorsanız veya bu kullanıcı anonimse (giriş yapmamış), bu alan null olur. |
| String | Adapty SDK’daki updateProfile yöntemiyle ya da sunucu taraflı API aracılığıyla profil oluştururken/güncellerken ayarladıysanız kullanıcının e-postası. email değerini SDK veya API yöntemine iletmezseniz bu alan null olur. | |
| event_api_version | Integer | Adapty API sürümü (mevcut: 1). |
| event_datetime | ISO 8601 | ISO 8601 formatında etkinlik zaman damgası (örn. 2020-07-10T15:00:00.000000+0000). |
| event_properties | JSON | Etkinlik özellikleri. |
| event_type | String | Adapty formatında etkinlik adı. Tam liste için bkz. Webhook etkinlik türleri. |
| idfa | UUID | Reklam kimliği (yalnızca Apple). Adapty Kontrol Paneli’ndeki profilde IDFA. İzleme kısıtlamaları, çocuk modu veya gizlilik ayarları nedeniyle kullanılamıyorsa null olabilir. |
| idfv | UUID | Geliştirici başına benzersiz, Satıcı Tanımlayıcısı (IDFV). Adapty Kontrol Paneli’ndeki profilde IDFV. |
| integration_ids | JSON | Adapty SDK’daki setIntegrationIdentifier yöntemiyle ya da sunucu taraflı API aracılığıyla profil oluştururken/güncellerken ayarladıysanız kullanıcı entegrasyon kimlikleri. Kullanılamıyorsa veya entegrasyonlar devre dışıysa null. |
| play_store_purchase_token | JSON | Webhook ayarları’nda Send Play Store purchase token etkinleştirilmişse dahil edilen Play Store satın alma token’ı. |
| profile_id | UUID | Adapty tarafından her profil için otomatik oluşturulan profil kimliği. Kullanıcıları tanımlamıyorsanız veya giriş öncesinde satın almaya izin veriyorsanız, bir Apple/Google kimliği farklı profil kimlikleriyle ilişkilendirilebilir. Adapty’nin üst/devralınan profillerle çalışma şekli hakkında daha fazla bilgi edinin. |
| profile_install_datetime | ISO 8601 | ISO 8601 formatında kurulum zaman damgası (örn. 2020-07-10T15:00:00.000000+0000). |
| profiles_sharing_access_level | JSON | Mevcut kullanıcı profili hariç access level paylaşan kullanıcıların listesi. Uygulamanız için access level paylaşımı etkinleştirilmişse, bu liste aynı Apple/Google kimliğiyle kullanılmış diğer profilleri içerir. Format:
|
| user_agent | String | Cihaz tarayıcısı user-agent. |
| user_attributes | JSON | Kullanıcı profillerini uygulamaya özgü bilgilerle zenginleştirmek için ayarlayabileceğiniz özel veriler. Genellikle kullanıcı tercihlerini (örn. tema, dil) veya davranış bayraklarını (onboarding tamamlandı, özellik kullanımı) takip etmek için kullanılır. Anahtarların string, değerlerin string veya sayı olduğu anahtar-değer çiftleri şeklinde biçimlendirilir (örn. {"Favourite_color": "Violet", "Pet_name": "Fluffy"}). Özel nitelikleri Adapty Kontrol Paneli’nde bireysel profiller için manuel olarak, Adapty SDK’daki updateProfile yöntemiyle programatik olarak ya da sunucu taraflı API aracılığıyla profil oluştururken/güncellerken ayarlayabilirsiniz. Webhook ayarları’nda Send User Attributes etkinleştirilmişse dahil edilir. Mobil uygulama kodundaki özel nitelik değerleri float veya string olarak ayarlanabilirken, sunucu taraflı API veya geçmiş içe aktarma yoluyla alınan nitelikler farklı formatlarda gelebilir. Bu durumda boolean ve integer değerler float’a dönüştürülür. |
Attributionlar
Attribution verilerini göndermek için Integrations -> Webhooks sayfasındaki Send Attribution seçeneğini etkinleştirin. Attribution verisi göndermeyi etkinleştirdiyseniz ve attribution entegrasyonlarını kurduysanız, aşağıdaki veriler her kaynak için etkinlikle birlikte gönderilecektir. Aynı attribution verisi tüm etkinlik türlerine gönderilir.
{
"attributions": {
"appsflyer": {
"ad_set": "sample_ad_set_123",
"status": "non_organic",
"channel": "sample_channel",
"ad_group": "sample_ad_group_456",
"campaign": "sample_ios_campaign",
"creative": "sample_creative_789",
"created_at": "2000-01-31T00:00:00.000000+0000",
"network_user_id": "0000000000000-0000000"
}
}
}
| Alan adı | Alan türü | Açıklama |
|---|---|---|
| ad_set | String | Attribution reklam seti. |
| status | String | organic, non_organic, veya unknown olabilir. |
| channel | String | Pazarlama kanalı adı. |
| ad_group | String | Attribution reklam grubu. |
| campaign | String | Pazarlama kampanyası adı. |
| creative | String | Attribution kreatif anahtar kelimesi. |
| created_at | ISO 8601 date | Attribution kaydının oluşturulma tarihi ve saati. |
| network_user_id | String | Attribution kaynağının kullanıcıya atadığı ID. |
Entegrasyon ID’leri
Aşağıdaki entegrasyon ID’leri artık etkinliklerde kullanılmaktadır:
adjust_device_idairbridge_device_idamplitude_device_idamplitude_user_idappmetrica_device_idappmetrica_profile_idappsflyer_idbranch_idfacebook_anonymous_idfirebase_app_instance_idmixpanel_user_idpushwoosh_hwidone_signal_player_idone_signal_subscription_idtenjin_analytics_installation_idposthog_distinct_user_id
Play Store satın alma token’ı
Bu alan, gerektiğinde bir satın almayı yeniden doğrulamak için ihtiyaç duyulan tüm verileri içerir. Yalnızca Webhook entegrasyon ayarları’nda Send Play Store purchase token seçeneği etkinleştirilmişse gönderilir.
| Alan | Tür | Açıklama |
|---|---|---|
| product_id | String | Play Store’da satın alınan ürünün benzersiz tanımlayıcısı (SKU). |
| purchase_token | String | Google Play tarafından bu satın alma işlemini benzersiz şekilde tanımlamak için oluşturulan token. |
| is_subscription | Boolean | Satın alınan ürünün bir abonelik (true) mi yoksa tek seferlik satın alma (false) mı olduğunu belirtir. |
Etkinlik özellikleri
Etkinlik özellikleri, etkinlik türüne göre ve hatta aynı türdeki etkinlikler arasında bile farklılık gösterebilir. Örneğin, App Store’dan gelen bir etkinlik, base_plan_id gibi Android’e özgü özellikler içermez.
Access Level Updated etkinliğinin kendine özgü özellikleri olduğundan, bu etkinlik için ayrı bir bölüm hazırladık. Benzer şekilde, yalnızca belirli etkinlik türlerine özgü oldukları için Ek vergi ve gelir etkinlik özellikleri de ayrı bir bölümde ele alınmıştır.
Çoğu etkinlik türü için
Access Level Updated olayı dışındaki çoğu olay türü için olay özellikleri tutarlıdır (Access Level Updated olayı kendi bölümünde açıklanmaktadır). Aşağıda özellikleri öne çıkaran ve bunların belirli olaylara ait olup olmadığını gösteren kapsamlı bir tablo yer almaktadır.
| Alan | Tür | Açıklama |
|---|---|---|
| ab_test_name | String | İşlemin kaynaklandığı Adapty A/B testinin adı. |
| ab_test_revision | Integer | İşlemin kaynaklandığı A/B testinin revizyonu. |
| base_plan_id | String | Google Play Store’daki temel plan ID’si veya Stripe’taki fiyat ID’si. |
| cancellation_reason | String | Olası iptal nedenleri: Aşağıdaki etkinlik türlerinde bulunur: subscription_cancelled, subscription_refunded ve trial_cancelled. |
| cohort_name | String | Kullanıcıya hangi paywallın gösterileceğini belirleyen kitlenin adı. |
| consecutive_payments | Integer | Kullanıcının kesintisiz abone olduğu dönem sayısı. Mevcut dönem dahildir. |
| currency | String | Yerel para birimi. |
| developer_id | String | İşlemin kaynaklandığı placement’ın ID’si. |
| environment | String | Olası değerler: Sandbox veya Production. |
| event_datetime | ISO 8601 date | Etkinliğin tarihi ve saati. Etkinliğin kök düzeyindekiyle aynıdır. |
| original_purchase_date | ISO 8601 date | Tekrarlayan abonelikler için orijinal satın alma, zincirdeki ilk işlemdir; orijinal işlem ID’si olarak adlandırılan ID’si yenileme zincirini birbirine bağlar; sonraki işlemler onun uzantısıdır. Orijinal satın alma tarihi, bu ilk işlemin tarih ve saatidir. |
| original_transaction_id | String | Tekrarlayan abonelikler için yenileme zincirini birbirine bağlayan orijinal işlem ID’sidir. Orijinal işlem zincirdeki ilkidir; sonraki işlemler onun uzantısıdır. Uzantı yoksa |
| paywall_name | String | İşlemin kaynaklandığı paywallın adı. |
| paywall_revision | String | İşlemin kaynaklandığı paywallın revizyonu. Varsayılan değer 1’dir. |
| price_local | Float | Apple/Google kesintisi öncesi ürün fiyatı, yerel para biriminde. |
| price_usd | Float | Apple/Google kesintisi öncesi ürün fiyatı, USD cinsinden. |
| profile_country | String | Adapty tarafından profil IP’sine göre belirlenir. |
| profile_event_id | UUID | Tekilleştirme için kullanılabilecek benzersiz etkinlik ID’si. |
| profile_has_access_level | Boolean | Profilin aktif bir access level’a sahip olup olmadığını gösteren boolean değeri. |
| profile_id | UUID | Adapty tarafından oluşturulan profil ID’si. Etkinliğin kök düzeyindekiyle aynıdır. |
| profile_ip_address | String | Profil IP’si (IPv4 veya IPv6 olabilir; mevcut olduğunda IPv4 tercih edilir). Uygulama ayarlarında Collect users’ IP addresses devre dışıysa null döner. |
| profile_total_revenue_usd | Float | İadeler düşüldükten sonra profile ait toplam gelir. |
| promotional_offer_id | String | Kullanılan promosyon teklifinin Adapty ID’si. Bu ID’yi kontrol panelinde teklif oluştururken siz belirlersiniz. |
| purchase_date | ISO 8601 date | Ürünün satın alındığı tarih ve saat. |
| rate_after_first_year | Boolean | Aboneliğin bir yıl kesintisiz yenilenmesinin ardından indirimli komisyon oranına (genellikle %15) hak kazanıp kazanmadığını gösteren boolean değeri. Komisyon oranları programa uygunluk ve ülkeye göre değişir. Ayrıntılar için Mağaza komisyonu ve vergiler bölümüne bakın. |
| store | String | Ürünün satın alındığı mağaza. Standart değerler: app_store, play_store, stripe, paddle. Sunucu tarafı API’si aracılığıyla özel mağaza işlemleri ayarladıysanız, store parametresindeki değer kullanılır. |
| store_country | String | Uygulama mağazası tarafından gönderilen ülke. |
| store_offer_category | String | Uygulanan teklif kategorisi. Olası değerler: introductory, promotional, winback. |
| store_offer_discount_type | String | Uygulanan teklif türü. Olası değerler: free_trial, pay_as_you_go ve pay_up_front. |
| subscription_expires_at | ISO 8601 date | Aboneliğin sona erme tarihi. Genellikle gelecekte bir tarihtir. |
| transaction_id | String | İşlem için benzersiz tanımlayıcı. |
| trial_duration | String | Deneme süresinin gün cinsinden uzunluğu. ” days” formatında gönderilir; örneğin “7 days”. Yalnızca denemeyle ilgili etkinlik türlerinde bulunur: trial_started, trial_converted, trial_cancelled. |
| variation_id | UUID | Satın alma işleminin gerçekleştiği paywallın benzersiz ID’si. |
| vendor_product_id | String | Apple App Store, Google Play Store veya Stripe’taki ürün ID’si. Gerçek bir mağaza işlemi olmaksızın erişim verilmişse
|
Ek vergi ve gelir etkinlik özellikleri
Aşağıdaki vergi ve gelirle ilgili etkinlik özellikleri, yalnızca belirli etkinlik türlerine uygulanan ek alanlardır. Bu, listelenen etkinlik türlerinin Çoğu etkinlik türü için etkinlik özellikleri bölümündeki alanları ve aşağıda listelenen ek alanları içerdiği anlamına gelir.
Vergi ve gelir etkinlik özelliklerine sahip etkinlik türleri:
subscription_renewedsubscription_initial_purchase(subscription_startedolarak da adlandırılır — aynı etkinlik)subscription_refundednon_subscription_purchase| Alan | Tür | Açıklama | | :-------------------- | :---- | :----------------------------------------------------------- | | net_revenue_local | Float | Yerel para biriminde net gelir (Apple/Google payı ve vergiler düşüldükten sonraki gelir). | | net_revenue_usd | Float | USD cinsinden net gelir (Apple/Google payı ve vergiler düşüldükten sonraki gelir). | | proceeds_local | Float | Apple/Google payı düşüldükten sonra yerel para birimindeki ürün fiyatı. | | proceeds_usd | Float | Apple/Google payı düşüldükten sonraki ürün fiyatı. | | tax_amount_local | Float | Yerel para biriminde kesilen vergi tutarı. | | tax_amount_usd | Float | USD cinsinden kesilen vergi tutarı. |
non_subscription_purchase örnek payload
non_subscription_purchase, abonelik etkinlikleriyle aynı yapıyı izler ancak tek seferlik veya consumable bir satın almayı yansıtır. Yalnızca aboneliğe özgü alanlar geçerli değildir: cancellation_reason, will_renew, is_in_grace_period, is_refund, is_lifetime ve trial_duration bulunmaz. subscription_expires_at mevcut olmakla birlikte null değerindedir. Vergi ve gelir alanları (net_revenue_*, proceeds_*, tax_amount_*) dahil edilmiştir.
Örnek payload (genişletmek için tıklayın)
{
"profile_id": "00000000-0000-0000-0000-000000000000",
"customer_user_id": "UserIdInYourSystem",
"event_type": "non_subscription_purchase",
"event_datetime": "2000-01-31T00:00:00.000000+0000",
"event_properties": {
"store": "app_store",
"currency": "USD",
"price_usd": 4.99,
"price_local": 4.99,
"proceeds_usd": 4.2415,
"proceeds_local": 4.2415,
"net_revenue_usd": 4.2415,
"net_revenue_local": 4.2415,
"tax_amount_usd": 0,
"tax_amount_local": 0,
"profile_id": "00000000-0000-0000-0000-000000000000",
"environment": "Production",
"vendor_product_id": "100coins",
"transaction_id": "0000000000000000",
"original_transaction_id": "0000000000000000",
"purchase_date": "2024-11-15T10:45:36.181000+0000",
"original_purchase_date": "2024-11-15T10:45:36.181000+0000",
"subscription_expires_at": null,
"store_country": "US",
"profile_country": "US",
"profile_ip_address": "10.10.1.1",
"profile_has_access_level": false,
"profile_total_revenue_usd": 4.99,
"consecutive_payments": 1,
"rate_after_first_year": false,
"profile_event_id": "00000000-0000-0000-0000-000000000000"
},
"event_api_version": 1
}Access Level Updated olayı için
Access Level Updated olayı, yalnızca Webhook entegrasyonu etkin olduğunda ve bu olay türü etkinleştirildiğinde oluşturulan özel bir webhook olayıdır. Etkinleştirilirse yapılandırılmış Webhook’a gönderilir ve Event Feed’de görünür. Etkinleştirilmezse olay oluşturulmaz.
Access level paylaşımını etkinleştirdiyseniz, access level updated olayı access level’ı paylaşan tüm profiller için gönderilir.
Bu etkinliği, kullanıcının access level bilgisini veritabanınızda güncellemek, backend’inizde premium özellikleri vermek ya da iptal etmek ve erişimi cihazlar veya platformlar arasında senkronize tutmak için kullanın.
| Özellik | Tür | Açıklama |
|---|---|---|
| ab_test_name | String | İşlemin gerçekleştiği A/B testinin adı. |
| access_level_id | String | Access level’ın ID’si. |
| activated_at | ISO 8601 date | Erişimin en son etkinleştirildiği tarih ve saat. |
| active_introductory_offer_type | String | Uygulanan başlangıç teklifinin türü. Olası değerler: free_trial, pay_as_you_go ve pay_up_front. |
| active_promotional_offer_id | String | Adapty Kontrol Paneli’ndeki Ürün bölümünde belirtilen promosyon teklifinin ID’si. |
| active_promotional_offer_type | String | Uygulanan promosyon teklifinin türü. Olası değerler: free_trial, pay_as_you_go ve pay_up_front. |
| base_plan_id | String | Google Play Store’daki temel plan ID’si veya Stripe’taki fiyat ID’si. |
| billing_issue_detected_at | ISO 8601 date | Ödeme sorunun tespit edildiği tarih ve saat. |
| cancellation_reason | String | Olası iptal nedenleri: voluntarily_cancelled, billing_error, price_increase, product_was_not_available, refund, cancelled_by_developer, new_subscription_replace, upgraded, unknown, adapty_revoked. |
| cohort_name | String | Profilin ait olduğu kitlenin adı. |
| currency | String | Yerel para birimi (varsayılan: USD). |
| developer_id | String | İşlemin gerçekleştiği placement’ın ID’si. |
| environment | String | Olası değerler: Sandbox veya Production. |
| event_datetime | ISO 8601 date | Etkinliğin tarih ve saati. |
| expires_at | ISO 8601 date | Erişimin sona ereceği tarih ve saat. |
| is_active | Boolean | Access level’ın aktif olup olmadığını gösteren boolean değeri. |
| is_in_grace_period | Boolean | Profilin ek sürede olup olmadığını gösteren boolean değeri. |
| is_lifetime | Boolean | Access level’ın süresiz olup olmadığını gösteren boolean değeri. |
| is_refund | Boolean | İşlemin iade olup olmadığını gösteren boolean değeri. |
| original_purchase_date | ISO 8601 date | Yinelenen aboneliklerde, orijinal satın alma zincirdeki ilk işlemdir; orijinal işlem ID’si olarak adlandırılan ID’si yenileme zincirini birbirine bağlar; sonraki işlemler bunun uzantısıdır. Orijinal satın alma tarihi, bu ilk işlemin tarih ve saatidir. |
| original_transaction_id | String | Yinelenen aboneliklerde, bu değer yenileme zincirini birbirine bağlayan orijinal işlem ID’sidir. Orijinal işlem zincirdeki ilk işlemdir; sonraki işlemler bunun uzantısıdır. Uzantı yoksa |
| paywall_name | String | İşlemin gerçekleştiği paywall’ın adı. |
| paywall_revision | String | İşlemin gerçekleştiği paywall’ın revizyonu. Varsayılan değer 1’dir. |
| profile_country | String | Profil IP’sine göre Adapty tarafından belirlenir. |
| profile_event_id | UUID | Tekilleştirme için kullanılabilecek benzersiz etkinlik ID’si. |
| profile_has_access_level | Boolean | Profilin aktif bir access level’a sahip olup olmadığını gösteren boolean değeri. |
| profile_id | UUID | Adapty dahili kullanıcı profili ID’si. |
| profile_ip_address | String | Profil IP’si (IPv4 veya IPv6 olabilir; mevcut olduğunda IPv4 tercih edilir). Uygulama ayarlarında Collect users’ IP addresses devre dışı bırakıldıysa null döner. |
| profile_total_revenue_usd | Float | İadeler dahil profilin toplam geliri. |
| purchase_date | ISO 8601 date | Ürün satın alma tarihi ve saati. |
| renewed_at | ISO 8601 date | Erişimin yenileneceği tarih ve saat. |
| starts_at | ISO 8601 date | Access level’ın başlayacağı tarih ve saat. |
| store | String | Ürünün satın alındığı mağaza. Standart değerler: app_store, play_store, stripe, paddle. Sunucu tarafı API’si aracılığıyla özel mağaza işlemleri ayarlarsanız, store parametresindeki değer kullanılır. |
| store_country | String | Uygulama mağazası tarafından Adapty’ye gönderilen ülke. |
| subscription_expires_at | ISO 8601 date | Aboneliğin sona erme tarihi. |
| transaction_id | String | Bir işlem için benzersiz tanımlayıcı. |
| trial_duration | String | Deneme süresinin gün cinsinden uzunluğu (örn. “7 days”). |
| variation_id | UUID | Satın almaları bu paywall’a atfetmek için kullanılan varyant tanımlayıcısı. |
| vendor_product_id | String | Mağazadaki (Apple/Google/Stripe) ürün ID’si. Gerçek bir mağaza işlemi olmadan erişim sağlandıysa,
|
| will_renew | Boolean | Ücretli access level’ın yenilenip yenilenmeyeceğini gösterir. |
Bu yapının zaman içinde büyüyebileceğini unutmayın — yeni veriler bizim tarafımızdan veya çalıştığımız üçüncü taraflarca eklenebilir. Bu yapıyı işleyen kodunuzun yeterince sağlam olduğundan ve tüm yapıya değil, belirli alanlara dayandığından emin olun.