> ## Documentation Index
> Fetch the complete documentation index at: https://docs.salesive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Development stores and analytics

> Test your app on free development stores with sample data, and see installs, churn, ratings and revenue for each app.

## Development stores

A development store is a free store you make from **Apps > Developer console > Development
stores** to test your apps. You need at least one app in the Developer console first.

* Any store type you can open: e-commerce, restaurant, business (and digital, where it is
  switched on for your account).
* Optional sample data: one category with three or four items of the right kind for the
  store type (products, menu items, services or books), three customers and four orders
  with mixed statuses spread over the past two weeks. Every sample record has a name that
  starts with "Sample", sample customers use `@example.com` addresses that never receive
  mail, and sample orders carry `metadata.sample: true`.
* Up to 5 open development stores per developer. Closing one removes every app installed on
  it and takes its storefront offline for good.

What a development store never does:

| | |
| - | - |
| Pay Salesive | It is on a plan that never expires and cannot buy or change a plan. |
| Pay out | Withdrawals are refused. It can never be an app's payout store. |
| Take online payments | Its storefront offers no payment gateway, and checkout refuses one with `403` (`DEVELOPMENT_STORE`). Bank transfer details and other offline options still work, so you can test the whole order flow. |
| Count | It is left out of platform statistics and does not use up your one real store. |
| Get indexed | `robots.txt` disallows everything, the sitemap is empty, every page is `noindex`. |

### Installing apps on a development store

Every install on a development store is a **test install**:

* Charges and subscriptions your app asks for are test charges. The merchant approves them
  and nothing is paid (see [Payments](https://docs.salesive.com/apps/payments.md)).
* Test installs never count toward install numbers, analytics or the marketplace, and they
  cannot rate apps.
* When you install **your own app** on your development store, the install uses your
  app's **Development** settings (dev launch URL, redirect URIs and webhook URL). You can
  still ask for production. Another developer's app on your development store runs on
  its production settings, so you are never sent to someone else's localhost.

### API

All three need your dashboard session (they are not app token endpoints).

```http theme={null}
GET    /api/v1/apps/developer/stores
POST   /api/v1/apps/developer/stores    { "name": "Acme test", "type": "ecommerce", "sampleData": true }
DELETE /api/v1/apps/developer/stores/:id
```

Errors: `403 NOT_A_DEVELOPER` (no app yet), `409 DEV_STORE_LIMIT` (close one first).

## App analytics

The **Analytics** card in the app editor shows, for the last 7, 30 or 90 days (UTC days):

* **Active installs** now and at the start of the period, installs and uninstalls per day,
  and a daily line of active installs.
* **Churn**: uninstalls in the period divided by the installs that were active at its start.
* **Ratings**: the average, the count and the 1 to 5 star distribution, plus ratings left in
  the period.
* **Revenue** per currency from paid charges: gross, the Salesive fee and your net. Amounts
  are never converted between currencies.

Test installs (development stores and review testers) and test charges are never counted.

```http theme={null}
GET /api/v1/apps/developer/:appId/analytics?days=30
```

`days` is 1 to 365 (default 30). The response has `series` (one row per day with
`installs`, `uninstalls`, `active`), `totals` (`installs`, `uninstalls`, `netGrowth`,
`activeNow`, `activeAtStart`, `churnRate`), `ratings` and `revenue` (one entry per currency
with `gross`, `platformFee`, `net`, `charges` and a daily `series`).

Install history before analytics shipped is rebuilt from each install's first install date
and last uninstall date, so older reinstalls are not visible. Active installs per day are
exact for any period.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.