Amazon S3

Adapty’nin Amazon S3 entegrasyonu, etkinlik ve paywall ziyaret verilerini tek bir merkezi konumda güvenli biçimde saklamanıza olanak tanır. Abonelik etkinliklerinizi Amazon S3 bucket’ınıza .csv dosyaları olarak kaydedebileceksiniz.
Bu entegrasyonu kurmak için AWS Console ve Adapty Kontrol Paneli’nde birkaç basit adımı takip etmeniz gerekecek.

Note

Zamanlama

Adapty verilerinizi her 24 saatte bir 04:00 UTC’de gönderir.

Her dosya, UTC saatiyle bir önceki tam takvim günü boyunca oluşturulan olaylara ait verileri içerir. Örneğin, 8 Mart’ta 04:00 UTC’de otomatik olarak dışa aktarılan veriler, 7 Mart’ta 00:00:00 ile 23:59:59 UTC arasında oluşturulan tüm olayları kapsar.

Amazon S3 entegrasyonunu nasıl kurarsınız

Veri almaya başlamak için aşağıdaki bilgilere ihtiyacınız olacak:

  1. Access key ID
  2. Secret access key
  3. S3 bucket adı
  4. S3 bucket içindeki klasör adı
Note

İç içe dizinler

Amazon S3 bucket adı alanında iç içe dizinler belirtebilirsiniz; örneğin: adapty-events/com.sample-app

Amazon S3 entegrasyonu için Integrations -> Amazon S3 sayfasına gidin, toggle’ı açık konuma getirin ve alanları doldurun.

Her şeyden önce, Amazon S3 ile Adapty profilleri arasında bağlantı kurmak için kimlik bilgilerini girin.

Adapty Kontrol Paneli’nde bağlantıyı kurmak için aşağıdaki alanlar gereklidir:

AlanAçıklama
Access Key IDAWS hizmetine erişimi doğrulamak için kullanılan benzersiz tanımlayıcı. Bu kimliği indirilen csv dosyasında bulabilirsiniz.
Secret Access KeyAWS hizmetine erişimi doğrulamak için Access Key ID ile birlikte kullanılan özel anahtar. Bu anahtarı indirilen csv dosyasında bulabilirsiniz.
S3 Bucket NameAWS bulutundaki belirli bir S3 bucket’ını tanımlayan, küresel olarak benzersiz ad. S3 bucket’ları, kullanıcıların bulutta dosya ve görsel gibi veri nesnelerini depolamasına ve almasına olanak tanıyan basit bir depolama hizmetidir.
Folder Inside the BucketSeçili S3 bucket’ının içinde oluşturmak istediğiniz klasörün adı. S3’ün klasörleri, nesne anahtarı önekleri (yani klasör adları) kullanarak simüle ettiğini unutmayın.

Amazon S3 kimlik bilgileri nasıl oluşturulur

Bu kılavuz, AWS Console’da gerekli kimlik bilgilerini oluşturmanıza yardımcı olacaktır.

1. Erişim Politikası Oluşturun

Önce AWS Console’unuzdaki IAM Policy Dashboard sayfasına gidin ve Create Policy seçeneğini tıklayın.

7af075c-CleanShot_2023-03-21_at_10.52.002x.webp

Policy editor bölümüne aşağıdaki JSON’ı yapıştırın ve adapty-s3-integration-test kısmını kendi bucket adınızla değiştirin:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowListObjectsInBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::adapty-s3-integration-test"
        },
        {
            "Sid": "AllowAllObjectActions",
            "Effect": "Allow",
            "Action": "s3:*Object",
            "Resource": [
                "arn:aws:s3:::adapty-s3-integration-test/*",
                "arn:aws:s3:::adapty-s3-integration-test"
            ]
        },
        {
            "Sid": "AllowBucketLocation",
            "Effect": "Allow",
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::adapty-s3-integration-test"
        }
    ]
}
d4e474a-CleanShot_2023-03-21_at_10.56.212x.webp

Politika yapılandırmasını tamamladıktan sonra etiket eklemeyi seçebilirsiniz (isteğe bağlı) ve ardından son adıma geçmek için Next düğmesine tıklayın. Bu adımda politikanıza bir ad verip Create policy düğmesine tıklayarak oluşturma işlemini tamamlayın.

