Profiller nasıl çalışır

Uygulamanızdaki her kullanıcı, satın alımlarını, olaylarını ve abonelik durumunu takip eden bir Adapty profiline sahip olur. Profillerin nasıl oluşturulduğunu ve birbirine bağlandığını anlamak; entegrasyon hatalarını önlemenize, veri parçalanmasını engellemenize ve Profiller bölümündeki verileri doğru yorumlamanıza yardımcı olur.

Profil oluşturma

Adapty, bir kullanıcı uygulamanızı ilk kez açtığında otomatik olarak bir profil oluşturur.

Customer User ID olmadan profil anonimdir. Her şu durumda yeni bir anonim profil oluşturulur:

  • Kullanıcı uygulamayı yeniden yüklediğinde
  • Kullanıcı uygulamanızdan çıkış yaptığında (uygulamanız Adapty.logout() çağırdığında)

Satın alımlar, kalıcı bir kullanıcı kimliğine değil, uygulama kurulumuna bağlıdır.

Customer User ID ile profil, yeniden yüklemeler ve cihazlar arasında kalıcı olur. Customer user ID kullanmak şunları sağlar:

  1. Kullanıcıyı uygulama yeniden yüklemeleri ve birden fazla cihaz üzerinden takip edebilirsiniz.
  2. Kullanıcıları Profiles bölümünde customer user ID’lerine göre bulabilirsiniz.
  3. Customer user ID’yi sunucu tarafı API’sinde kullanabilirsiniz.
  4. Adapty, customer user ID’yi tüm entegrasyonlara gönderir.

Customer user ID ile profil davranışı, bunu ne zaman ayarladığınıza bağlıdır:

  • SDK etkinleştirmesinde: Adapty, o customer user ID’ye sahip mevcut profili kullanır (geri dönen kullanıcılar için) veya yeni bir profil oluşturur (ilk kez gelen kullanıcılar için).
  • SDK etkinleştirmesinden sonra: Adapty, etkinleştirmede anonim bir profil oluşturur. Kullanıcıyı daha sonra tanımladığınızda Adapty, customer user ID’yi anonim profile bağlar (ilk kez gelen kullanıcılar için) veya o ID’ye sahip mevcut profile geçer (geri dönen kullanıcılar için).

Hangi yaklaşımı kullanmalısınız:

  • Uygulama başlangıcında customer user ID mevcutsa (örneğin, önceki bir oturumdan kaydedilmişse) — SDK’yı başlatırken activate() fonksiyonuna iletin.
  • Kullanıcılar uygulama başladıktan sonra giriş yapıyorsa — kimlik doğrulamanın ardından identify() fonksiyonunu çağırın. Adapty, ID’yi mevcut profile bağlar (ID yeniyse) veya mevcut profile geçer (ID zaten varsa).
  • Kullanıcılar giriş yapmadan önce satın alım yapabiliyorsa — girişin ardından identify() fonksiyonunu çağırın. Customer user ID Adapty’de zaten mevcutsa, mevcut access level’ı senkronize etmek için ardından profili alın.

Uygulama ayrıntıları için kullanıcıları tanımlama SDK kılavuzuna bakın.

Geri dönen bir kullanıcı daha önce uygulamanızı customer user ID olmadan kullandıysa, SDK etkinleştirmesinde tanımlamaya başladığınızda bu anonim profiller otomatik olarak birleştirilmez. Bu tür kullanıcılar için eksiksiz geçmişi korumak amacıyla bunun yerine girişten sonra identify() kullanın.

Ebeveyn ve miras alan profiller

Aynı mağaza tarafındaki abonelik birden fazla Adapty profiliyle ilişkilendirildiğinde, Adapty bu profilleri bir zincir olarak ele alır: bir ebeveyn profil ve aynı satın almadan erişimi paylaşan bir ya da birden fazla miras alan profil.

Bu durum şu koşullarda ortaya çıkar:

  • Kullanıcı hesapları arasında ücretli erişim paylaşımı etkinleştirildiğinde ve bir kullanıcı, daha önce farklı bir profilin satın alma yaptığı bir cihazda oturum açtığında.
  • Bir kullanıcı uygulamayı customer_user_id olmadan yeniden yüklediğinde ve yeni profil önceki kurulumun satın almasını devraldığında.
  • Farklı tanımlı kullanıcılar aynı cihazda satın almaları geri yüklediğinde.
  • Bir uygulama Apple Team ID’leri arasında aktarıldığında ve yeni uygulama eski Team ID altında yapılan satın almaları devraldığında.

Üst öğenin nasıl seçildiği. Üst profil, satın alma işlemini ilk kaydeden profildir — bu, profil oluşturma sırasına göre değil, Adapty’deki satın alma makbuzu sırasına göre belirlenir. Örneğin: uygulamayı yükleyip hiçbir satın alma yapmıyorsunuz, ardından yeniden yükleyip bir abonelik satın alıyorsunuz. İkinci profil, satın alma işlemini gerçekleştirdiği için üst profil olur. Birinci profil ise kalıtımcı olur ve paylaşım yoluyla erişim kazanır.

