Skip to main content

Adjust

With our Adjust integration you can:

  • Accurately track subscriptions generated from Adjust campaigns, allowing you to know precisely how much revenue your campaigns generate.
  • Send trial conversions and renewals directly from RevenueCat to Adjust, allowing for tracking without an app open.
  • Continue to follow your cohorts for months to know the long tail revenue generated by your campaigns.

Integration at a Glance ​

Includes RevenueSupports Negative RevenueSends Sandbox EventsIncludes Customer AttributesSends Transfer EventsOptional Event Types
non_subscription_purchase_event_token expiration_event_token

1. Install Adjust SDK ​

Before RevenueCat can integrate with Adjust, your app should be running the latest Adjust SDK. Refer to the Adjust developer documentation for the latest installation instructions.

2. Send device data to RevenueCat ​

The Adjust integration requires some device-specific data. RevenueCat will only send events into Adjust if the below Customer Attribute keys have been set for the device.

KeyDescriptionRequired
$adjustIdAdjust Id. The unique Adjust identifier for the user✅ (required)
$idfaiOS advertising identifier UUID✅ (recommended)
$gpsAdIdGoogle advertising identifier✅ (recommended)
$androidIdAndroid device identifier✅ (recommended)
$idfviOS vender identifier UUID✅ (recommended)
$ipThe IP address of the device✅ (recommended)

These properties can be set manually, like any other Customer Attributes, or through the helper methods to collectDeviceIdentifiers() and setAdjustId().

import AdSupport

func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

Purchases.configure(withAPIKey: "public_sdk_key")

// ... Configure Adjust SDK and set delegate

// Automatically collect the $idfa, $idfv, and $ip values
Purchases.shared.attribution.collectDeviceIdentifiers()

// Set the Adjust Id on app launch if it exists
if let adjustId = Adjust.adid() {
Purchases.shared.attribution.setAdjustID(adjustId)
}

// ..
}

// IMPORTANT: - Set the Adjust Id when it becomes available, if it
// didn't exist on app launch
extension AppDelegate: AdjustDelegate {
func adjustAttributionChanged(_ attribution: ADJAttribution?) {
if let adjustId = attribution?.adid {
Purchases.shared.attribution.collectDeviceIdentifiers()
Purchases.shared.attribution.setAdjustID(adjustId)
}
}
}

You should make sure to set attributes after the Purchases SDK is configured, and before the first purchase occurs. It's safe to set this multiple times, as only the new/updated values will be sent to RevenueCat.

❗️Device identifiers with iOS App Tracking Transparency (iOS 14.5+)

If you are requesting the App Tracking permission through ATT to access the IDFA, you can call .collectDeviceIdentifiers() again if the customer accepts the permission to update the $idfa attribute in RevenueCat.

📘Import AdSupport Framework (iOS)

The AdSupport framework is required to access the IDFA parameter on iOS. Don't forget to import this into your project.

❗️Remove any client-side purchase tracking

Make sure to remove all client-side tracking of revenue. Since RevenueCat will be sending events for all revenue actions, tracking purchases with the Adjust SDK directly can lead to double counting of revenue in Adjust.

(Optional) Send campaign data to RevenueCat ​

RevenueCat itself is not an attribution network, and can't determine which specific ad drove an install/conversion. However, if you're able to collect this information from another source, such as Adjust, it's possible to attach it to a user in RevenueCat using Customer Attributes as well.
The below reserved key names can be used to optionally attach campaign data to a user. This data will then be sent through to other downstream analytics integrations and accessible via APIs and webhooks.

Key
$mediaSource
$campaign
$adGroup
$ad
$keyword
$creative

3. Send RevenueCat events into Adjust ​

After you've set up the Purchase SDK to send attribution data from Adjust to RevenueCat, you can "turn on" the integration and configure the event tokens from the RevenueCat dashboard.

  1. Navigate to your project in the RevenueCat dashboard and find the Integrations card in the left menu. Select + New

  1. Choose Adjust from the integrations menu
  2. Add your app tokens and event tokens for your iOS app and/or Android app
  3. Select whether you want sales reported as gross revenue (before app store commission), or after store commission and/or estimated taxes.

(Optional) S2S Adjust Authentication ​

If you've enabled S2S authentication on Adjust, fill out the OAuth token field in the RevenueCat Adjust settings page.

❗️Missing Authentication Token Error (401)

If you're getting an error that looks like this:

{"error":"Event request failed (missing authentication token)"}

Then you have Adjust S2S Authentication enabled and you need to follow this step to provide your authentication token to RevenueCat.

4. Testing the Adjust integration ​

You can test the Adjust integration end-to-end before going live. It's recommended that you test the integration is working properly for new users, and any existing users that may update their app to a new version.

Make a sandbox purchase with a new user ​

Simulate a new user installing your app, and go through your app flow to complete a sandbox purchase.

Check that the required device data is collected ​

Navigate the the Customer View for the test user that just made a purchase. Make sure that all of the required data from step 1 above is listed as attributes for the user.

Adjust testing console ​

Adjust provides a testing console to verify attribution data for sandbox users before moving to production. We recommend you follow their testing guide if you're submitting an app for the first time with Adjust attribution.

Adjust Testing Console Docs

Verifying sandbox events ​

RevenueCat will send Sandbox subscription events to Adjust's in sandbox mode. You can see Adjust sandbox events using the following filter in Adjust:

Use the "SANDBOX MODE" filter in Adjust to see sandbox events from RevenueCat

❗️Error codes

If you notice failed in events in your Adjust settings in the RevenueCat dashboard, take a look at Adjust's docs on what the error codes might mean.

Sending Revenue Data to Adjust ​

Adjust does not accept events with revenue less than 0.001, so free trial and refund events are sent to Adjust without a revenue property.

👍You've done it!

You should start seeing events from RevenueCat appear in Adjust!

Sample Event ​

Below is a sample event sent to Adjust. The type of the event (e.g. initial purchase) is defined by the event_token. Note that product identifiers, customer attributes, app user IDs, etc. don't get sent to Adjust.

{
"app_token": "abcdefg",
"event_token": "abcdefg",
"s2s": 1,
"created_at_unix": 1640995185,
"adid": "00000000000000000000000000000000",
"environment": "production",
"currency": "USD",
"revenue": 34.511,
"idfa": "00000000-0000-0000-0000-000000000000",
"idfv": "00000000-0000-0000-0000-000000000000",
"ip_address": "00.0.000.000"
}

哆哆女性网陕西 网站建设工作郑氏起名字STARS154悯农古诗木乃伊2电影天堂姓惠起什么名字的怎么优化网站结构某个产品的网络营销推广方案平面广告设计自学网站夏邑汽车客运总站h5设计网站女孩姓史怎么起名芬芳观后感平面设计教程周易超市取名开烧烤起什么名字大全网站设计论文模板生辰八字算命周易八字算命准名字生辰八字算命周公解梦梦见亲人离婚2021年周易预测吕怎么起名浚字起名好吗五行缺金起名男孩子营销推广示意图福锦珠宝土命起名手机算命网电影天堂777电影网胜天农庄淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化