7dcb02f-CleanShot_2023-03-21_at_11.03.372x.webp

2. IAM kullanıcısı oluşturun

Adapty’nin ham veri raporlarını bucket’ınıza yükleyebilmesi için, ilgili bucket’a yazma erişimi olan bir kullanıcıya ait Access Key ID ve Secret Access Key bilgilerini sağlamanız gerekir.

Devam etmek için IAM Console’a gidin ve Users bölümünü seçin. Ardından Add users butonuna tıklayın.

Kullanıcıya bir isim verin, Access key – Programmatic access seçeneğini seçin ve izinlere geçin.

bb612c8-CleanShot_2023-03-21_at_11.12.392x.webp

Bir sonraki adım için Add user to group seçeneğini işaretleyin ve ardından Create group butonuna tıklayın.

bfd0e80-CleanShot_2023-03-21_at_11.24.592x.webp

Ardından, Kullanıcı Grubunuza bir ad vermeniz ve daha önce oluşturduğunuz politikayı seçmeniz gerekir. Politikayı seçtikten sonra işlemi tamamlamak için Create group düğmesine tıklayın.

df29c12-CleanShot_2023-03-21_at_11.28.052x.webp

Grubu başarıyla oluşturduktan sonra lütfen seçin ve bir sonraki adıma geçin.

1f3722e-CleanShot_2023-03-21_at_11.36.192x.webp

Bu bölümün son adımı olduğundan, Create User düğmesine tıklayarak devam edebilirsiniz.

Son olarak, kimlik bilgilerini .csv formatında indirebilir ya da doğrudan kontrol panelinden kopyalayıp yapıştırabilirsiniz.

bcf35e1-S3created.webp

Manuel veri dışa aktarımı

Amazon S3’e otomatik etkinlik verisi dışa aktarımına ek olarak, Adapty manuel dosya dışa aktarımı özelliği de sunar. Bu özellik sayesinde etkinlik verileri için belirli bir zaman aralığı seçerek bunları S3 bucket’ınıza manuel olarak aktarabilirsiniz. Bu, hangi verileri ne zaman dışa aktaracağınız konusunda size daha fazla kontrol imkânı tanır.

Belirlenen tarih aralığı, A Tarihi 00:00:00 UTC ile B Tarihi 23:59:59 UTC arasında oluşturulan etkinlikleri dışa aktarmak için kullanılır.

466bd29-CleanShot_2023-03-21_at_12.35.252x.webp

Tablo yapısı

AWS S3 entegrasyonunda Adapty, işlem olayları ve paywall ziyaretlerine ait geçmiş verileri saklamak için bir tablo sunar. Tablo; kullanıcı profili, gelir ve kazançlar ile kaynak mağaza gibi birçok veri noktasını içerir. Temelde bu tablolar, bir uygulamanın belirli bir zaman diliminde oluşturduğu tüm işlemleri kaydeder.

Warning

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

İşte event’ler için tablo yapısı:

Note

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.

