What teams do with it
- See subscription revenue by campaign next to your ad spend in Tenjin.
- Report renewals as purchases, so lifetime revenue per install keeps growing.
- Report gross revenue, or net of store commission with Tenjin's
postcutflag.
Integration · Attribution and ads measurement
RevenueDot sends paid steps to Tenjin's server-to-server purchase endpoint with the price in US dollars, and other steps to its event endpoint as rc_trial_started_event, rc_cancellation_event and so on. Events match on $tenjinId, the installation ID from the Tenjin SDK. Tenjin takes no negative revenue, so refunds go as events without money.
What teams do with it
postcut flag.What RevenueDot sends
POST https://track.tenjin.com/v0/purchase with product_id, price (USD), quantity 1 and currency. postcut is set to 1 when you report revenue after store commission and taxes.POST https://track.tenjin.com/v0/event with event set to rc_trial_started_event, rc_trial_cancelled_event, rc_cancellation_event, rc_expiration_event, rc_billing_issue_event, rc_product_change_event or rc_test_event. Refunds go here, without money.$tenjinId as analytics_installation_id (required), $idfa or $gpsAdId as advertising_id (zeros when unknown), $idfv as developer_device_id, and the app user ID as customer_user_id unless it is anonymous.$ip as ip_address, $attConsentStatus as tracking_status (0 to 3) with limit_ad_tracking, the OS and app version from the customer's last request, and country.Setup
In Tenjin, open Configure → Apps, pick each app and copy its SDK key.
Set $tenjinId to the Tenjin SDK's analytics installation ID and call collectDeviceIdentifiers().
In RevenueDot, open Integrations → Tenjin.
Fill in iOS SDK key and Android SDK key. Amazon purchases use the Android key. Set Sales reporting.
Click Connect Tenjin, then send a test event for a customer that has $tenjinId and check the delivery log.
[redacted], the partner's answer, the HTTP status, the time taken and the number of attempts.{"code":200} when it accepts an event. Any other code, or an error, is logged as a rejection.FAQ
Paste your Tenjin SDK keys under Integrations → Tenjin in RevenueDot, set $tenjinId and call collectDeviceIdentifiers() in your app, and click Connect Tenjin. Paid steps go to Tenjin's purchase endpoint and the rest go as events.
Tenjin takes no negative revenue. RevenueDot sends a refund as an event named rc_cancellation_event without money instead of a negative purchase.
No. Tenjin keeps no sandbox data apart from production, so RevenueDot skips sandbox events and the delivery log says why.
Yes. RevenueDot sends Tenjin's server-to-server events for the same attribution purpose as RevenueCat's attribution integrations (checked October 2026), from an open source backend you can self-host.
Sources: Tenjin · Tenjin: server-to-server setup · RevenueCat: attribution integrations. Tenjin is a trademark of its owner, used to describe compatibility. RevenueDot is not affiliated with or endorsed by it.
Get started
Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue. Integrations are included on every plan.
Already have an account? Sign in · Prefer your own servers? Self-host free