Lytics

Customer data platform specialising in real-time behavioural scoring, audience building, and first-party data activation.

Why route Lytics through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach Lytics even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • Client IP and user agent are carried in the payload. Both are taken from the original visitor request rather than your server, which is what Lytics needs to attribute the event to the right session.
  • One consent decision governs every destination. Lytics is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

Complete these steps in Lytics before configuring Signal.

Access your Lytics account

Log in to the Lytics dashboard at app.lytics.io. If you do not have an account, contact your Lytics representative.

Find your Account ID

Navigate to Account > Account Settings. Your Account ID is displayed on this page. Copy it for use in Signal configuration.

Create a data stream

Navigate to Data > Data Streams and click Create Stream. Give the stream a descriptive name (e.g. “Datafly Signal Events”). Select Server-side as the stream type. After creation, note the Stream Name exactly as displayed — this is case-sensitive.

Generate an API token

Go to Account > API Tokens and click Create Token. Provide a name (e.g. “Datafly Signal”) and assign data write permissions. Copy the token immediately.

Configuration

FieldTypeRequiredDescription
api_tokensecretYesYour Lytics API token with data-collection permission. Generated in Account > API Tokens. Sent as the access_token query parameter.
stream_namestringYesThe Lytics data stream name. Must match an existing stream (case-sensitive).
account_idstringNoNot used by the Data API; kept for reference.

Signal Setup

Quick Setup

  1. Navigate to Integrations in the sidebar.
  2. Open the Integration Library tab.
  3. Find Lytics under the CDP category.
  4. Click Install, and fill in the required fields with the credentials gathered above.
  5. Click Install Integration to create the integration with a ready-to-use default configuration.

API Setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/lytics/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Lytics",
    "variant": "default",
    "config": {
      "api_token": "xxxxxxxxxxxxxxxxxxxx",
      "stream_name": "datafly_events"
    },
    "delivery_mode": "server_side"
  }'

API endpoint

POST https://api.lytics.io/collect/json/{{stream_name}}

Allow egress to api.lytics.io from the network your delivery workers run on.

Event Mapping

Events are POSTed as a JSON array to /collect/json/{stream_name}. Each event is a flat object:

FieldValue
_eThe Signal event name (page_view for page views, identify for identify calls)
timestampISO 8601 event time
event_id, user_id, anonymous_idSignal identifiers
emailTrimmed and lower-cased
ip, user_agent, consent_marketingRequest context and the marketing consent state
url, path, title, referrerPage views
every documented propertyAt the root; currency upper-cased, items as an array

Presets: Retail, Default, Insurance, B2B / SaaS, Travel and Media & Streaming. Map the fields in your Lytics stream (Data > Data Streams) to profile fields.

Identity

FieldSourceNotes
user_iddatafly.identify() user IDCanonical authenticated identifier.
emailidentify traitsSent as it is (not hashed): Lytics stitches profiles on the address.
anonymous_idDatafly anonymous identifierBrowser-scoped identifier for pre-login behaviour.

_uid is Lytics’ own seerid cookie, which Signal does not read, so it is not sent.

Lytics events should be sent under the marketing category by default. Signal forwards CMP consent on every event so Lytics-driven audiences and campaigns can suppress non-consenting visitors.

Delivery

Events are delivered server-side from your Datafly Signal infrastructure directly to the Lytics API. No client-side scripts are loaded for this integration.

Verify it’s working

  1. After installing the integration, trigger a test event from your website or via the Signal event API.
  2. In Lytics, navigate to Data > Data Streams and select your stream. Check the stream activity to verify events are being ingested.
  3. Search for the test user under Users to verify profile creation and behavioural data.
  4. In Signal, check Live Events to confirm delivery with a 200 response status.

Troubleshooting

SymptomPossible CauseResolution
401 UnauthorizedInvalid API tokenRegenerate the token in Lytics Account > API Tokens and update the integration config
404 Not FoundIncorrect stream nameVerify the stream name exactly matches (case-sensitive) the stream in Lytics Data > Data Streams
400 Bad RequestMalformed payloadCheck the event in Signal’s Live Events and the stream’s field mapping
Events received but user not createdMissing identifiersInclude at least one identifier (email, user ID) in events for Lytics profile stitching
Data not appearing in audiencesAudience rules mismatchEnsure your audience segment rules match the event properties being sent

Visit Lytics documentation for full API reference and data stream configuration details.

See also