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 oluşturacağınızı öğrenmek için Olay akışları sayfamıza bakabilirsiniz. İhtiyaç duymadığınız olay türlerini, Webhook entegrasyonunuzu ayarlarken devre dışı bırakabilirsiniz. Gerekirse Adapty’nin varsayılan olay kimliklerini kendi kimliklerinizle de değiştirebilirsiniz.

Event nameDescription
subscription_startedKullanıcı deneme süresi olmaksızın ücretli bir abonelik etkinleştirdiğinde, yani anında ücretlendirildiğinde tetiklenir.
subscription_renewedAbonelik 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_cancelledKullanıcı abonelik otomatik yenilemesini kapattığında tetiklenir. Kullanıcı, ücretli abonelik süresi sonuna kadar premium özelliklere erişmeye devam eder.
subscription_renewal_reactivatedKullanı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_pausedKullanıcı abonelik duraklatma özelliğini etkinleştirdiğinde gerçekleşir (yalnızca Android).
subscription_deferredAbonelik 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_purchaseSüresiz erişim veya oyun içi coin gibi consumable ürünler dahil, abonelik dışındaki tüm satın almalar.
trial_startedKullanıcı deneme aboneliği etkinleştirdiğinde tetiklenir.
trial_convertedDeneme 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_cancelledKullanı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_reactivatedKullanıcı deneme süresi boyunca abonelik otomatik yenilemesini yeniden etkinleştirdiğinde gerçekleşir.
trial_expiredDeneme 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_refundedBir abonelik iade edildiğinde (örn. Apple Support tarafından) tetiklenir.
non_subscription_purchase_refundedAbonelik dışı bir satın alma iade edildiğinde tetiklenir.
access_level_updatedKullanıcının access level’ı güncellendiğinde gerçekleşir.

Webhook olay yapısı

Adapty, size yalnızca Integrations -> Webhooks sayfasının Events names bölümünde seçtiğiniz olayları 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ı özellikleri, ayarladığınız özel kullanıcı özelliklerini içerir; yani yapılandırdığınız verileri barındırır. Attribution verisi alanları tüm olay türleri için aynıdır; ancak attribution listesi, mobil uygulamanızda kullandığınız attribution kaynaklarına bağlıdır. Aşağıda bir olay örneğini görebilirsiniz:

