---
title: Prepare your Amplitude implementation for production
description: "Decide on your project structure, set up consent, and route browser events through a proxy before you release your Amplitude implementation."
product: general
lang: en
last_updated: 2026-10-21
token_estimate: 697
---
# Prepare your Amplitude implementation for production

> For AI agents: a documentation index is available at [/docs/llms.txt](/docs/llms.txt). Append `.md` to any page URL for markdown, or send `Accept: text/markdown`.

Before you release an Amplitude implementation to production, settle three decisions that are hard to change later: how many projects to send data to, how to handle user consent, and whether to route browser events through a proxy. Each section covers one decision and links to its full guide.

## Decide whether to use one project or one per platform

Cross-platform instrumentation sends events from every platform (web, iOS, Android) to one project. It makes sense when you expect frequent user crossover between platforms or want to analyze behavior across them, which requires you to collect user IDs. You get totals across all platforms in one view, and funnels or retention charts that span platforms.

Separate platform instrumentation sends each platform to its own project. It makes sense when your app acts as a standalone on each platform and crossover analysis isn't important.

For the trade-offs of each approach, go to [Cross-platform instrumentation vs. separate platform instrumentation](https://amplitude.com/docs/get-started/cross-platform-vs-separate-platform).

## Set up cookies and consent management

If your product needs user consent before it tracks data, configure the Browser SDK's cookies, storage, and opt-in or opt-out behavior before release. For Browser SDK 2 setup, including CNIL regulations for France, go to [Cookies and consent management](https://amplitude.com/docs/sdks/analytics/browser/cookies-and-consent-management).

## Reduce events lost to ad blockers with a proxy

Ad blockers in your users' browsers can drop Amplitude events. Amplitude recommends using a proxy server to avoid this. A proxy relays events through your own domain, such as `your.domain.com/amplitude`, before forwarding them to Amplitude.

After you deploy a proxy, point the Browser SDK at it with `serverUrl`. Set `enableRequestBodyCompression` to `true`, because the SDK enables compression automatically only for Amplitude's default endpoints:

```ts
amplitude.init(API_KEY, {
  serverUrl: "https://your-proxy.example.com/events",
  enableRequestBodyCompression: true,
});
```

Your proxy server must support gzip-compressed request bodies and handle the `Content-Encoding: gzip` header.

Remote configuration requests use a separate setting. To proxy them too, set `remoteConfig.serverUrl`:

```ts
amplitude.init(AMPLITUDE_API_KEY, {
  remoteConfig: {
    serverUrl: "https://your-proxy.example.com/config",
  },
});
```

To build the proxy service, go to [Use Domain Proxy to relay events](https://amplitude.com/docs/analytics/domain-proxy).

