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:

  1. Access key ID
  2. Secret access key
  3. S3 bucket adı
  4. 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:

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.

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ütunAçıklama
profile_idAdapty kullanıcı ID’si.
event_typeKüçük harfli event adı. Event türleri hakkında bilgi almak 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 sonraki kazanç). 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 sonraki kazanç). 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-posta adresiniz 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.
base_plan_idGoogle 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_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_idAndroid İş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_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_idParasal 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_idAndroid 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.
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ı 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_idsBir 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ü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