# Integration

> Current Froomle documentation · [View canonical page](https://docs.froomle.com/froomle-doc-main/v2/guide/integration/index.html)

Complete the shared setup first, then choose how your application will track events and request recommendations.

<a id="_shared_setup"></a>

## Shared setup

[Item synchronization](https://docs.froomle.com/froomle-doc-main/v2/guide/topics/item-sync-options.html) is required for every Froomle integration. The frontend SDK does not synchronize your catalog. Keep item IDs and item types consistent across the catalog, events, and recommendation requests.

<a id="_integration_methods"></a>

## Integration methods

| Method | Use when | Start here |
| --- | --- | --- |
| Frontend SDK | You integrate a browser application using declarative markup, JavaScript/TypeScript, or React. | [Frontend SDK](https://docs.froomle.com/froomle-doc-main/v2/js_lib/jslib.html#Overview) |
| Manual / custom integration | You integrate through direct APIs, a backend or mobile application, Pub/Sub, SFTP, or custom browser code. | [Manual / Custom Integration](https://docs.froomle.com/froomle-doc-main/v2/guide/manual-integration/index.html) |

> **NOTE:**
> 
> Choose a method independently for event tracking and recommendation delivery when needed. For example, a backend can fetch recommendations while the frontend SDK tracks browser events, provided the rendered placement preserves the required attribution metadata.

> **IMPORTANT:**
> 
> These method choices apply only to event tracking and recommendation delivery. They do not replace item synchronization: every combination requires a synchronized catalog.
