PostHog
Adapty, abonelik etkinliklerini (satın almalar, yenilemeler, iadeler, deneme başlangıçları) PostHog’un etkinlik akışına aktarabilir; böylece bu veriler geri kalan verilerinizle birleşir.
Her etkinlik; gelir, para birimi, mağaza ve ürün ayrıntılarını, ayrıca satın almayı oluşturan paywall ve A/B testi varyantını içerir. Veriler PostHog’a ulaştığında herhangi bir PostHog aracı bunları kullanabilir.
Adapty’nin abonelik etkinlikleri, PostHog’da halihazırda takip ettiğiniz her şeye bir gelir boyutu ekler:
- Hangi uygulama içi eylemler bir aboneliği öngörür?
trial_startedvesubscription_startedile kendi PostHog event’lerinizi ilişkilendirerek satın almaya yol açan davranışı bulun. - Hangi deney varyantı daha fazla kazandırdı? Herhangi bir ürün değişikliği için PostHog deneyinde metrik olarak Adapty’nin gelir event’lerini kullanın. Adapty’nin A/B testleri paywall’ları ve onboarding’leri kapsar.
- İade öncesinde ne olur?
subscription_refundedüzerine bir insight oluşturun, ardından arkasındaki kişileri açıp oturum kayıtlarını izleyin. - Hatalar yenilemeleri etkiler mi? Hata takibini
subscription_renewal_cancelledile çapraz karşılaştırın; bu event, kullanıcı otomatik yenilemeyi kapatar kapatmaz tetiklenir —subscription_expired’dan çok önce. - Aboneler serbest kullanıcılara kıyasla nasıl bir elde tutma oranı gösterir? Türetilmiş erişim durumu üzerinden kohort ve elde tutma eğrileri oluşturun — bkz. Abone ile serbest kullanıcıyı nasıl ayırt edersiniz.
- Hangi paywall ve varyant geliri yarattı? Satın alma event’leri, bunları üreten paywall ve varyantı taşır; böylece geliri paywall’a göre ayrıştırabilirsiniz. Görüntülemeden satın almaya oranını ölçmek için PostHog SDK’sıyla paywall görüntülemelerini yakalayın.
- Her iki veri seti genelinde soru sorun — insight’lar veya SQL ile.
Entegrasyon nasıl çalışır
PostHog, her kullanıcıyı distinct_id adı verilen bir string ile tanımlar. Bu entegrasyonun tamamı, Adapty ve PostHog’un söz konusu string üzerinde anlaşmasına dayanır.
- PostHog SDK, kullanıcıya bir
distinct_idatar. İlk başlatmada bu dize cihaz kapsamlı ve anonimdir. Ancak giriş yapıldığında özel bir değer atayabilir ya da çıkış yapıldığında sıfırlayabilirsiniz. - Her uygulama başlatmasında,
Adapty.activate()çağrısından sonra ve herhangi bir satın alma gerçekleşmeden önce,setIntegrationIdentifier()iledistinct_iddeğerini Adapty’ye aktarın. Adapty, bu değeri kullanıcının Adapty profilineposthog_distinct_user_idolarak ekler. - Kullanıcı bir deneme başlattığında veya satın alma yaptığında, Adapty’nin sunucuları olayı ilgili
distinct_idile birlikte PostHog’un capture API’sine gönderir. Bu alışveriş, uygulamanızın dışında sunucular arasında gerçekleşir. - PostHog, olayı söz konusu
distinct_id’ye sahip kişiye bağlar; böylece abonelik geliri, kullanıcının uygulamanızda yaptığı diğer her şeyin yanında görünür.
Adapty’nin ID’sini PostHog ile Eşleştirin
Her iki sistemin de aynı kullanıcı için aynı distinct_id değerini kullanması gerekir; aksi takdirde bir kişi birbirine bağlı olmayan iki ayrı varlığa bölünür. Bu durumu önlemenin iki yolu vardır ve hangisinin uygun olduğu, satın alma işleminin ne zaman gerçekleşebildiğine bağlıdır.
Satın alma için giriş zorunluysa, kullanıcı giriş yaptığı anda Customer User ID değerinizle PostHog’un identify() fonksiyonunu çağırın. Başka bir değer olmadığında Adapty de bu değeri kullanır, dolayısıyla her iki sistem eşleşir.
Anonim kullanıcılar satın alma yapabiliyorsa, PostHog’un distinct_id değerini okuyun ve setIntegrationIdentifier ile Adapty’ye iletin. Bunu Adapty.activate() sonrasında her başlatmada ve her PostHog reset() sonrasında çağırın. Anonim profillerin Customer User ID’si olmadığından, PostHog’un kendi ID’si her iki sistemin de paylaşabileceği tek değerdir — bakınız Uygulama kodunuzu yapılandırın.
Hangi yöntemi seçerseniz seçin, bu değerin yeniden yükleme sonrasında da geçerliliğini koruması gerekir. Adapty her yeniden yüklemede yeni bir profil oluşturur; PostHog ise cihaz başına yeni bir anonim distinct_id üretir. Dolayısıyla her iki sistem de kendi başına bu boşluğu kapatamaz. Adapty, ücretli erişimi kullanıcının anonim profilleri arasında aktarır; ancak bu, access level’ları birbirine bağlar — analytics kimliğini değil. Devralan profil, yine kendi ID’si altında event göndermeye devam eder. Kendi backend’inizin sahip olduğu kalıcı bir ID olmadan, yeniden yükleme yapan bir abone PostHog’da öncesinde hiç satın alma yapmamış, yalnızca yenilemesi olan yeni bir kullanıcı olarak görünür.
PostHog, kişi birleştirme işlemleri sırasında belirli değerleri engeller: null, undefined, None, 0, anonymous, guest, distinct_id, id, email, true, false, [object Object], NaN, boş dizeler ve bunların tırnaklı varyantları. Paylaştığınız değerin bu değerlerden birini asla alamayacağından emin olun. PostHog, UUID kullanmanızı veya göndermeden önce bu listeyle doğrulama yapmanızı önerir. Bkz. PostHog kimlik çözümleme rehberi.
Eşleşmeyen kimlikler veri parçalanmasına yol açar — daha fazlası için bkz. Bir kullanıcı birkaç kişi olarak görünüyor.
Adapty’nin eventleri kişi özellikleri taşır; bu da her birini PostHog’un terminolojisinde tanımlanmış event yapar — PostHog bu tür eventleri işlemek için anonim olanlara kıyasla 4 kata kadar daha fazla ücret alır. Adapty, abonelik yaşam döngüsündeki her değişiklik için bir event gönderir; bu nedenle hacim, istemci tarafı analizlerine kıyasla küçük kalır. Yine de eşleşen kimlikler kullanmaya değer: PostHog neredeyse her durumda kullanıcıları tanımlamanızı önerir.
Kurulum talimatları
PostHog proje token’ınızı kopyalayın
-
Verilerinizin barındırıldığı dağıtıma — US Cloud veya EU Cloud — giriş yapın ve bağlamak istediğiniz projeyi seçin.
-
Settings > Project > General bölümüne gidin ve Project token & ID kısmını bulun.
-
Project token’ı kopyalayın.
phc_ile başlar. PostHog, bu token’ın yalnızca yazma amaçlı ve yayınlanmasının güvenli olduğunu belirtir; dolayısıyla yenilemenize gerek yoktur.
Adapty’yi Yapılandırın
-
Adapty Kontrol Paneli’nde Integrations > PostHog bölümünü açın.
-
PostHog geçişini etkinleştirin.
-
Token’ı Project API key alanına yapıştırın. Adapty, kaydetme sırasında bunu PostHog üzerinden doğrular — token geçersizse, olayları sessizce düşürmek yerine anında hata verir.
-
“Sunucu konumu” bölümü kurulumunuza göre değişir.
- PostHog Cloud kullanıyorsanız, Region alanını giriş yaptığınız dağıtıma göre ayarlayın —
US CloudveyaEU Cloud. PostHog Instance URL alanını boş bırakın.- Kendi örneğinizi çalıştırıyorsanız, Self-hosted seçeneğini belirleyin ve PostHog Instance URL alanını doldurun. Bölge seçmeyin. Adapty’nin örneğe proxy / VPN olmadan erişebilmesi gerekir.
- How the revenue data should be send seçeneğinin altında, Adapty’nin hangi gelir verisini göndereceğini belirleyin. Üç seçenek, Adapty Analytics gelir görünümleriyle eşleşir; dolayısıyla seçiminiz, PostHog rakamlarınızın uyum sağlaması gereken görünümü de belirler.
| Seçenek | Adapty’nin gönderdiği |
|---|---|
| Gross revenue | Alıcının ödediği tam tutar; komisyon ve vergi düşülmeden önce. Varsayılan. |
| Proceeds after store commission | Mağaza komisyonu düşüldükten sonraki tutar; vergi hâlâ dahil. |
| Proceeds after store commission and taxes | Her ikisi de düşüldükten sonraki tutar. |
- Kalan seçenekleri ayarlayın:
| Geçiş | Açık olduğunda | Varsayılan |
|---|---|---|
| Report user’s currency | Adapty, her satışı USD yerine alıcının ödeme yaptığı para biriminde raporlar. | Kapalı |
| Send trial price | Deneme başlangıçları aksi hâlde sıfır gelir olarak geçer. Bunu açarak her birine bir yer tutucu fiyat atayabilirsiniz; Trial price percentage alanı görünür — abonelik fiyatının yüzde kaçının deneme için raporlanacağını buraya girin. %60 değerinde, 10 dolarlık bir abonelik 6 dolar olarak gönderilir. | Kapalı |
| Exclude historical events | Adapty, kullanıcının Adapty SDK içeren bir derleme yüklemesinden önce gerçekleşen olayları atlar. | Açık |
-
Events names bölümünde istediğiniz etkinlikleri yeniden adlandırın veya devre dışı bırakın. PostHog boş olmayan her etkinlik adını kabul ettiğinden, mevcut taksonominizin gerektirdiği adları kullanabilirsiniz.
-
Save’e tıklayın.
Sandbox verilerini üretimden uzak tutun
Adapty, sandbox ve üretim işlemlerini aynı entegrasyon üzerinden gönderir; dolayısıyla ikisi de aynı PostHog projesine düşer. Entegrasyon yalnızca bir Project API key alır; başka bir yere yönlendirmek için ayrı bir sandbox anahtarı yoktur.
Geliştirme sürümünüze kendi PostHog projesini vermek de sandbox olaylarını üretim projesinden uzak tutmaz. Sandbox, mağaza işleminin bir özelliğidir, sürümünüzün değil. App Store incelemesi ve TestFlight satın almaları, üretim sürümünden gerçekleştirilen sandbox işlemleridir.
Bunun yerine, ikisini sorgularla ayırın. Her olay, Sandbox veya Production olarak ayarlanmış bir environment özelliği içerir. Gerçek geliri izole etmek için filtreleyin:
WHERE properties.environment = 'Production'
Uygulama kodunuzu yapılandırın
-
PostHog SDK’sından mevcut
distinct_iddeğerini alın:- Her uygulama başlangıcında,
Adapty.activate()çağrısından sonra ve herhangi bir satın alma gerçekleşmeden önce. PostHog, daha önceki olayları farklı bir kişiye bağlar. - PostHog’un
reset()fonksiyonu çağrıldıktan sonra; çoğu uygulama bunu oturumu kapatma sırasında çalıştırır.reset()yeni bir anonim kimlik oluşturur ve bunu önceki kişiyle ilişkilendirmez; bu nedenle eski bir değer, az önce oturumu kapatan kullanıcıya işaret etmeye devam eder.
- Her uygulama başlangıcında,
-
Bu değeri
setIntegrationIdentifier()ile Adapty’ye iletin.
PostHog’un identify() fonksiyonunu çağırdıktan sonra ekstra bir çağrı yapmanıza gerek yoktur. PostHog, anonim kişiyi tanımlananla birleştirdiğinden Adapty olayları aynı şekilde çözümlenir. Bkz. Adapty’nin ID’sini PostHog ile Eşleştirme.
Üçüncü taraf SDK’lar kullanıcı kimliklerini asenkron olarak oluşturur. Adapty.activate() çalıştığında bu kimlik henüz hazır olmayabilir. Customer User ID’niz bu SDK’lardan birinden geliyorsa, Adapty.activate() fonksiyonunu kimlik olmadan çağırın. Kimlik hazır olduğunda önce setIntegrationIdentifier(), ardından CUID ile birlikte identify() fonksiyonunu çağırın.
Entegrasyonu doğrulayın
-
Bir sandbox satın alımı tetikleyin, ardından Adapty Kontrol Paneli’ndeki Event Feed bölümünü açın. Her teslimat denemesi sonucuyla birlikte görüntülenir. Adapty, kaydettiğinizde Project API key’inizi ve instance URL’sini doğrular; bu nedenle bu aşamadaki hatalar nadirdir. Olası nedenler:
- Çalışmayı durduran bir anahtar. Entegrasyon anahtarını silerseniz PostHog
401döndürür. - Yanıt vermeyi durduran bir instance. Adapty 10 saniye sonra beklemeyi keser. Self-hosted dağıtımları etkileyebilir.
Başarısız bir olayın üzerine gelerek PostHog’un yanıtını okuyun.
- Çalışmayı durduran bir anahtar. Entegrasyon anahtarını silerseniz PostHog
-
PostHog’da Activity görünümünü açın ve etkinliği arayın. Satın alma işleminizin
environmentözelliğiSandboxolmalıdır. -
O kişinin profilini açın ve Distinct IDs sekmesini kontrol edin. Uygulamanızın kendi etkinlikleri ile Adapty’nin sunucu etkinlikleri aynı kişiye ait olmalıdır. Aynı kullanıcı için iki farklı kişi görünüyorsa ID’ler eşleşmiyor demektir — bakınız Bir kullanıcı PostHog’da birden fazla kişi olarak görünüyor.
Adapty’nin event’leri hiçbir zaman uygulamanızın kendi PostHog hata ayıklama çıktısına ulaşmaz. Adapty bunları kendi sunucularından gönderir, bu nedenle hiçbir zaman uygulamanızın SDK’sından geçmez. Yerel günlüğün boş olması, entegrasyon hakkında hiçbir şey söylemez.
PostHog’da geliri raporlama
Adapty Analytics, gelir rakamları için gerçeğin kaynağı olmaya devam eder; çünkü bu veriler eksiksiz mağaza verisinden hesaplanır ve PostHog yalnızca bu entegrasyonun ilettiği bilgileri alır. Ürün metriklerinizin yanında PostHog kontrol panelinde de geliri görmek istiyorsanız, PostHog’un Revenue Analytics özelliği, belirlediğiniz etkinlik özelliklerinden bu veriyi okur. PostHog’da Data management > Revenue bölümünü açın ve şu eşleştirmeleri yapın:
| PostHog alanı | Adapty özelliği |
|---|---|
| Revenue | price_usd, proceeds_usd veya net_revenue_usd — Gelir verilerinin nasıl gönderilmesi gerektiği bölümünde seçtiğiniz seçenekle eşleştirin |
| Currency | currency ya da USD olarak raporluyorsanız statik bir para birimi belirleyin |
| Product | vendor_product_id |
| Subscription | original_transaction_id |
PostHog’un “values are in cents” seçeneğini kapalı bırakın. Adapty ondalıklı tutarlar gönderir, kuruş cinsinden değil.
PostHog olay yapısı
Adapty, PostHog entegrasyon sayfasındaki Events names bölümünde etkinleştirdiğiniz olayları, her olay için bir capture isteği gönderecek şekilde iletir:
{
"api_key": "phc_YOUR_PROJECT_TOKEN",
"distinct_id": "john.doe@example.com",
"timestamp": "2026-01-08T11:06:12+00:00",
"event": "subscription_started",
"properties": {
"$ip": "10.168.1.1",
"$geoip_time_zone": "America/New_York",
"$geoip_disable": true,
"$set": {
"email": "user@example.com",
"first_name": "John",
"last_name": "Doe",
"birthday": "1990-01-01",
"gender": "male",
"os": "iOS"
},
"*": "{{other_event_properties}}"
}
}
| Parametre | Tür | Açıklama |
|---|---|---|
api_key | String | PostHog Project API key’iniz. |
distinct_id | String | PostHog’daki kişiyi tanımlar. Adapty bulduğu ilk değeri kullanır — bkz. distinct ID önceliği. |
timestamp | ISO 8601 tarih ve saat | Etkinliğin gerçekleştiği zaman. Yenilemeler ve deneme dönüşümleri gelecekteki bir tarihle gösterilebilir — bkz. Etkinlikler PostHog’da gerçekleşmeden önce görünür. |
event | String | Events names bölümünde belirlediğiniz ad. |
properties | Object | Adapty’nin etkinlik özellikleri, IP ve konum özellikleri ve $set. Adapty, değeri olmayan özellikleri atlar. |
Yalnızca webhook’a özgü beş özellik burada hiçbir zaman görünmez — Sınırlamalar bölümüne bakın.
Farklı ID önceliği
Adapty, tespit ettiği ilk değeri kullanır:
| Öncelik | Değer | Ayarlayan |
|---|---|---|
| 1 | posthog_distinct_user_id | setIntegrationIdentifier çağrınız |
| 2 | Customer User ID | Adapty.activate() veya Adapty.identify() |
| 3 | Adapty’nin dahili profil ID’si | Adapty, her zaman mevcut |
Adapty bu sıralamayı her olay için ayrı ayrı değerlendirir; bir kez kullanıcı başına değil. setIntegrationIdentifier çağrınız gerçekleşmeden önce tetiklenen bir olay, daha düşük öncelikli bir ID altına düşer ve PostHog aynı kullanıcı için ikinci bir kişi kaydeder.
Adapty’nin ID’sini PostHog’la eşleştir bölümündeki iki kurulumdan birini seç, ardından herhangi bir event tetiklenmeden önce bu değeri yerleştir. Zaten bölünmüş kişiler için Bir kullanıcı PostHog’da birden fazla kişi olarak görünüyor bölümüne bak.
IP ve konum özellikleri
Adapty event’lerini konuma göre segmentlere ayırmak için store_country ve profile_country özelliklerini kullanın. Adapty, PostHog’un konum aramasını devre dışı bırakır; bu nedenle PostHog kendi $geoip_* değerlerini eklemez. Aşağıdaki üç özellik event başına geçerlidir, dolayısıyla proje ayarlarınız ve kendi event’leriniz bundan etkilenmez.
| Özellik | Değer | Etki |
|---|---|---|
$ip | Kullanıcının IP adresi | PostHog bunu etkinlikte saklar. Adapty aynı değeri x-forwarded-for başlığı olarak gönderir. |
$geoip_time_zone | Kullanıcının saat dilimi | Adapty bu değeri doğrudan ayarlar. |
$geoip_disable | Her zaman true | Bu etkinlik için PostHog’un konum aramasını devre dışı bırakır. |
Kişi özellikleri
$set içindeki her şey, bir event özelliği yerine PostHog kişi özelliği olur. PostHog, kişi özelliklerini tek bir event’e değil, kişiye bağlar; dolayısıyla bu özellikler belirli bir anı değil, kullanıcının mevcut durumunu tanımlar. Adapty, değeri olmayan alanları atlar ve hiçbirinde değer yoksa $set’i tamamen kaldırır.
| Parametre | Tür | Açıklama |
|---|---|---|
email | String | Kullanıcının e-posta adresi. |
first_name | String | Kullanıcının adı. |
last_name | String | Kullanıcının soyadı. |
birthday | String (date) | Kullanıcının doğum tarihi. |
gender | String | Kullanıcının cinsiyeti. |
os | String | Kullanıcının cihazının işletim sistemi. |
Kısıtlamalar
- Access level veya abonelik durumu yok.
access_level_updatedeventi yalnızca webhook entegrasyonlarına özeldir; bu nedenle Adapty, PostHog’a kullanıcının şu anda neye erişimi olduğunu açıklayan herhangi bir alan göndermez — bkz. Abone ile ücretsiz kullanıcıyı nasıl ayırt edersiniz. - Geçmiş veri aktarımı yok. Adapty, entegrasyonu etkinleştirdiğiniz andan itibaren eventleri iletir. Geçmiş satın almalar PostHog’a hiçbir zaman ulaşmaz.
- PostHog, Adapty eventlerine coğrafi konum eklemez. PostHog, konumu eventin kaynağının IP adresinden tahmin eder. Adapty eventlerinin kaynağı her zaman bir Adapty sunucusudur — kullanıcının cihazı değil. Veri kirliliğini önlemek için Adapty, PostHog’a bu sorguyu atlamasını söyler. Adapty,
$geoip_time_zone,store_countryveprofile_countryalanlarını doldurur — ancak daha ayrıntılı konum verisi göndermez. - Adapty eventlerini kaynağa göre filtreleyemezsiniz. PostHog, gönderen SDK’yı
$libalanına kaydeder —posthog-ios,posthog-android,web— ancak Adapty, SDK aracılığı olmadan doğrudan PostHog API’sine gönderim yaptığından bu özellik boş kalır. Bunun yerine event adına göre filtreleyin.
Sorun Giderme
- Olaylar PostHog’da görünmüyor
access_level_updatedEvent Feed’de başarısız olarak görünüyor- Bir kullanıcı PostHog’da birden fazla kişi olarak görünüyor
- PostHog’daki gelir Adapty Analytics ile eşleşmiyor
- Olaylar PostHog’da gerçekleşmeden önce görünüyor
- Adapty olaylarında ülke veya şehir verisi yok
- Abone ile ücretsiz kullanıcıyı nasıl ayırt edersiniz
- Paywall görüntülemeleri PostHog’da görünmüyor
Olaylar PostHog’da görünmüyor
- Önce Adapty Event Feed’i kontrol edin. Başarısız bir teslimat, PostHog’un döndürdüğü hatayı gösterir.
- Başarılı bir teslimat, PostHog’un etkinliği sakladığını garanti etmez. PostHog, payload ve key geçerli olduğunda
200 OKdöndürür; ancak adı olmayan veya boşdistinct_idiçeren etkinlikleri sessizce atar. - Aradığınız etkinliğin entegrasyon ayarlarında etkin olduğunu doğrulayın.
- PostHog’u kendiniz barındırıyorsanız, sunucunun
/captureadresinde Adapty’nin POST isteklerini kabul ettiğinden emin olun. Başarılı bir yapılandırma bu erişimin var olduğunu garanti etmez — Adapty, key’inizin geçerliliğini kontrol etmek için farklı bir uç nokta kullanır.
access_level_updated Event Feed’de başarısız olarak görünüyor
access_level_updated yalnızca webhook’a özgü bir event’tir. Adapty bu event’i bu entegrasyona hiçbir zaman göndermez. Ancak Adapty, etkinleştirilmiş her entegrasyon için bir sonuç kaydeder ve desteklenmeyen bir event başarısızlık olarak görüntülenir.
PostHog’da bir kullanıcı birkaç kişi olarak görünüyor
PostHog, çoğu ayrılmayı sonradan geri alamaz — bkz. Adapty’nin ID’sini PostHog’unkiyle eşleştirme.
ID’ler neden ayrışır
Adapty’nin gönderdiği her olay, kullanıcının Adapty profilindeki bir distinct_id taşır — bkz. Distinct ID önceliği. Adapty bu değeri, uygulamanız setIntegrationIdentifier çağırdığında değil, olayı gönderdiği anda okur. Bir Adapty olayının distinct_id’si, uygulama kurulumunun dahili distinct_id’sinden farklıysa PostHog bu iki tür olayı farklı kişilere atar.
Uyuşmazlığın üç farklı nedeni vardır:
- Uygulamanız platformlardan birinde
setIntegrationIdentifierçağrısı yapmıyor. Adapty, Customer User ID’ye veya anonim profil ID’sine geri döner. Yayınladığınız her platformu kontrol edin. setIntegrationIdentifierçağrısı çok geç yapılıyor. Bu çağrıdan önce gerçekleşen abonelik olayları, yedek ID ile kaydedilir.- PostHog’a
identify()ile gönderdiğiniz ID, integration identifier olarak ayarladığınızdan farklı. Adapty yalnızca en son ilettiğiniz değeri saklar ve bunu kendisi güncellemez. PostHog’unreset()fonksiyonu yeni bir anonim ID atar; bu durumda Adapty’de eski ID kalır — bu yüzden herreset()çağrısının ardındansetIntegrationIdentifierfonksiyonunu tekrar çağırın.
Üçünü de düzeltin; PostHog o andan itibaren kullanıcı başına tek bir kişi kaydeder.
İlk identify() çağrısında ayrışan kullanıcı ID’lerini birleştirin
Uygulamanızın ayrışan ID’leri uzlaştırmak için tek bir penceresi vardır: PostHog’un identify() fonksiyonuna yapılan ilk çağrı. PostHog, uygulama kurulumunun olaylarını bu çağrıda belirttiğiniz kişiyle birleştirir; bu nedenle Adapty’nin gönderdiği ID’yi kullanın — bkz. Adapty’nin ID’sini PostHog’unki ile Eşleştirin. Bu çağrının ardından PostHog, uygulama kurulumunu tanımlanmış olarak kabul eder ve iki tanımlı kişiyi birleştirmeyi reddeder.
Reddedilen bir birleştirmeyi kontrol edin
PostHog’un bir kullanıcıyı iki kişi olarak kaydettiğini doğrulamak için PostHog’da Data management > Ingestion warnings bölümünü açın ve Refused to merge an already identified user hatasını arayın.
PostHog ayrıca ID, kendi rezerve değerlerinden biri olduğunda birleştirmeleri engeller — liste için Adapty’nin ID’sini PostHog’la eşleştirme bölümüne bakın.
Mevcut bir bölünmeyi onarma
Ne identify() ne de alias(), birleştirme penceresi kapandıktan sonra bir ayrışmayı geri alabilir. Zorla birleştirme için yalnızca PostHog’un $merge_dangerously özelliği kullanılabilir. PostHog bunu geri alınamaz, herhangi bir güvence içermeyen ve yalnızca uygulama hatalarından tek seferlik kurtarma amacıyla tasarlanmış olarak belgelemektedir.
Bunu bir ayar olarak değil, bir event olarak gönderirsiniz ve iki kişiyi adlandırır. Yön, hangisinin devam edeceğine karar verir:
| Alan | Değer |
|---|---|
distinct_id | Birleştirme işleminden sağ çıkan kişi |
properties.alias | İçine birleştirilen kişi — olayları ve distinct_id’si hayatta kalana aktarılır |
Herhangi bir şey göndermeden önce hangi tarafın hayatta kalacağına karar verin. Adapty kişisi abonelik geçmişini, uygulamanızın kişisi ise uygulama içi davranışları tutar. Herhangi bir toplu düzeltme yapmadan önce tek bir kullanıcıyı bu işlemden geçirip sonucu kontrol edin. PostHog’un Kullanıcılar nasıl birleştirilir sayfasında SDK’larının her biri için payload bilgisi yer almaktadır.
PostHog’daki gelir Adapty Analytics ile eşleşmiyor
Adapty ve PostHog aynı olayları farklı şekillerde işler. Bu farklılıklar neredeyse tüm uyumsuzlukların kaynağıdır.
- Her Adapty olayı, Gelir verilerinin nasıl gönderileceği altındaki her seçenek için birer tane olmak üzere üç farklı gelir miktarı taşır. PostHog özellikleriyle eşleşme şekilleri şöyledir:
| Adapty Analytics | Olay özelliği (USD cinsinden) | Olay özelliği (Alıcının para birimi cinsinden) |
|---|---|---|
| Brüt gelir | price_usd | price_local |
| Mağaza komisyonu sonrası gelir | proceeds_usd | proceeds_local |
| Mağaza komisyonu ve vergiler sonrası gelir | net_revenue_usd | net_revenue_local |
Satırlar arasında karşılaştırma yapıldığında, komisyon, vergi veya her ikisine eşit bir fark ortaya çıkar. Adapty, Report user’s currency ayarından bağımsız olarak her olayda altı özelliğin tamamını gönderir.
-
Adapty her gelir olayını bir dönemde sayar; PostHog insight’ı yalnızca eklediğiniz olayları sayar.
subscription_renewedolayını atlarsanız, yerleşik herhangi bir uygulamanın gelirinin büyük bölümünü kaybedersiniz. -
Adapty’nin tarih aralığı son günün tamamını kapsar;
timestampfiltresi ise verdiğiniz ana kadar sayar. Adapty’de 1 Temmuz – 15 Temmuz, 15 Temmuz 23:59:59’a kadar olan tüm olayları içerir. PostHog’datimestamp < 2026-07-15o günün tamamını dışarıda bırakır —timestamp < 2026-07-16kullanın. -
Adapty Analytics, sandbox ile production’ı birbirinden ayırır; PostHog ise ikisini karıştırır.
properties.environment = 'Production'filtresini uygulayın — bkz. Sandbox verilerini production’dan uzak tutun. -
Adapty uygulamanızın raporlama saat dilimini kullanır; PostHog ise UTC alır. Entegrasyonlar, App Settings kısmında ne ayarladığınızdan bağımsız olarak her zaman UTC zaman damgaları alır. UTC ile 1 Temmuz 23:30’daki bir satın alma, raporlama saat diliminiz +02:00 ise Adapty’de 2 Temmuz’a düşerken PostHog bunu 1 Temmuz’da saklar.
-
PostHog’da geçmiş olaylar eksik. İki ayrı sınır eski olayların dışarıda kalmasına neden olur; bu yüzden daha önceki abonelikler ve yenilemeler yalnızca Adapty Analytics’e ulaşır. Kendi PostHog SDK’nızın yakaladığı olaylar bundan etkilenmez.
-
Geçmiş olayları hariç tut seçeneği, PostHog entegrasyon sayfasındaki bir geçiş düğmesidir ve varsayılan olarak açıktır. Adapty, profil oluşturulmadan önceki tarihli olayları göndermez; Event Feed’de her biri süresi dolmuş olarak işaretlenir. Kullanıcının Adapty olayları bu nedenle ilk Adapty derlemesini başlattıkları andan itibaren başlar. Geçmişe dönük olayların o noktadan itibaren iletilmesine izin vermek için bu seçeneği kapatın.
- Geçmiş veri doldurmama bir kalıcı kısıtlamadır. Adapty olayları işledikçe gönderir ve entegrasyonu etkinleştirmeden önce işlediği olaylara geri dönmez.
-
Entegrasyon ayarlarında devre dışı bıraktığınız olaylar PostHog’a hiçbir zaman ulaşmaz. Adapty Analytics bunları yine de sayar. Configure Adapty bölümündeki Events names kısmını kontrol edin.
Olaylar PostHog’da gerçekleşmeden önce görünüyor
Yenilemeler ve deneme süresi dönüşümleri için Apple, Adapty’yi etkinlik gerçekleşmeden önce bilgilendirir. Adapty bu etkinlikleri, gelecekteki timestamp değerini değiştirmeden anında iletir. Adapty Analytics ise bu etkinlikleri o zaman gelene kadar bekletir; bu nedenle PostHog, Adapty’nin henüz raporlamadığı etkinlikleri gösterebilir. İkisi de doğrudur. Bunları hariç tutmak için timestamp üzerinde filtre uygulayın — bkz. Gelecek tarihli etkinlik zaman damgaları.
Adapty etkinliklerinde ülke veya şehir verisi yok
Bunun yerine store_country ve profile_country özelliklerini kullanın. PostHog’un kendi $geoip_* değerleri Adapty event’lerinde boş kalır — bkz. IP ve konum özellikleri.
Abone ile ücretsiz kullanıcıyı nasıl ayırt edersiniz
Adapty event raporları, kullanıcının mevcut erişimini göstermez. $set yalnızca email, first_name, last_name, birthday, gender ve os içerir. Access level’ları tanımlayan event özellikleri yalnızca access_level_updated event’inde doldurulur ve Adapty bu event’i yalnızca webhook entegrasyonuyla paylaşır.
İki yol vardır:
- PostHog içindeki durumu olay geçmişinden türetin. En son Adapty olayı
subscription_started,subscription_renewedveyatrial_convertedolan bir kişinin şu anda erişimi vardır; en son olayısubscription_expired,trial_expiredveyasubscription_refundedolan kişinin erişimi yoktur. access_level_updatedalmak için webhook entegrasyonunu kullanın, ardından bunu kendiniz PostHog’a iletin. PostHog’un capture API’si kendi payload yapısını beklediğinden, bu sizin tarafınızda bir dönüşüm adımı gerektirir — Adapty’nin webhook payload’ı değiştirilmeden PostHog’a gönderilemez.
Paywall görüntülemeleri PostHog’da görünmüyor
Adapty’nin SDK’sı, paywall, flow ve onboarding etkileşimlerini yalnızca Adapty Analytics için kaydeder. Adapty’nin sunucusu, abonelik olaylarını entegrasyonlara iletir; ancak bu etkileşimler abonelik olayı değildir. Webhook’lar da bunları içermez. Paywall’ı gösterdiğiniz yerde PostHog’un SDK’sını kullanarak bu etkileşimleri kendiniz kaydedin.