# Quick start

| | |
| :--- | :--- |
| Document | GA Promo — Integration Guide |
| Version | 1.6.2 |
| Date | 2026-10-08 |
| Audience | engineers of a client who put GA Promo widgets on their site and connect their players, games and gameplay to GA Promo |
| Pack | [`README.md`](/docs/gamification/pack/README.md) lists every file |

**What this pack covers.** You run a casino site for one or more brands registered in GA. GA Promo
runs the promotions of those brands: collection events, quests, prize drops and the rewards they
pay. Your site connects to it in six places:

| What | Direction | Chapter |
| :--- | :--- | :--- |
| widgets on your pages | GA Promo → your page | §2 |
| who the player is | your backend → GA Promo, once per page | §3 |
| game launch from a widget | SDK, or widget → your page | §4 |
| gameplay and account events | your systems → GA Promo | §5–§7 |
| game catalogues | both ways | §8 |
| rewards to credit | GA Promo → your backend | §9 |

**Games that run through GA's aggregation** (launched through GA, §4.3): GA itself delivers every
real-money `bet`, `win`, `refund` and `settled` of their rounds to GA Promo, under the player of
your token (§3.2), and these rounds are not checked against any catalogue. For these games you send
**no round events and no catalogue** (§8.1). Do not send them anyway: your connection is checked
against the catalogue you sent, so a GA game there is set aside as `skipped/game_unknown`, and on a
connection without a catalogue it is counted a second time. You still send, over §5–§7:

- account events (`deposit`, `withdrawal`, `login`, §5.4) — GA does not see them — when your
  promotions use them;
- the rounds of games that do not run through GA, and their catalogue (§8.1).

A client whose games all run through GA and whose promotions use no account events sends no events
at all. Everything else applies to every client.

## Quick Start

1. Fill in [`GA_Promo_Onboarding_Form_v1.yaml`](/docs/gamification/pack/GA_Promo_Onboarding_Form_v1.yaml) once and send
   it to your GA integration manager. The form holds no credentials.
2. We send you, once and over the channel your manager names (§10.2): your `client_id` for the
   widgets, your `source_id` and signing secret per event transport, and the secret we sign reward
   notifications with. Player tokens (§3.2) are signed with the operator signing key you already
   hold for Operator API v2 — nothing new to receive for that one.
3. Put the resolver script and the widget placeholders on your pages (§2) and add the token
   endpoint that tells the widgets who the player is (§3).
4. Decide how a game click is launched (§4); `sdk-modal` lets the SDK launch the game.
5. Games not on GA: send their catalogue (§8.1) and their events (§5–§7). Games on GA: nothing
   to send; GA delivers their rounds. Account events (`deposit`, `withdrawal`, `login`): send them
   in either case when your promotions use them.
6. Build the endpoint that credits rewards (§9).
7. Test in the sandbox and reconcile the counts with us (§10.3); then we switch production on.

| Environment | Widgets (resolver) | API, events and catalogue |
| :--- | :--- | :--- |
| Sandbox | `https://ludarium.rexplay.site` | `https://api.rexplay.site` |
| Production | `https://ludarium.game-alligator.com` | `https://api.game-alligator.com` |