SütunAçıklama
profile_idAdapty kullanıcı ID’si.
event_typeKüçük harfli event adı. Event türlerini öğrenmek için Events bölümüne bakın.
event_datetimeISO 8601 tarihi.
transaction_idSatın alma veya yenileme gibi bir işlem için benzersiz tanımlayıcı.
original_transaction_idOrijinal satın almanın işlem tanımlayıcısı.
subscription_expires_atAboneliğin sona erme tarihi. Genellikle gelecekte bir tarihtir.
environmentSandbox veya Production olabilir.
revenue_usdUSD cinsinden gelir. Boş olabilir.
proceeds_usdUSD cinsinden net hasılat. Boş olabilir.
net_revenue_usdUSD cinsinden net gelir (vergiler düşüldükten sonra). Boş olabilir.
tax_amount_usdUSD cinsinden kesilen vergi tutarı. Boş olabilir.
revenue_localYerel para biriminde gelir. Boş olabilir.
proceeds_localYerel para biriminde net hasılat. Boş olabilir.
net_revenue_localYerel para biriminde net gelir (vergiler düşüldükten sonra). Boş olabilir.
tax_amount_localYerel para biriminde kesilen vergi tutarı. Boş olabilir.
customer_user_idGeliştirici kullanıcı ID’si. Örneğin kullanıcı UUID’niz, e-postanız veya başka bir ID olabilir. Ayarlamadıysanız null döner.
storeapp_store veya play_store olabilir.
product_idApple App Store, Google Play Store veya Stripe’taki ürün ID’si. 12 aylık taahhüt planı için değer <product_id>:monthly şeklindedir.
base_plan_idGoogle Play Store’daki Base plan ID veya Stripe’taki fiyat ID’si.
developer_idİşlemin gerçekleştiği paywall’ın geliştirici (SDK) ID’si.
ab_test_nameİşlemin gerçekleştiği A/B testinin adı. Çapraz placement A/B testi için tek bir placement’taki testin adı (<test name> child-N). Çapraz placement testini placement’lar genelinde gruplandırmak için ab_test_id kullanın.
ab_test_revisionİşlemin gerçekleştiği A/B testinin revizyonu.
paywall_nameİşlemin gerçekleştiği paywall’ın adı. Bir flow için paywall ekranının ID’si (scr_...). Flow adı flow_name alanındadır.
paywall_revisionİşlemin gerçekleştiği paywall’ın revizyonu.
profile_countyAdapty tarafından IP’ye göre belirlenen profil ülkesi.
install_dateKurulumun gerçekleştiği ISO 8601 tarihi.
idfviOS cihazlarda identifierForVendor
idfaiOS cihazlarda advertisingIdentifier
advertising_idAdvertising ID, Android işletim sistemi tarafından atanan ve reklamcıların kullanıcının cihazını benzersiz şekilde tanımlamak için kullanabileceği benzersiz bir koddur.
ip_addressCihaz IP’si (IPv4 veya IPv6 olabilir; mevcut olduğunda IPv4 tercih edilir). Cihazın IP’si her değiştiğinde güncellenir.
cancellation_reason

Kullanıcının aboneliği iptal etme nedeni.

Şunlar olabilir:

iOS & Android voluntarily_cancelled, billing_error, refund

iOS price_increase, product_was_not_available, unknown, upgraded

Android new_subscription_replace, cancelled_by_developer

android_app_set_idBir AppSetId — para kazanmayan reklam kullanım senaryoları için cihaz başına, geliştirici hesabı başına, kullanıcı tarafından sıfırlanabilir benzersiz ID.
android_idAndroid 8.0 (API seviye 26) ve üzeri sürümlerde, uygulama imzalama anahtarı, kullanıcı ve cihaz kombinasyonuna özgü 64 bitlik bir sayı (onaltılık dize olarak ifade edilir). Daha fazla bilgi için Android geliştirici belgelerine bakın.
deviceSon kullanıcıya görünen cihaz modeli adı.
currencyİşlemin 3 harfli para birimi kodu (ISO-4217).
store_countryApple/Google mağazası tarafından belirlenen profil ülkesi.
attribution_sourceAttribution kaynağı.
attribution_network_user_idAttribution kaynağı tarafından kullanıcıya atanan ID.
attribution_statusorganic, non_organic veya unknown olabilir.
attribution_channelPazarlama kanalı adı.
attribution_campaignPazarlama kampanyası adı.
attribution_ad_groupAttribution reklam grubu.
attribution_ad_setAttribution reklam seti.
attribution_creativeAttribution kreatif anahtar kelimesi.
attributesÖzel kullanıcı attribute’larının JSON’ı. Mobil uygulamanızdan gönderecek şekilde ayarladığınız tüm özel attribute’ları içerir. Göndermek için Integrations -> Webhooks sayfasındaki Send User Attributes seçeneğini etkinleştirin.
integration_idsBir profille ilişkili tüm entegrasyon ID’leri. Sözlük. Örnek: {‘mixpanel_user_id’: ‘mixpanelUserId-test’, ‘facebook_anonymous_id’: ‘facebookAnonymousId-test’}
variation_idİşlemin gerçekleştiği paywall’ın benzersiz ID’si. Bir flow için, A/B testi varyantı değil, flow içindeki paywall ekranının ID’si.
flow_idİşlemin gerçekleştiği flow’un ID’si.
flow_nameİşlemin gerçekleştiği flow’un adı.
flow_variation_idBu placement’taki flow varyantının ID’si; SDK’daki flow.variationId ile aynıdır.
ab_test_idİşlemin gerçekleştiği A/B testinin ID’si. Çapraz placement A/B testi için her placement’ta aynıdır.
ab_test_variant_idİşlemin gerçekleştiği A/B testi varyantının ID’si. İşlemleri test varyantına göre ayırt etmek için kullanın.
ab_test_variant_nameA/B testi varyantının adı.
ab_test_parent_nameÇapraz placement A/B testinin adı. Diğer A/B testleri için boştur.

