Attribution
Credited to the ad that brought this person — Meta, the spring sale, creative B — and added to that campaign's return on spend.
Track every install. Understand every user. Reach them at the right moment. All powered by an AI agent that works like an entire growth team.
Works with the platforms and providers you already use
One SDK
Attribution says where a user came from, analytics what they do, engagement what reaches them next. Here all three read the same event, recorded once — with nothing exported or synced in between.
Credited to the ad that brought this person — Meta, the spring sale, creative B — and added to that campaign's return on spend.
The last step of the checkout funnel, a point on the revenue line and a row in retention.
It ends the cart-recovery journey for that person, so nobody is reminded about something they already bought.
Each of these is good at its own job. The difference is how many of them it takes, and how many SDKs ship in your app.
| Capability | Mobile measurement partnere.g. AppsFlyer, Adjust, Branch | Product analyticse.g. Mixpanel, Amplitude | Customer engagemente.g. Braze, OneSignal, Customer.io | treebarsOne SDK |
|---|---|---|---|---|
| Install attribution | Built in | Not offered | Not offered | Built in |
| Ad spend and return on spend | Built in | Not offered | Not offered | Built in |
| Deep links and smart links | Built in | Not offered | PartlyInside messages | Built in |
| Funnels · retention · paths · SQL | PartlyCohort reports | Built in | PartlyCampaign stats | Built in |
| Journeys on live events | Not offered | PartlySynced to another tool | Built in | Built in |
| Push · email · SMS · WhatsApp · in-app | Not offered | Not offered | Built in | Built in |
| An AI agent that drafts the work | Not offered | PartlyAnswers questions | PartlyWrites copy | Built inIris |
| One SDK, one bill | NoPlus two more tools | NoPlus two more tools | NoPlus two more tools | Yes |
01Attribution
Every install is credited once, from evidence — the Play Install Referrer, Apple's AdServices, the click a link carried. Spend arrives beside it, revenue follows the user, and return on ad spend is a column rather than a spreadsheet.
One short link sends an iPhone to the App Store, an Android phone to Google Play and a laptop to your site — and opens the right screen on first launch.
Purchases and sign-ups are sent back to Meta, Google Ads and TikTok, so their bidding learns from what happened in your app. Audiences sync to them too.
02Analytics
Send events and Insights draws the numbers that matter before anybody configures anything. Funnels, retention, paths, breakdowns and SQL are there afterwards, for whoever wants them.
03Engagement
Someone adds to cart and leaves. Thirty minutes later they get a push; if they still have not bought a day after that, an email. Anyone who buys along the way drops out, so nobody is reminded about something they already paid for.
Frequency caps and quiet hours are checked at the moment of sending, for every campaign and every journey.
Each delivery has one record, so a step that runs again finds the first send and stops.
Email, SMS, WhatsApp and voice reach people by address and number, whether or not they ever installed the app.
Channels
Every channel says what it is addressed by — which is what decides who a campaign can reach. Push runs on your own keys, email sends from your domain through the provider you already pay.
a deviceAPNs, FCM and web push, on your keys
a deviceModals, banners, surveys, an inbox
an addressResend, SendGrid, Postmark, SES or SMTP
a numberTwilio or Vonage
a numberMeta Cloud API
a numberTwilio
a URLAny endpoint you run
basketThe message wears your customer-facing brand, not ours.
Iris · AI agent
Iris reads the same installs, events and revenue you do. She notices what changed, says what it is costing, and drafts the report, the audience or the campaign — for a person to check and apply.
Integrations
Revenue from your billing provider, users from your CDP, results back to your CRM, and a copy of every event exported to your warehouse. Nothing is locked in.
Spend in, conversions and audiences out.
Every payment, wherever it is taken.
Users and events you already collect.
What a person did, where your team works.
A copy of every event, hourly, for your own warehouse.
Where alerts land and work gets filed.
How it works
No schema to design and no dashboards to build first. Install the SDK — or let the code agent open the pull request — send the events you already have, and the product takes it from there.
Read the quickstartWeb, iOS, Android or React Native, plus an API for your server — one event contract across all of them.
$ npm install @treebars/web-sdk treebars.init({ writeKey: 'pk_live_…' }) treebars.track('add_to_cart')
Each install is tied to the link or ad that brought it, and Insights builds a board from the event names it sees.
Journeys start on those same events, and Iris drafts what to do about what changed.
Platform
Where events go, who a person is, what is never collected, what happens when they leave, and how you take a copy out.
Charts, live views and event triggers read them as they arrive, not after a nightly job.
An anonymous visitor who signs in becomes one person. A shared device is a handover, never a merge.
One request removes a person everywhere they appear, and campaign totals stay honest afterwards.
Channel credentials are encrypted, never shown back, and used only to send your messages.
No advertising IDs, attribution only after your app asks, and an opt-out in every SDK.
Every event exported each hour to your own bucket or BigQuery, for your team to query alongside everything else.
Yes. Installs are credited from the Play Install Referrer, Apple AdServices, SKAdNetwork and the links you share; spend comes in from Meta, Google Ads, TikTok and Apple Ads; and conversions go back to each network. While you switch, run both, compare the install numbers side by side, and bring your history.
Yes. Treebars runs beside it. Send the same events to both while you compare, import your Mixpanel or Amplitude history, and turn off whichever one you stop opening.
No. Install the SDK and send events. Insights builds a board from the event names it sees, and funnels, retention and paths are a few clicks from there. SQL is there for whoever wants it.
Web, iOS, Android and React Native, plus an API for events your server sends. Every SDK sends the same event contract, so one report reads every platform together.
The project's own data, through read tools she names as she uses them. She drafts reports, audiences and campaigns; a person checks and applies them. Bring your own model key if you prefer.
Yes. Email sends through Resend, SendGrid, Postmark, Amazon SES or your own SMTP server; SMS through Twilio or Vonage; WhatsApp through Meta's Cloud API. Push uses your APNs and FCM keys.
No. Attribution works from referrers, AdServices and link clicks, never the IDFA or GAID, and install attribution is off until your app asks for consent.
One request removes that person everywhere: their identity, aliases, device history, push tokens and deliveries, and the copies sent to your exports and ad networks. A campaign that reached 1,240 people still says 1,240.
Nothing. Signing up takes an email address, and there is no credit card to enter.Nothing. Treebars is in private beta, so it starts with joining the waitlist — an email address, no credit card. We email you when you’re in.
Free to start, with no credit card. Web, iOS, Android and React Native.
Treebars is in private beta. Join the waitlist and we’ll email you the day you’re in. Web, iOS, Android and React Native.