Skip to main content

What kind of data we need

Prior to the program launch, wappier needs to receive and analyze granular data. This data will be used to finalize the scope of the program and identify the appropriate pricing optimizations to start the program with.

What we require before the launch of the program, is 12 months' worth of:

  • Transaction Data
  • Activity Data

Post launch, there is also an ongoing requirement for the same data to be sent, in order to be used for

(a) measuring the impact on monthly Average Revenue Per User (ARPU) and

(b) conduct further price point optimizations

The data sent to wappier post launch will need to be provided frequently (details described in next steps) to maximize the impact of the Program.

We request for both Android and iOS data to be provided, regardless of which platform we are looking to optimize. This is because we would like to leverage these as signals that we are incorporating in our program performance measurement (useful for indicative comparison signals).

info

Post launch, ongoing data is needed for SDK-less integrations only. SDK programs require only a one-time data dump of historical data (on an ongoing basis the SDK will be tracking all needed data).

Using an S3 Bucket

Transaction Data

All transaction events performed by users. It is required for the export to include transactions from the last 12 months and for the new daily files to include only incremental transactions. These should be saved under {bucket_name}/{app_name}/wappier_payment_data/ in .parquet or .orc format, partitioned by payment_date (YYYY-MM-DD).

For example:

Bucket1/App_1/wappier_payment_data/payment_date=2020-08-22/part-00018-565ff80f-fde6-45cc-90ba-decb3e52e88a.c000.snappy.parquet 

Bucket1/App_1/wappier_payment_data/payment_date=2020-11-25/part-00018-565ff80f-fde6-45cc-90ba-decb123fdde2.c000.snappy.parquet

The columns should be structured in the following scheme:

  • user_id (Mandatory) – user’s unique identifier
  • platform (Mandatory) – The platform of the user. Possible values: android, ios or any other source in lowercase
  • country_code (Mandatory) – ISO-2 country code of the user
  • transaction_id (Mandatory) – A unique identifier for the in-app purchase (generated by Google/Apple)
  • offer_id – A unique offer identifier that indicates which offer the user received when he completed the specific transaction
  • SKU (Mandatory) – A unique product identifier, which is defined on your appStoreConnect/Google Developer Console
  • currency (Mandatory) – The currency that the user payed into during the in-app purchase
  • price (Mandatory) – revenue amount in user’s local currency (gross amount).The values of this column should change after the SKU prices change, following the new price currency_rate (Mandatory) – The exchange rate of the local_currency for that day compared to USD
  • price_usd (Mandatory) – The revenue that the user spent in USD (gross amount).The values of this column should change after the SKU prices change, following the new price.
  • timestamp (Mandatory) – The time in UTC that the transaction took place in YYYY-MM-DD HH24:MI:DD format.
info

When composing the datasets, please prefer sending all the columns described above using the suggested columns names. If you do not have values for a specific column/row, you can populate it with null values. Mandatory columns cannot contain null values.

Data sample:

user_idplatformcountry_codetransaction_idoffer_idSKUcurrencypricecurrency_rateprice_usdtimestamp
0d73ce70adandroidUSGPA.1234-1234-
1234-12345
Small Gold Packcom.example.50goldUSD0.9910.992020-08-22 12:31:11
381107e0d0androidFRGPA.1234-1234-1234-54123Large Gold Packcom.example.100goldEUR1.491.171.752020-09-23 15:02:39
9d310031cciOSAU100100165639019Bundle Mega Offercom.example.bundle1AUD5.490.713.922020-10-24 17:18:21
8d679827bziOSCN100100115830019Summer Offercom.example.offer.2CNY71.990.1510.602020-11-25 23:49:37

info

To prevent the AccessDeniedException error when reading data from the S3 bucket, the datasets must be uploaded using the BucketOwnerFullControl option. This is applicable for when the S3 bucket is created on wappier's side.

Activity Data

All active users that visit the app on a daily basis. It is required for the export to include daily data from the last 12 months and for the new daily files to include the users that opened the application at least once in that specific date.
These should be saved under {bucket_name}/{app_name}/wappier_active_users/ in .parquet or .orc format, partitioned by snapshot_date (YYYY-MM-DD).

For example:

```Bucket1/App_1/wappier_active_users/snapshot_date=2020-04-25/part-00018-565ff80f-fde6-45cc-90ba-decb3e52e88a.c000.snappy.parquet``` 

```Bucket1/App_1/wappier_active_users/snapshot_date=2020-04-26/part-00018-565ff80f-fde6-45cc-90ba-decb123fdde2.c000.snappy.parquet```

The Columns should be structured in the below scheme:

  • user_id (Mandatory) – user’s unique identifier
  • country_code (Mandatory) – ISO-2 country code of the user
  • install_date – Installation date for the user in YYYY-MM-DD format
  • platform (Mandatory) – The platform of the user. Possible values: android, ios or any other source in lowercase
info

When composing the datasets, please prefer sending all the columns described above using the suggested columns names. If you do not have values for a specific column/row, you can populate it with null values. Mandatory columns cannot contain null values.

user_idcountry_codeinstall_dateplatform
0d73ce70adUS2020-08-12android
381107e0d0FR2019-07-24android
9d310031ccAU2018-04-15iOS
8d679827bzCN2017-04-30iOS

info

To prevent the AccessDeniedException error when reading data from the S3 bucket, the datasets must be uploaded using the BucketOwnerFullControl option. This is applicable for when the S3 bucket is created on wappier's side.

Using AppsFlyer

Once you enable wappier to access your data via the AppsFlyer APIs, we can directly pull the needed data with no overhead for you.

For visibility purposes, the data we would be gathering from AppsFlyer to run the Global Pricing program, would be as follows:

Activity Events (af_login)

  • user_id – customer_user_id
  • country_code – country_code
  • install_date – install_time
  • platform – platform

Transaction Events (af_purchase)

  • user_id – customer_user_id
  • platform – platform
  • country_code – country_code
  • transaction_id – attributes.af_order_id
  • sku – attributes.af_content_id
  • currency – event_revenue_currency
  • price – event_revenue
  • price_usd – event_revenue_usd
  • currency_rate – Needs to be calculated. Price divided by price_usd
  • timestamp – event_time

Exporting Store Data

If for any reason you are not sure about the integrity of the Android Revenue Data, you need to provide wappier with the Google Financial Reports or Apple Financial Reports.

Export Google Financial Data

You can export the monthly financial reports from the Google Play Console by following the steps below:

  • Open Google Play Console.
  • Click Download reports and select Financial.
  • Select the year and month of the report you want to download.
  • Click on the button to download the report locally
note

Financial reports include all apps in your account by default. If you need to include the reports of specific apps only, please filter out the apps that should be excluded from the export before sharing it with wappier.

Export Apple Financial Data

You can view & export Financial reports from App Store Connect by following the steps below:

  • From the homepage, click on Reports.

  • In the top-right corner, click Create Reports.

  • Select the fiscal month for the report you would like to download.

  • Select which locations you would like to include in your report. By default, this is set to All Countries or Regions (Multiple Files).

  • When All Territories is selected, an App Store Connect user can only download the reports for which they have access.

  • Click Create Reports. A status bar will be displayed, showing the progress of your reports being created.

  • When the reports are ready, a download link will be provided. Click Download Reports.

  • Unzip the compressed GZIP (.gz) file by opening it or using a utility.

  • Open the extracted tab-delimited text (.txt) file in a spreadsheet application.