Counted
The app was opened in the last 30 days. Push permission is not required. That device is a monthly active user. The first 1,000 on an app are free.
A free thousand on every app.
Xulo sends mobile push and shows a native card inside the app. A new app starts free. With no users there is nothing to bill. The first 1,000 monthly active users on that app stay at $0.
Xulo
Your order is on the way
It arrives today, before 20:00.
Arriving today
Open the card to follow the delivery.
Track order1,000
Free monthly active users on every app
$6
Each additional 1,000, on that app
30 days
An open in the last 30 days. Permission is not required
$0
In-app impressions are not billed
“A new app starts at nothing. The first thousand is its own. An app nobody has opened never reaches the bill.”
Alptekin Can
Reload Apps
A new app
$0
No monthly active users, nothing to bill.
On that app
1,000
Each app counts its own MAU.
A monthly active user is a device that opened the app in the last 30 days.
The app was opened in the last 30 days. Push permission is not required. That device is a monthly active user. The first 1,000 on an app are free.
01
A push carries a title, a body, an image, and a link. The image is attached on the device. If the image fails, the text still arrives.
The link can be a screen inside the app or an https address. The app opens the screen when it knows the address. Otherwise an https link opens in the system browser.
Xulo
Your order is on the way
It arrives today, before 20:00.
02
The card is drawn natively in the app. It can show when the app comes to the foreground, or when the app calls a name you set. An open is coming to the foreground. Coming forward again while the app is already open does not count. The call is one line of code at the moment you choose, and it is not stored. It is not a web page, and it is not sent through Apple’s push service.
The panel and an agent fill the same record: image, title, body, one button, link, colors, a close button, and a place. The place is the center, full screen, a top banner, or a bottom banner. One card shows at a time. If several match, the newest published card wins.
03
Push and the card use the same audience. A segment, a tag, an external id, the install id, or a test device.
Xulo keeps an install id that survives a token refresh. A reinstall gets a new one. An external id is optional and does not replace the install id. Tags are text keys and values the app writes.
A purchase is an amount, a currency, and an order id. The person page keeps the lifetime total for each currency. A segment picks the last 24 hours, the last 7 days, the last 30 days, or all time: people who spent, people who did not, or people who spent at least an amount in one currency.
04
The panel keeps the day a device first opened, and the later days it opened. For devices first seen on one day, it shows the share that opened the app again on day 1, on day 7, and on day 30.
That is the last-open record, kept by day. It is not how long a session lasted. It is not a custom event. It is not a list of people.
A person approves
05
The panel, or an agent in Continue, Cursor, OpenAI, Windsurf, Anthropic, Google Antigravity, or Cline, can draft the message, the audience, and the card. The draft includes a count of who would receive it. One address works in all of them.
A person says yes. Then it sends. Writing the draft does not send it. The bill stays per app even when one key can draft for every app in the account.
A person approves
Blocks are not prorated. 1,600 monthly active users on one app is the $6 block. 3,200 is three paid thousands. The same 1,600, split as 800 and 800, stays at $0.
$0
800 MAU
1 app$6
1,600 MAU
1 app$18
3,200 MAU
1 app$0
800 and 800
2 appshttps://mcp.xulo.io/mcp. The organization key is the Bearer token.
It sends mobile push and shows a native in-app card. One SDK, one audience. The bill is per app, on monthly active users. The first 1,000 monthly active users on an app are free. After that, $6 per 1,000. Apps do not pool.
A new app starts free. With no users there is nothing to bill. The first 1,000 monthly active users on that app stay at $0. The meter starts when a device opens the app. Push permission is not required.
A monthly active user is a device that opened the app in the last 30 days. Push permission is not required. A device that refused push and still opened the app is counted. A device that stays closed for 30 days drops off, even if push is allowed.
No. Each app has its own 1,000 free monthly active users, then its own $6 blocks. A second app at 400 is $0 even when the first app is already paid.
No. Impressions, dismisses, and button clicks are not a separate charge. A device that opened the app in the last 30 days is already a monthly active user, including when it refused push.
Add https://mcp.xulo.io/mcp and send the organization key as a Bearer token. The agent can create the app, store the Apple key, draft a push or an in-app card, and import an audience. A person says yes. Then it sends. Writing the draft does not send it.
Sign in and add an app. A new app starts free. With no users there is nothing to bill. The first 1,000 monthly active users on that app stay at $0.
Yes. A push or the card can be two variants, split evenly. A person still approves. Xulo does not pick a winner.