Amazon S3
Adapty’nin Amazon S3 entegrasyonu, etkinlik ve paywall ziyaret verilerinizi tek bir merkezi konumda güvenli şekilde saklamanızı sağlar. Abonelik etkinliklerinizi Amazon S3 bucket’ınıza .csv dosyaları olarak kaydedebilirsiniz.
Bu entegrasyonu kurmak için AWS Console ve Adapty kontrol panelinde birkaç basit adımı izlemeniz gerekecek.
Zamanlama
Adapty verilerinizi her 24 saatte bir 04:00 UTC’de gönderir.
Her dosya, bir önceki tam takvim gününe ait UTC zaman dilimiyle oluşturulmuş olayların verilerini 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:
- Access key ID
- Secret access key
- S3 bucket adı
- S3 bucket içindeki klasör adı
İç 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:
| Alan | Açıklama |
|---|---|
| Access Key ID | AWS hizmetine erişimi doğrulamak için kullanılan benzersiz tanımlayıcı. Bu kimliği indirilen csv dosyasında bulabilirsiniz. |
| Secret Access Key | AWS 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 Name | AWS 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 Bucket | Seç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.
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"
}
]
}
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.
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.
Bir sonraki adım için Add user to group seçeneğini işaretleyin ve ardından Create group butonuna tıklayın.
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.
Grubu başarıyla oluşturduktan sonra lütfen seçin ve bir sonraki adıma geçin.
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.
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.
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.
Bu yapının zamanla büyüyebileceğini unutmayın — bizim tarafımızdan veya birlikte çalıştığımız üçüncü taraflarca yeni veriler eklenebilir. 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 olaylar için tablo yapısı:
| Sütun | Açıklama |
|---|---|
| profile_id | Adapty kullanıcı ID’si. |
| event_type | Küçük harfli event adı. Event türleri hakkında bilgi almak için Events bölümüne bakın. |
| event_datetime | ISO 8601 tarihi. |
| transaction_id | Satın alma veya yenileme gibi bir işlem için benzersiz tanımlayıcı. |
| original_transaction_id | Orijinal satın almanın işlem tanımlayıcısı. |
| subscription_expires_at | Aboneliğin sona erme tarihi. Genellikle gelecekte bir tarihtir. |
| environment | Sandbox veya Production olabilir. |
| revenue_usd | USD cinsinden gelir. Boş olabilir. |
| proceeds_usd | USD cinsinden net hasılat. Boş olabilir. |
| net_revenue_usd | USD cinsinden net gelir (vergiler düşüldükten sonraki kazanç). Boş olabilir. |
| tax_amount_usd | USD cinsinden kesilen vergi tutarı. Boş olabilir. |
| revenue_local | Yerel para biriminde gelir. Boş olabilir. |
| proceeds_local | Yerel para biriminde net hasılat. Boş olabilir. |
| net_revenue_local | Yerel para biriminde net gelir (vergiler düşüldükten sonraki kazanç). Boş olabilir. |
| tax_amount_local | Yerel para biriminde kesilen vergi tutarı. Boş olabilir. |
| customer_user_id | Geliştirici kullanıcı ID’si. Örneğin kullanıcı UUID’niz, e-posta adresiniz veya başka bir ID olabilir. Ayarlamadıysanız null döner. |
| store | app_store veya play_store olabilir. |
| product_id | Apple App Store, Google Play Store veya Stripe’taki ürün ID’si. |
| base_plan_id | Google Play Store’daki temel plan ID’si 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ı. |
| 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. |
| profile_county | Adapty tarafından IP’ye göre belirlenen profil ülkesi. |
| install_date | Kurulumun gerçekleştiği ISO 8601 tarihi. |
| idfv | iOS cihazlarda identifierForVendor |
| idfa | iOS cihazlarda advertisingIdentifier |
| advertising_id | Android İşletim Sistemi tarafından atanan ve reklamverenlerin bir kullanıcının cihazını benzersiz biçimde tanımlamak için kullanabileceği benzersiz kod. |
| ip_address | Cihaz 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_id | Parasal olmayan reklam kullanım senaryoları için cihaz başına, geliştirici hesabı başına ve kullanıcı tarafından sıfırlanabilir benzersiz bir ID olan AppSetId. |
| android_id | Android 8.0 (API düzeyi 26) ve üzeri sürümlerde, uygulama imzalama anahtarı, kullanıcı ve cihaz kombinasyonuna özgü 64 bit’lik (onaltılık dize olarak ifade edilen) benzersiz bir sayı. Daha fazla ayrıntı için Android geliştirici belgelerine bakın. |
| device | Son kullanıcıya görünen cihaz modeli adı. |
| currency | İşlemin 3 harfli para birimi kodu (ISO-4217). |
| store_country | Apple/Google mağazası tarafından belirlenen profil ülkesi. |
| attribution_source | Attribution kaynağı. |
| attribution_network_user_id | Attribution kaynağı tarafından kullanıcıya atanan ID. |
| attribution_status | organic, non_organic veya unknown olabilir. |
| attribution_channel | Pazarlama kanalı adı. |
| attribution_campaign | Pazarlama kampanyası adı. |
| attribution_ad_group | Attribution reklam grubu. |
| attribution_ad_set | Attribution reklam seti. |
| attribution_creative | Attribution kreatif anahtar kelimesi. |
| attributes | Özel kullanıcı nitelikleri içeren JSON. Mobil uygulamanızdan göndermek üzere ayarladığınız özel nitelikleri içerir. Göndermek için Integrations -> Webhooks sayfasındaki Send User Attributes seçeneğini etkinleştirin. |
| integration_ids | Bir profille ilişkili tüm entegrasyon ID’leri. Sözlük. Örnek: {‘mixpanel_user_id’: ‘mixpanelUserId-test’, ‘facebook_anonymous_id’: ‘facebookAnonymousId-test’} |
| Here is the table structure for the paywall visits: | |
| Sütun | Açıklama |
| :-------------------- | :-------------------------------------------------------------------------------------------------------------------- |
| profile_id | Adapty kullanıcı ID’si. |
| customer_user_id | Geliş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_country | Apple/Google store tarafından belirlenen profil ülkesi. |
| install_date | Kurulumun gerçekleştiği ISO 8601 tarih değeri. |
| store | app_store veya play_store olabilir. |
| paywall_showed_at | Paywallı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:
| Ayar | Açıklama |
|---|---|
| Exclude Historical Events | Adapty 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 profile | Adapty’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 Attributes | Dil 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. |