Google Cloud Storage
Learn how to set up Google Cloud Storage export
Adapty's integration with Google Cloud Storage allows you to store event and paywall visit data securely in one central location. You will be able to save your subscription events to your Google Cloud Storage bucket as .csv files.
To set up this integration, you will need to follow a few simple steps in the Google Cloud Console and Adapty dashboard.
Schedule
Adapty sends your data to Google Cloud Storage every 24h at 4:00 UTC.
How to set up Google Cloud storage integration
To integrate Google Cloud Storage go to Integrations > Google Cloud Storage, turn on a toggle from off to on, and fill out fields.
First of all set credentials to build a connection between Google Cloud Storage and Adapty profiles.

Adapty - Google Cloud Storage
In the Adapty Dashboard the following fields are needed to setup the connection:
-
Google Cloud Client ID - an unique identifier assigned to your Google Cloud project when you create a new client in the Google Cloud Console. Find this ID in the downloaded private JSON key file under the
client_id
field. -
Google Cloud Project ID - an user-assigned identifier for your Google Cloud project. Find this ID in the downloaded private JSON key file under the
project_id
field. -
Google Cloud Service Account Private Key ID - an unique identifier assigned to your private key when you create a new service account in the Google Cloud Console. Find this ID in the downloaded private JSON key file under the
private_key_id
field. -
Google Cloud Service Account Private Key - an unique private key for your service account. Find this ID in the downloaded private JSON key file under the
private_key
field. -
Google Cloud Bucket Name - the name of the bucket in Google Cloud Storage where you want to store your data. It should be unique within the Google Cloud Storage environment and should not contain any spaces.
-
Email - This is the email address associated with your service account in Google Cloud Console. It is used to grant access to resources in your project.
-
Folder inside the bucket - This is the name of the folder inside the bucket where you want to store your data. It should be unique within the bucket and can be used to organize your data. This field is optional to fill.
Create Google Cloud Storage credentials
This guide will help you create necessary credentials in your Google Cloud Platform Console.
In order for Adapty to upload raw data reports to your designated bucket, the service account's key is required, as well as write access to the corresponding bucket. By providing the service account's key and granting write access to the bucket, you allow Adapty to securely and efficiently transfer the raw data reports from its platform to your storage environment.
Please note that we only support Service Account HMAC key authorization, means it's essential to ensure that your Service Account HMAC key has the "Storage Object Viewer", "Storage Legacy Bucket Writer" and "Storage Object Creator" roles added to it to enable proper access to Google Cloud Storage.
1. For the first step you need to go to the IAM section of your Google Cloud account and choose the relevant project or create a new one.

GCS - Select Project
2. Next create a new service account for the Adapty by clicking on the "+ CREATE SERVICE ACCOUNT" button.

GCS - Create button
3. Fill out the fields in the first step, as access will be granted at a later stage. In order to read more details about this page read the documentation here.

GCS - Add Service Account
4. To create and download a private JSON key, navigate to the KEYS section and click on the "ADD KEY" button.

Add Key JSON- GCS
5. In the DETAILS section, locate the Email value linked to the recently created service account and make a copy of it. This information will be necessary for the upcoming steps to authorize the account and allow it to write to the bucket.

GCS - Service Account Details
6. To proceed go to the Google Cloud Storage's Buckets page and either select an existing bucket or create a new one to store the Event or Visuts Data reports from Adapty. Then navigate to the PERMISSIONS section and select the option to GRANT ACCESS.

GCS - Grant Access
7. In the PERMISSIONS section, input the Email of the service account obtained in the fifth step mentioned earlier, then choose the Storage Object Creator role. Finally, click on SAVE to apply the changes.

GCS - Grant Access
Remember to keep the name of the bucket for future reference.
8. After passing these steps have successfully completed the necessary setup steps in the Google Cloud Console! The final step involves entering the bucket's name, accessing the JSON file containing the downloaded private key, and extracting the required field values for use in Adapty.

GCS - private JSON
Manual data export
In addition to the automatic event data export to Google Cloud Storage, Adapty also provides a manual file export functionality. With this feature, you can select a specific time interval for the event data and export it to your GCS bucket manually. This allows you to have greater control over the data you export and when you export it. Please note that the file for today will have incomplete data.

GCS - Manual Export
Table structure
In Google Cloud Storage integration, Adapty provides table to store historical data for transaction events and paywall visits. The table contains information about the user profile, revenue and proceeds, and the origin store, among other data points. Essentially, these tables log all transactions generated by an app for a given time period.
Here is the table structure for the events:
Column | Description |
---|---|
profile_id | Adapty user ID. |
event_type | Lower cased event name. Refer to the Events section to learn event types. |
event_datetime | ISO 8601 date. |
transaction_id | A unique identifier for a transaction such as a purchase or renewal. |
original_transaction_id | The transaction identifier of the original purchase. |
subscription_expires_at | The Expiration date of subscription. Usually in the future. |
environment | Could be Sandbox or Production. |
revenue_usd | Revenue in USD. Can be empty. |
proceeds_usd | Proceeds in USD. Can be empty. |
net_revenue_usd | Net revenue (income after taxes) in USD. Can be empty. |
tax_amount_usd | Amount of money deducted for taxes in USD. Can be empty. |
revenue_local | Revenue in local currency. Can be empty. |
proceeds_local | Proceeds in local currency. Can be empty. |
net_revenue_local | Net revenue (income after taxes) in local currency. Can be empty. |
tax_amount_local | Amount of money deducted for taxes in local currency. Can be empty. |
customer_user_id | Developer user ID. For example, it can be your user UUID, email, or any other ID. Null if you didn't set it. |
store | Could be app_store or play_store. |
product_id | Product id in Apple/Google store. |
developer_id | Developer (SDK) ID of the paywall where the transaction originated. |
ab_test_name | Name of the A/B test where the transaction originated. |
ab_test_revision | Revision of the A/B test where the transaction originated. |
paywall_name | Name of the paywall where the transaction originated. |
paywall_revision | Revision of the paywall where the transaction originated. |
profile_county | Profile Country determined by Adapty, based on IP. |
currency | The 3-letter currency code (ISO-4217) of the transaction. |
store_country | Profile Country determined by Apple/Google store. |
attribution_source | Attribution source. |
attribution_network_user_id | ID assigned to the user by attribution source. |
attribution_status | Can be organic, non_organic or unknown |
attribution_channel | Marketing channel name. |
attribution_campaign | Marketing campaign name. |
attribution_ad_group | Attribution ad group. |
attribution_ad_set | Attribution ad set. |
attribution_creative | Attribution creative keyword. |
And here is the table structure for the paywall visits:
Column | Description |
---|---|
profile_id | Adapty user ID. |
customer_user_id | Developer user ID. For example, it can be your user UUID, email, or any other ID. Null if you didn't set it. |
profile_country | Profile Country determined by Apple/Google store. |
install_date | ISO 8601 date when the installation happened. |
store | Could be app_store or play_store. |
paywall_showed_at | The date when the paywall has been displayed to the customer. |
developer_id | Developer (SDK) ID of the paywall where the transaction originated. |
ab_test_name | Name of the A/B test where the transaction originated. |
ab_test_revision | Revision of the A/B test where the transaction originated. |
paywall_name | Name of the paywall where the transaction originated. |
paywall_revision | Revision of the paywall where the transaction originated. |
## Events and tags
Below the credentials, there are three groups of events you can export, send, and store in Google Cloud Storage from Adapty. Simply turn on the ones you need. Check the full list of the events offered by Adapty here.

Subscriptions, trials, issues events in Adapty integration interface
Updated 20 days ago