---
name: kixo-sdk-integration
description: Integrate or audit the Kixo SDK in a customer web, iOS, or Android app.
---

# Kixo SDK Integration

Use this skill when asked to integrate, audit, or fix Kixo SDK usage.

## Workflow

1. Inspect the app stack and choose exactly one SDK.
2. Configure Kixo once at app startup.
3. Add only product-specific custom events.
4. Add identity only after a stable product user ID exists.
5. Call reset on logout.
6. Verify one auto event and one custom event.

## SDKs

- Web: `https://cdn.kixo.io/kixo.min.js` (script embed; npm `@kixo.io/web`)
- iOS: Swift Package `https://github.com/kixoio/kixo-ios-sdk`, `import Kixo`
- Android: Maven repo `https://raw.githubusercontent.com/kixoio/kixo-android-sdk/main/repo`, dependency `io.kixo:kixo-android-sdk:0.1.18`, `import io.kixo.sdk.Kixo`

Kixo currently ships Web, iOS, and Android SDKs. Do not invent React Native,
Flutter, or server-side SDK packages. If a requested stack wraps one of the
supported platforms, integrate the underlying Web, iOS, or Android SDK and say
which one you selected.

## Framer

Framer uses the Web SDK through site-wide Custom Code. Do not suggest npm, an
Embed, or a visual Code Component for the standard installation.

1. In Framer, open Project Settings, then Custom Code.
2. Add a script named `Kixo Analytics` in the site-wide head.
3. Choose `Once`; Kixo handles Framer client-side page changes after startup.
4. Paste the project-specific module snippet:

```html
<script type="module" src="https://cdn.kixo.io/kixo.min.js?project_id=YOUR_PROJECT_ID&api_key=YOUR_API_KEY"></script>
```

5. Publish and test the live site. Framer does not run Project Settings custom
   code in its editor preview.
6. Visit a couple of published pages, then verify the first event under Kixo
   Apps & setup.

Add the snippet once. Duplicate site-wide snippets produce duplicate events.

## Rules

- Kixo is B2B. Customer team members use Kixo; end users do not log in to Kixo.
- Use placeholders unless the user provides Project ID and SDK API key values.
- Do not commit real keys.
- The Project ID and SDK API key are public client credentials by design. Do
  not describe the SDK API key as a secret; dashboard/admin/read keys remain
  private and must never be placed in client code.
- Never use dashboard/admin tokens in client apps.
- Do not duplicate auto-tracked events.
- Use snake_case, object_verb, past-tense event names.
- Put context in properties.
- Include stable entity IDs.
- Prefer standard events: `signup`, `activation`, `purchase`, `subscribe_start`, `subscribe_renewed`, `trial_start`, `cancel`, `upgrade`, `downgrade`, `share`, `invite`.
- Do not expose internal Kixo dev-routing flags.