Flow ve A/B testi sütunları dosyanın son sütunlarıdır. Adapty bunları dışa aktarma sırasında hesapladığından, A/B testini, varyantı veya flow’u yeniden adlandırdıysanız dışa aktarmadaki ad daha önceki bir webhook olayındaki addan farklı olabilir. Her A/B testi türünde her sütunun ne içerdiğini görmek için Flow ve A/B testi alanları bölümüne bakın.

Paywall ziyaretlerine ait tablo yapısı aşağıdadır:

SütunAçıklama
profile_idAdapty kullanıcı ID’si.
customer_user_idGeliştirici kullanıcı ID’si. Örneğin kullanıcı UUID’niz, e-postanız veya başka bir ID olabilir. Ayarlamadıysanız null.
profile_countryApple/Google store tarafından belirlenen profil ülkesi.
install_dateKurulumun gerçekleştiği ISO 8601 tarih değeri.
storeapp_store veya play_store olabilir.
paywall_showed_atPaywallın kullanıcıya gösterildiği tarih.
developer_idİşlemin gerçekleştiği paywallın geliştirici (SDK) ID’si.
ab_test_nameİşlemin gerçekleştiği A/B testinin adı.
ab_test_revisionİşlemin gerçekleştiği A/B testinin revizyonu.
paywall_nameİşlemin gerçekleştiği paywallın adı.
paywall_revisionİşlemin gerçekleştiği paywallın revizyonu.

Etkinlikler ve etiketler

İntegrasyon tarafından iletilen verileri yönetebilirsiniz. İntegrasyon aşağıdaki yapılandırma seçeneklerini sunar:

AyarAçıklama
Exclude Historical EventsAdapty SDK’nın yüklendiği günden önce gerçekleşen etkinlikleri dışarıda bırakmak için bu seçeneği işaretleyin. Bu sayede etkinlik tekrarının önüne geçilir ve raporlama doğruluğu korunur. Örneğin, bir kullanıcı 10 Ocak’ta aylık abonelik başlattıysa ve uygulamayı Adapty SDK ile 6 Mart’ta güncelledi ise Adapty, 6 Mart öncesindeki etkinlikleri atlar ve sonraki etkinlikleri saklar.
Include events without profileAdapty’de bir kullanıcı profiline bağlı olmayan işlemleri dahil etmek için bu seçeneği işaretleyin. Bunlar; Adapty SDK yüklenmeden önce yapılan satın almalar ya da mağaza sunucu bildirimlerinden gelen ve belirli bir kullanıcıyla hemen ilişkilendirilemeyen işlemler olabilir.
Send User AttributesDil tercihleri gibi kullanıcıya özgü öznitelikleri göndermek istiyorsanız ve OneSignal planınız 10’dan fazla etiketi destekliyorsa bu seçeneği etkinleştirin. Etkinleştirildiğinde varsayılan 10 etiketin ötesinde ek bilgiler gönderilebilir. Etiket sınırının aşılması hatalara yol açabileceğini unutmayın.

Entegrasyon ayarlarının altında, Adapty’den Amazon S3’e aktarıp depolayabileceğiniz üç grup etkinlik bulunur. İhtiyacınız olanları açmanız yeterli. Adapty’nin sunduğu etkinliklerin tam listesine buradan ulaşabilirsiniz.

fd5ccb9-CleanShot_2023-08-17_at_14.49.282x.webp