Olaylar nasıl dağıtılır:

  • İşlemsel olaylar (satın almalar, yenilemeler, iptaller, faturalama sorunları, ek süreler, iade): Yalnızca satın almayı gerçekleştiren üst profilde görünür. Tüm abonelik yenilemeleri ve güncellemeleri bu profilde görünmeye devam eder.
  • access_level_updated olayları: Access level durumu her değiştiğinde hem üst hem de devralan profillerde görünür. Bu sayede bağlı tüm profiller güncel erişim durumlarından haberdar olur. Ana profil, işlem geçmişinin tamamını gösterir. Miras alan profiller ise yalnızca kendi access level güncellemelerini ve Access level bölümünde ana profile bir bağlantıyı gösterir.
98d0dad-non-original_profile.webp

Aynı aboneliği farklı profiller üzerinden takip etme. Her miras alan profilin kendine ait bir profile_id’si vardır; bu nedenle profile_id, bir zincir boyunca tutarlı değildir. Aynı aboneliği birden fazla profil arasında tanımlamak için — örneğin webhook olaylarını eşleştirirken veya kontrol paneli profillerini tek bir kullanıcıyla ilişkilendirirken — bunun yerine mağaza tarafındaki tanımlayıcıyı kullanın.

AlanKullanım amacı
store_original_transaction_idProfiller arasında bir abonelik zincirini tanımlamak için. Her Apple aboneliğine özel benzersiz bir değerdir.
profiles_sharing_access_level (webhook alanı)Paylaşım etkinleştirildiğinde, abonelik tarafından yetkilendirilen tüm profiller.
profile_idProfiller arası takip için uygun değildir — her devralan profilin kendine ait bir profile_id’si vardır.

Kullanıcı hesapları arasında ücretli erişimi paylaşma

Access level paylaşım politikanızı ayarlamak için General ayarlar sayfasında bir paylaşım seçeneği belirleyin. Sandbox ortamı için ayrı bir politika ayarlayabilirsiniz.

Etkin (varsayılan)

Tanımlı kullanıcılar (bir Müşteri Kullanıcı Kimliği ile tanımlanmış olanlar), cihazları aynı Apple/Google ID ile oturum açmışsa Adapty tarafından sağlanan aynı access level’ı paylaşabilir. Bu, kullanıcının uygulamayı yeniden yükleyip farklı bir e-postayla giriş yapması durumunda bile önceki satın alımına erişimini koruması açısından kullanışlıdır. Bu seçenekle birden fazla tanımlı kullanıcı aynı access level’ı paylaşabilir.

Access level paylaşılsa da tutarlı analizleri korumak ve deneme süreleri, abonelik satın alımları, yenilemeler ve daha fazlası dahil olmak üzere eksiksiz bir işlem geçmişini aynı profile bağlı tutmak amacıyla tüm geçmiş ve gelecek işlemler, orijinal Müşteri Kullanıcı Kimliğinde etkinlik olarak kaydedilir.

Erişimi yeni kullanıcıya aktar

Tanımlı kullanıcılar, cihazları aynı Apple/Google ID ile oturum açtığı sürece farklı bir Müşteri Kullanıcı Kimliği ile giriş yapsalar veya uygulamayı yeniden yükleseler bile Adapty tarafından sağlanan access level’a erişmeye devam edebilir.

Önceki seçenekten farklı olarak Adapty, satın alımı tanımlı kullanıcılar arasında aktarır. Bu sayede satın alınan içeriğe erişim sağlanır; ancak aynı anda yalnızca bir kullanıcı erişime sahip olabilir. Örneğin, KullanıcıA bir abonelik satın alırsa ve KullanıcıB aynı cihazda oturum açarak işlemleri geri yüklerse, KullanıcıB aboneliğe erişim kazanır ve KullanıcıA’nın erişimi iptal edilir.

Kullanıcılardan biri (yeni ya da eski) tanımlı değilse, access level Adapty’deki bu profiller arasında yine de paylaşılır.

Access level aktarılsa da tutarlı analizleri korumak ve deneme süreleri, abonelik satın alımları, yenilemeler ve daha fazlası dahil olmak üzere eksiksiz bir işlem geçmişini aynı profile bağlı tutmak amacıyla tüm geçmiş ve gelecek işlemler, orijinal Müşteri Kullanıcı Kimliğinde etkinlik olarak kaydedilir.

Erişimi yeni kullanıcıya aktar seçeneğine geçtikten sonra access level’lar profiller arasında hemen aktarılmaz. Belirli bir access level için aktarım süreci, yalnızca Adapty mağazadan abonelik yenileme, geri yükleme veya işlem doğrulama gibi bir etkinlik aldığında tetiklenir.

Devre dışı

