Skip to Content

Kameleoon

Sync visitor data and events to Kameleoon for A/B testing, feature flagging, and AI-powered personalization. Zeotap supports sending visitor attribute maps and event data to power experiment targeting and personalization campaigns.

Prerequisites

  • A Kameleoon account with API access enabled
  • OAuth2 API credentials (client ID and client secret) with appropriate permissions
  • Your Kameleoon project site code

Authentication

Kameleoon uses OAuth2 Client Credentials authentication.

  1. In Kameleoon, navigate to your profile by clicking your avatar, then select My profile
  2. Go to the API credentials section
  3. Create or copy your Client ID and Client Secret
  4. Enter both values in Zeotap when configuring the destination

Zeotap automatically handles token refresh. Tokens are valid for 2 hours by default.

Configuration

FieldTypeRequiredDescription
Site CodeTextYesYour Kameleoon project site code. Found in your Kameleoon project settings. Example: f17c21u1ag
Object TypeSelectYesThe type of data to sync. Options: Visitor Data (Map) (store key-value attributes for visitors) or Events (send visitor events like conversions, page views, and custom data).
Data RegionSelectYesThe Kameleoon data region for your account. Options: Europe (EU) or United States (US). Must match where your Kameleoon project is hosted.

Target Settings

Target settings change based on the selected Object Type.

FieldTypeRequiredConditionDescription
Data TTL (Hours)TextNoObject Type = Visitor Data (Map)Time-to-live for visitor data in hours. Maximum 8784 (366 days). Default is 2208 hours (~92 days).

Supported Operations

Sync Modes

ModeSupported
UpsertYes
Insert
Update
Mirror

Audience Sync Modes

Kameleoon does not support audience membership sync modes. Segments in Kameleoon are condition-based (computed from visitor attributes and behavior), not list-based. Use Visitor Data sync to send attributes that Kameleoon segments can target.

Features

  • Field Mapping: Yes
  • Schema Introspection: No

Field Mapping

Destination FieldTypeRequiredDescription
visitor_codeStringYesThe unique visitor identifier or internal user ID used by Kameleoon for targeting. This becomes the key in the visitor data map.
emailStringNoVisitor email address
custom_dataJSONNoCustom attributes as a JSON object. All key-value pairs are stored as visitor data properties in Kameleoon.

How It Works

Visitor Data (Map)

  1. Zeotap extracts the visitor_code from each row to use as the map key
  2. All other mapped fields are sent as visitor attribute data
  3. Rows are batched into groups of up to 50 visitors per API request to stay within the 1 MB body size limit
  4. Data is sent to the Kameleoon Data API via POST /map/maps with the configured site code and TTL
  5. The API responds with HTTP 202 (accepted) for asynchronous processing
  6. Stored data can be used in Kameleoon segments to target visitors in experiments and personalizations

Events

  1. Zeotap extracts the visitor_code from each row
  2. Each row is sent as a visitor event via POST /visit/events with the visitor code as a query parameter
  3. Events must include an eventType field (e.g., CUSTOMDATA, CONVERSION, PAGE) and type-specific fields
  4. The API responds with HTTP 202 (accepted) for asynchronous processing

Rate Limits

Kameleoon enforces rate limits on the Data API:

  • GET requests: (500,000 + MUV) / 500 per minute per account
  • POST requests: (500,000 + MUV) / 50 per minute per account
  • Unauthenticated requests: 120 GET / 1,200 POST per minute per IP

Zeotap authenticates all requests and processes batches sequentially with automatic retry and exponential backoff for HTTP 429 responses.

Best Practices

  • Use Visitor Data for targeting attributes: Send user properties, segments, and scores that Kameleoon can use in experiment targeting conditions
  • Match your data region: Ensure the Data Region setting matches your Kameleoon project’s hosting region (EU or US) to avoid latency and data residency issues
  • Set appropriate TTL: The default TTL of 2208 hours (~92 days) works for most use cases. Reduce it for transient data like session attributes
  • Use consistent visitor codes: The visitor_code must match the visitor identifier used by Kameleoon’s SDK on your site for proper data association
  • Batch visitor data, not events: Visitor Data mode batches multiple visitors per request for efficiency. Events are sent per-visitor due to API constraints

Troubleshooting

Authentication failed

Verify your Client ID and Client Secret in Kameleoon under My profile > API credentials. Regenerate credentials if they have been revoked. Ensure the credentials have appropriate API permissions.

Site code not found

Ensure the Site Code matches your Kameleoon project. Find it in your Kameleoon project settings. The site code is a short alphanumeric string (e.g., f17c21u1ag).

Missing visitor_code

Every record must include a visitor_code value. Records without a visitor code are skipped. Verify your field mapping includes this required field.

Data not appearing in Kameleoon

The Data API processes requests asynchronously (HTTP 202). Data may take a few minutes to appear. Verify the data was accepted by checking for errors in the sync run details. Also confirm the visitor code matches an existing or future visitor in your Kameleoon project.

Wrong data region

If requests fail with connectivity errors, verify the Data Region setting matches your Kameleoon account’s hosting region. EU accounts use eu-data.kameleoon.io and North America (US) accounts use na-data.kameleoon.io.

Rate limit exceeded

Kameleoon returns HTTP 429 when rate limits are exceeded. Zeotap automatically retries with exponential backoff. If you consistently hit rate limits, consider reducing sync frequency or batch sizes. Authenticated requests have higher rate limits than unauthenticated ones.

Event type validation errors

When syncing events, each event must include a valid eventType field. Supported types include CUSTOMDATA, CONVERSION, PAGE, STATICDATA, and others. Refer to the Kameleoon Data API documentation for the required fields per event type.

Body size limit exceeded

The Data API enforces a 1 MB body size limit for POST /map/maps and a 3 MB limit for POST /visit/events. Zeotap batches visitor data into groups of 50 to stay within limits. If individual rows contain very large JSON objects, reduce the amount of data per visitor.

Last updated on