{
  "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.

AlanTürAçıklama
advertising_idUUIDReklamcılık kimliği (yalnızca Android).
attributionsJSONAttribution verisi. Webhook ayarlarında Send Attribution etkinleştirilmişse dahil edilir.
customer_user_idStringUygulamanızdaki kullanıcı kimliği (UUID, e-posta veya başka bir kimlik); kullanıcıları tanımlarken uygulama kodunuzda ayarladıysanız geçerlidir. Uygulama kodunda kullanıcıları tanımlamıyorsanız veya bu kullanıcı anonim ise (giriş yapmamışsa) bu alan null olur.
emailStringAdapty SDK’daki updateProfile metodunu ya da sunucu taraflı API üzerinden profil oluştururken/güncellerken email değerini ayarladıysanız kullanıcının e-posta adresi. email değerini SDK’ya veya API metoduna iletmiyorsanız bu alan null olur.
event_api_versionIntegerAdapty API sürümü (güncel: 1).
event_datetimeISO 8601ISO 8601 biçiminde etkinlik zaman damgası (örneğin 2020-07-10T15:00:00.000000+0000).
event_propertiesJSONEtkinlik özellikleri.
event_typeStringAdapty biçiminde etkinlik adı. Tam liste için bkz. Webhook etkinlik türleri.
idfaUUIDReklamcılık kimliği (yalnızca Apple). Adapty Kontrol Paneli’ndeki profilde IDFA olarak görünür. Takip kısıtlamaları, çocuk modu veya gizlilik ayarları nedeniyle kullanılamıyorsa null olabilir.
idfvUUIDGeliştirici başına benzersiz olan Satıcı Tanımlayıcısı (IDFV). Adapty Kontrol Paneli’ndeki profilde IDFV olarak görünür.
integration_idsJSONAdapty SDK’daki setIntegrationIdentifier metodunu kullanarak ya da sunucu taraflı API üzerinden profil oluştururken/güncellerken ayarladığınız kullanıcı entegrasyon kimlikleri. Kullanılamıyorsa veya entegrasyonlar devre dışıysa null olur.
play_store_purchase_tokenJSONPlay Store satın alma token’ı; Webhook ayarlarında Send Play Store purchase token etkinleştirilmişse dahil edilir.
profile_idUUIDAdapty’nin her profil için otomatik olarak oluşturduğu profil kimliği. Kullanıcıları tanımlamıyorsanız veya oturum açmadan önce satın alma işlemine izin veriyorsanız, tek bir Apple/Google kimliği farklı profil kimlikleriyle ilişkilendirilebilir. Adapty’nin üst/devralınan profillerle nasıl çalıştığı hakkında daha fazla bilgi edinin.
profile_install_datetimeISO 8601ISO 8601 biçiminde kurulum zaman damgası (örneğin 2020-07-10T15:00:00.000000+0000).
profiles_sharing_access_levelJSONGeçerli kullanıcı profili hariç access level paylaşan kullanıcıların listesi. Uygulamanızda access level paylaşımı etkinleştirilmişse bu liste, aynı Apple/Google kimliğiyle kullanılmış diğer profilleri içerir.
Biçim:
  • profile_id: (UUID) Adapty kimliği
  • customer_user_id: (String) Sağlanmışsa Müşteri Kullanıcı Kimliği
user_agentStringCihaz tarayıcısının user-agent değeri.
user_attributesJSONKullanıcı profillerini uygulamaya özgü bilgilerle zenginleştirmek için ayarlayabileceğiniz özel veriler. Genellikle kullanıcı tercihlerini (örneğin tema, dil) veya davranış bayraklarını (onboarding tamamlandı, özellik kullanımı) izlemek için kullanılır.
Anahtarların dize, değerlerin ise dize ya da sayı olduğu anahtar-değer çiftleri biçimindedir (örneğin {"Favourite_color": "Violet", "Pet_name": "Fluffy"}).
Özel attributeları Adapty Kontrol Paneli’nde bireysel profiller için elle, Adapty SDK’daki updateProfile metodu aracılığıyla programatik olarak ya da sunucu taraflı API üzerinden profil oluştururken/güncellerken ayarlayabilirsiniz.
Webhook ayarlarında Send User Attributes etkinleştirilmişse dahil edilir.

Mobil uygulama kodundaki özel attribute değerleri float veya dize olarak ayarlanabilirken, sunucu taraflı API veya geçmiş içe aktarma yoluyla alınan attributelar farklı biçimlerde gelebilir. Bu durumda boolean ve integer değerler float’a dönüştürülür.

Attribution’lar

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ı kurduysanız, aşağıdaki veriler her kaynak için etkinlikle birlikte gönderilir. Aynı attribution verileri 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_setStringAttribution reklam seti.
statusStringorganic, non_organic, veya unknown olabilir.
channelStringPazarlama kanalı adı.
ad_groupStringAttribution reklam grubu.
campaignStringPazarlama kampanyası adı.
creativeStringAttribution kreatif anahtar kelimesi.
created_atISO 8601 dateAttribution kaydının oluşturulma tarihi ve saati.
network_user_idStringAttribution kaynağı tarafından kullanıcıya atanan kimlik.

Entegrasyon ID’leri

Aşağıdaki entegrasyon ID’leri artık etkinliklerde kullanılmaktadır:

  • adjust_device_id
  • airbridge_device_id
  • amplitude_device_id
  • amplitude_user_id
  • appmetrica_device_id
  • appmetrica_profile_id
  • appsflyer_id
  • branch_id
  • facebook_anonymous_id
  • firebase_app_instance_id
  • mixpanel_user_id
  • pushwoosh_hwid
  • one_signal_player_id
  • one_signal_subscription_id
  • tenjin_analytics_installation_id
  • posthog_distinct_user_id

Play Store satın alma token’ı

Bu alan, gerektiğinde bir satın almayı yeniden doğrulamak için gereken tüm verileri içerir. Yalnızca Webhook entegrasyon ayarları’nda Send Play Store purchase token seçeneği etkinleştirilmişse gönderilir.

AlanTürAçıklama
product_idStringPlay Store’da satın alınan ürünün benzersiz tanımlayıcısı (SKU).
purchase_tokenStringGoogle Play tarafından bu satın alma işlemini benzersiz şekilde tanımlamak için üretilen token.
is_subscriptionBooleanSatın alınan ürünün abonelik (true) mi yoksa tek seferlik satın alma (false) mı olduğunu belirtir.

Etkinlik özellikleri

Etkinlik özellikleri, etkinlik türüne 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ği kendine özgü özelliklere sahip olduğundan, bu etkinliğe ayrı bir bölüm ayırdı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ınmaktadır.

Çoğu etkinlik türü için

Access Level Updated etkinliği dışındaki çoğu etkinlik türü için etkinlik özellikleri tutarlıdır (Access Level Updated etkinliği kendi bölümünde açıklanmıştır). Aşağıda, özellikleri vurgulayan ve hangi etkinliklere ait olduklarını gösteren kapsamlı bir tablo yer almaktadır.

AlanTürAçıklama
ab_test_nameStringİşlemin gerçekleştiği Adapty A/B testinin adı.
ab_test_revisionIntegerİşlemin gerçekleştiği A/B testinin revizyonu.
base_plan_idStringGoogle Play Store’daki temel plan ID’si veya Stripe’taki fiyat ID’si.
cancellation_reasonString

Olası iptal nedenleri: voluntarily_cancelled, billing_error, price_increase, product_was_not_available, refund, cancelled_by_developer, new_subscription_replace, upgraded, unknown, adapty_revoked.

Şu olay türlerinde bulunur:

subscription_cancelled, subscription_refunded ve trial_cancelled.
cohort_nameStringKullanıcıya hangi paywallın gösterileceğini belirleyen kitlenin adı.
consecutive_paymentsIntegerKullanıcının kesintisiz abone olduğu dönem sayısı. Mevcut dönemi de içerir.
currencyStringYerel para birimi.
developer_idStringİşlemin gerçekleştiği placement’ın ID’si.
environmentStringOlası değerler: Sandbox veya Production.
event_datetimeISO 8601 dateOlayın tarihi ve saati. Olayın kök düzeyindeki değerle aynıdır.
original_purchase_dateISO 8601 dateYinelenen abonelikler için orijinal satın alma, zincirdeki ilk işlemdir; orijinal işlem ID’si olarak adlandırılan bu ID 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_idString

Yinelenen abonelikler için, yenileme zincirini birbirine bağlayan orijinal işlem ID’sidir. Orijinal işlem zincirdeki ilkidir; sonraki işlemler bunun uzantısıdır.

Uzantı yoksa original_transaction_id, store_transaction_id ile aynıdır.

paywall_nameStringİşlemin gerçekleştiği paywallın adı.
paywall_revisionStringİşlemin gerçekleştiği paywallın revizyonu. Varsayılan değer 1’dir.
price_localFloatApple/Google kesintisi öncesi ürün fiyatı (yerel para birimi cinsinden).
price_usdFloatApple/Google kesintisi öncesi ürün fiyatı (USD cinsinden).
profile_countryStringAdapty tarafından profil IP’sine göre belirlenir.
profile_event_idUUIDTekilleştirme amacıyla kullanılabilecek benzersiz olay ID’si.
profile_has_access_levelBooleanProfilin aktif bir access level’a sahip olup olmadığını belirten boolean değer.
profile_idUUIDAdapty tarafından oluşturulan profil ID’si. Olayın kök düzeyindeki değerle aynıdır.
profile_ip_addressStringProfil IP’si (IPv4 veya IPv6 olabilir; mevcut olduğunda IPv4 tercih edilir). Uygulama ayarlarında Collect users’ IP addresses devre dışıysa null olur.
profile_total_revenue_usdFloatİadeler düşüldükten sonra profile ait toplam gelir.
promotional_offer_idStringKullanılan promosyon teklifinin Adapty ID’si. Bu ID’yi kontrol panelinde teklif oluştururken siz belirlersiniz.
purchase_dateISO 8601 dateÜrünün satın alındığı tarih ve saat.
rate_after_first_yearBooleanAboneliğin bir yıl kesintisiz yenileme sonrasında indirimli komisyon oranına (genellikle %15) hak kazanıp kazanmadığını belirten boolean değer. 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.
storeStringÜrünün satın alındığı mağaza. Standart değerler: app_store, play_store, stripe, paddle.
Sunucu taraflı API aracılığıyla özel mağaza işlemleri ayarladıysanız, store parametresindeki değer kullanılır.
store_countryStringUygulama mağazası tarafından iletilen ülke bilgisi.
store_offer_categoryStringUygulanan teklif kategorisi. Olası değerler: introductory, promotional, winback.
store_offer_discount_typeStringUygulanan teklif türü. Olası değerler: free_trial, pay_as_you_go ve pay_up_front.
subscription_expires_atISO 8601 dateAboneliğin sona erme tarihi. Genellikle gelecekte bir tarihtir.
transaction_idStringİşlem için benzersiz tanımlayıcı.
trial_durationStringDeneme süresinin gün cinsinden uzunluğu. ” days” formatında gönderilir; örneğin “7 days”. Yalnızca denemeyle ilgili olay türlerinde bulunur: trial_started, trial_converted, trial_cancelled.
variation_idUUIDSatın almanın gerçekleştiği paywallın benzersiz ID’si.
vendor_product_idStringApple App Store, Google Play Store veya Stripe’taki ürün ID’si.

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. Yani listelenen etkinlik türleri, Çoğu etkinlik türü için etkinlik özellikleri bölümündeki alanları ve aşağıda listelenen ek alanları içerir.

Vergi ve gelir etkinlik özelliklerine sahip etkinlik türleri:

  • subscription_renewed
  • subscription_initial_purchase
  • subscription_refunded
  • non_subscription_purchase | Alan | Tür | Açıklama | | :-------------------- | :---- | :----------------------------------------------------------- | | net_revenue_local | Float | Net gelir (Apple/Google komisyonu ve vergiler düşüldükten sonraki gelir) yerel para biriminde. | | net_revenue_usd | Float | Net gelir (Apple/Google komisyonu ve vergiler düşüldükten sonraki gelir) USD cinsinden. | | proceeds_local | Float | Apple/Google komisyonu düşüldükten sonraki ürün fiyatı yerel para biriminde. | | proceeds_usd | Float | Apple/Google komisyonu düşüldükten sonraki ürün fiyatı. | | tax_amount_local | Float | Düşülen vergi tutarı yerel para biriminde. | | tax_amount_usd | Float | Düşülen vergi tutarı USD cinsinden. |

Access Level Updated etkinliği için

Access Level Updated etkinliği, yalnızca Webhook entegrasyonu etkin olduğunda ve bu etkinlik türü etkinleştirildiğinde oluşturulan özel bir webhook etkinliğidir. Etkinleştirilmişse yapılandırılmış Webhook’a gönderilir ve Event Feed’de görünür. Etkinleştirilmemişse etkinlik oluşturulmaz.

Access level paylaşımını etkinleştirdiyseniz, access level updated etkinliği, access level’ı paylaşan tüm profiller için gönderilir.

Bu etkinliği kullanarak veritabanınızdaki kullanıcının access level bilgisini güncelleyebilir, arka uçta premium özellikleri etkinleştirebilir veya kaldırabilir ve farklı cihaz ya da platformlarda erişimi senkronize tutabilirsiniz.

ÖzellikTürAçıklama
ab_test_nameStringİşlemin kaynaklandığı A/B testinin adı.
access_level_idStringAccess level’ın ID’si.
activated_atISO 8601 dateErişimin en son etkinleştirildiği tarih ve saat.
active_introductory_offer_typeStringUygulanan başlangıç teklifinin türü. Olası değerler: free_trial, pay_as_you_go ve pay_up_front.
active_promotional_offer_idStringAdapty Kontrol Paneli’nin Ürün bölümünde belirtilen promosyon teklifinin ID’si.
active_promotional_offer_typeStringUygulanan promosyon teklifinin türü. Olası değerler: free_trial, pay_as_you_go ve pay_up_front.
base_plan_idStringGoogle Play Store’daki temel plan ID’si veya Stripe’taki fiyat ID’si.
billing_issue_detected_atISO 8601 dateFaturalandırma sorununun tarih ve saati.
cancellation_reasonStringOlası iptal nedenleri: voluntarily_cancelled, billing_error, price_increase, product_was_not_available, refund, cancelled_by_developer, new_subscription_replace, upgraded, unknown, adapty_revoked.
cohort_nameStringProfilin ait olduğu kitlenin adı.
currencyStringYerel para birimi (varsayılan: USD).
developer_idStringİşlemin kaynaklandığı placement’ın ID’si.
environmentStringOlası değerler: Sandbox veya Production.
event_datetimeISO 8601 dateOlayın tarih ve saati.
expires_atISO 8601 dateErişimin sona ereceği tarih ve saat.
is_activeBooleanAccess level’ın aktif olup olmadığını gösteren boolean değer.
is_in_grace_periodBooleanProfilin ek süre içinde olup olmadığını gösteren boolean değer.
is_lifetimeBooleanAccess level’ın süresiz olup olmadığını gösteren boolean değer.
is_refundBooleanİşlemin iade olup olmadığını gösteren boolean değer.
original_purchase_dateISO 8601 dateYinelenen 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 bir uzantısıdır. Orijinal satın alma tarihi, bu ilk işlemin tarih ve saatidir.
original_transaction_idString

Yinelenen aboneliklerde, 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 original_transaction_id, store_transaction_id ile eşleşir.

Orijinal satın almanın işlem tanımlayıcısı.
paywall_nameStringİşlemin kaynaklandığı paywall’ın adı.
paywall_revisionStringİşlemin kaynaklandığı paywall’ın revizyonu. Varsayılan değer 1’dir.
profile_countryStringProfil IP’sine göre Adapty tarafından belirlenir.
profile_event_idUUIDTekilleştirme (deduplication) için kullanılabilecek benzersiz olay ID’si.
profile_has_access_levelBooleanProfilin aktif bir access level’a sahip olup olmadığını gösteren boolean değer.
profile_idUUIDAdapty dahili kullanıcı profili ID’si.
profile_ip_addressStringKullanıcının profil IP adresi.
profile_total_revenue_usdFloatİadeler dahil profil için toplam gelir.
purchase_dateISO 8601 dateÜrünün satın alındığı tarih ve saat.
renewed_atISO 8601 dateErişimin yenileneceği tarih ve saat.
starts_atISO 8601 dateAccess level’ın başladığı tarih ve saat.
storeStringÜrünün satın alındığı mağaza. Standart değerler: app_store, play_store, stripe, paddle.
Sunucu tarafı API’yi kullanarak özel mağaza işlemleri belirlediyseniz, store parametresindeki değer kullanılır.
store_countryStringUygulama mağazası tarafından Adapty’ye gönderilen ülke.
subscription_expires_atISO 8601 dateAboneliğin sona erme tarihi.
transaction_idStringBir işlem için benzersiz tanımlayıcı.
trial_durationStringDeneme süresinin gün cinsinden uzunluğu (örn. “7 days”).
variation_idUUIDSatın almaları bu paywall’a atfetmek için kullanılan bir varyant tanımlayıcısı.
vendor_product_idStringMağazadaki (Apple/Google/Stripe) ürün ID’si.
will_renewBooleanÜcretli access level’ın yenilenip yenilenmeyeceğini gösterir.

Bu yapının zamanla büyüyebileceğini unutmayın — bizim veya birlikte çalıştığımız üçüncü tarafların yeni veriler eklemesiyle genişleyebilir. Bu yapıyı işleyen kodunuzun yeterince sağlam olduğundan ve tüm yapıya değil, belirli alanlara dayandığından emin olun.