Bir access level’a ilk ulaşan tanımlı kullanıcı profili, bu erişimi sonsuza kadar korur. İş mantığınız satın alımların tek bir Müşteri Kullanıcı Kimliğine bağlı olmasını gerektiriyorsa bu en uygun seçenektir.

Anonim kullanıcılar arasında access level’ların paylaşılmaya devam ettiğini unutmayın.

Sahip kullanıcı profilini silerek bir satın alımı “bağlantısından koparabilirsiniz”. Silme işleminin ardından access level, ister anonim ister tanımlı olsun, onu talep eden ilk kullanıcı profiline açık hale gelir.

Paylaşımı devre dışı bırakmak yalnızca yeni kullanıcıları etkiler. Kullanıcılar arasında zaten paylaşılmış olan abonelikler, bu seçenek devre dışı bırakıldıktan sonra da paylaşılmaya devam eder.

Apple ve Google, uygulama içi satın alımların satın alımı Apple/Google ID ile ilişkilendirdiğinden kullanıcılar arasında paylaşılmasını veya aktarılmasını zorunlu kılar. Paylaşım olmadan, sonraki yeniden yüklemelerde satın alımları geri yüklemek çalışmayabilir.

Paylaşımı devre dışı bırakmak, kullanıcıların giriş yaptıktan sonra erişimlerini yeniden kazanamamasına yol açabilir.

Paylaşımı yalnızca kullanıcılarınızın satın alım yapmadan önce giriş yapmak zorunda olduğu durumlarda devre dışı bırakmanızı öneririz. Aksi takdirde tanımlı bir kullanıcı abonelik satın alıp başka bir hesaba giriş yapabilir ve erişimini kalıcı olarak kaybedebilir.

Hangi ayarı seçmeliyim?

Uygulamam…Seçilecek seçenek
Giriş sistemi yok ve yalnızca Adapty’nin anonim profil ID’lerini kullanıyor.Varsayılan seçeneği kullanın; zira her üç seçenekte de access level’lar anonim profil ID’leri arasında her zaman paylaşılır.
İsteğe bağlı bir giriş sistemi var ve müşterilerin hesap oluşturmadan önce satın alım yapmasına izin veriyor.Hesap oluşturmadan satın alım yapan müşterilerin işlemlerini daha sonra geri yükleyebilmesini sağlamak için Erişimi yeni kullanıcıya aktar seçeneğini tercih edin.
Satın alım yapmadan önce hesap oluşturmayı zorunlu kılıyor ancak satın alımların birden fazla Müşteri Kullanıcı Kimliğine bağlanmasına izin veriyor.Aynı anda yalnızca bir Müşteri Kullanıcı Kimliğinin erişime sahip olmasını sağlarken kullanıcıların ücretli erişimlerini kaybetmeden farklı bir Müşteri Kullanıcı Kimliğiyle giriş yapabilmesine olanak tanımak için Erişimi yeni kullanıcıya aktar seçeneğini tercih edin.
Satın alım yapmadan önce hesap oluşturmayı zorunlu kılıyor ve satın alımları tek bir Müşteri Kullanıcı Kimliğine bağlayan katı kurallara sahip.İşlemlerin hesaplar arasında hiçbir zaman aktarılmamasını sağlamak için Devre dışı seçeneğini tercih edin.

Gelecek tarihli olay zaman damgaları (Apple/iOS)

Bu davranış Apple App Store’a özgüdür. Google Play’in bildirim sistemi olayları önceden göndermez.

Apple, yenileme olaylarını önceden gönderdiği için profillerdeki ve entegrasyonlardaki olay zaman damgaları gelecek tarihleri gösterebilir.

  • Neden olur: Apple bunu, aboneliklerin sona ermeden önce otomatik olarak yenilenmesini sağlamak ve kullanıcı hizmet kesintilerini önlemek için yapar. Daha fazla ayrıntı için Apple’ın Geliştirici Forumuna bakın: Server Notifications for Subscriptions.
  • Etkilenen olay türleri: Genellikle bu durum abonelik yenilemeleri ve deneme sürümünden ücretli dönüşümleri için geçerlidir. Bu olaylar, Apple sistemleri önceden bilgilendirdiği için gelecek zaman damgalarına sahip olabilir.
  • Diğer olay türleri: Ek uygulama içi satın alımlar ve abonelik planı değişiklikleri, bu olaylar önceden tahmin edilemeyeceği için gerçek zaman damgalarıyla kaydedilir.
  • Analitik ve Olay Akışı üzerindeki etkisi: Bu olaylar yalnızca zaman damgaları geçtikten sonra Analytics ve Event Feed’de görünür. Gelecek zaman damgalı olaylar her iki bölümde de gösterilmez.
  • Entegrasyonlar üzerindeki etkisi: Adapty, olayları alır almaz entegrasyonlara gönderir. Bir olayın gelecek zaman damgası varsa Adapty, bunu entegrasyonunuza gelecek zaman damgası değiştirilmeden gönderir.

Sonraki adımlar