Lotame
Datafly Signal delivers first-party behavior data to Lotame server-to-server using the Behavior Collection Pixel (BCP) on crwdcntrl.net — the same collection surface the browser Lightning Tag and Lotame’s mobile SDKs use, fired from your server instead of the page. This keeps audience building working when client-side tags are blocked, and keeps the collection call out of the browser.
Prerequisites
Before configuring Lotame in Signal you need an active Lotame (Spherical) account and your numeric Client ID.
Get your Lotame Client ID
- Sign in to the Lotame platform.
- Your Client ID is the numeric account identifier Lotame assigned to you. It is the value in the
c=segment of any of your existing BCP pixel URLs (for examplehttps://bcp.crwdcntrl.net/5/c=2587/...→ Client ID is2587). - If you are unsure, ask your Lotame Customer Success Manager to confirm it.
Define your behaviors
Lotame collection works by recording behaviors against a profile. Two kinds are supported:
- Predefined behavior IDs — created in the Lotame UI and referenced by their numeric ID.
- Rule-builder behaviors —
key=valueinterest/action signals (the Lightning TagruleBuilder) that Lotame maps to audiences via your data-collection rules.
Set up the behaviors and rules you want to populate in Lotame before enabling delivery, so incoming signals match real audience definitions.
Lotame’s BCP authenticates by Client ID alone — there is no API key or secret token. The Client ID scopes every behavior to your account, so double-check it before going live.
Configure in Signal
Configuration Fields
| Field | Required | Description |
|---|---|---|
client_id | Yes | Your numeric Lotame Client ID (the c= value in your BCP pixel URL). |
Management UI Setup
- Go to Integrations > Add Integration > Lotame.
- Choose the Default variant.
- Enter your
client_id. - Select consent categories — typically
advertisingormarketing. - Click Save.
API Endpoint
GET https://bcp.crwdcntrl.net/5/c={client_id}/<segment>/<segment>/...The BCP does not use a standard ?key=value&key=value query string. Parameters are slash-delimited key=value path segments appended after the /5/ servlet, and the request is an HTTP GET. For example, a page view for Panorama ID pano123 against client 2587:
GET https://bcp.crwdcntrl.net/5/c=2587/pid=pano123/e=web/pv=y/url=https%3A%2F%2Fexample.com%2F/rand=839201Signal builds this request for you from the field mappings in your blueprint.
Identity Signals
Lotame ties every behavior to a profile. Signal supplies identity in priority order:
| Signal | Segment | Description |
|---|---|---|
| Panorama ID | pid | Lotame’s first-party cross-domain identifier, resolved client-side by lt.js / sync.js and carried on the Signal event as vendor_ids.lotame_panorama_id. This is the strongest signal. |
| Device ID | uid + ua | For mobile / app traffic: the device advertising ID (uid) and its type (ua = GAID, IDFA, or SHA1). |
| IP address | X-Forwarded-For header | Forwarded so Lotame can resolve or extend identity server-side when no Panorama ID is present. |
| User-Agent | User-Agent header | Forwarded with every request for the same fallback resolution. |
The Panorama ID is a first-party identifier — no third-party cookie is required. When it is present on the event, match quality is highest. Without it, Lotame falls back to IP + User-Agent resolution, which is lower fidelity.
Event Mapping
Default preset
| Signal event | Lotame behavior | Segments sent |
|---|---|---|
page | Page view | pv=y, url, ref |
Product Viewed | Product-interest behavior | int (category), act (product ID) |
Product Added | Add-to-cart behavior | int (category), act (product ID) |
Order Completed | Purchase behavior | int (category), act (order ID) |
Signed Up | Registration behavior | int (method) |
Behaviors not listed are dropped (defaults.action: drop). To send predefined Lotame behavior IDs, add a mapping to the b segment in the integration’s Field Mappings; to send rule-builder behaviors, map to int, seg, act, or med.
Example: Product Viewed
Datafly.js call:
datafly.track("Product Viewed", {
product_id: "SKU-A",
category: "running-shoes"
});Lotame BCP request sent by Signal:
GET https://bcp.crwdcntrl.net/5/c=2587/pid=pano123/e=web/int=running-shoes/act=SKU-A/rand=559218(pid is supplied automatically from vendor_ids.lotame_panorama_id; IP and User-Agent are forwarded as headers.)
Testing
Trigger an event
Browse your site (or call datafly.track(...) directly) to generate a behavior, then check Signal’s Event Debugger to confirm the outbound BCP request was built with the correct c= and pid= segments.
Confirm in Lotame
- In the Lotame platform, open Audience / Behavior reporting.
- Look for the behavior you sent populating against the expected audience or rule.
- New profiles can take a short time to appear; validate with a known Panorama ID first.
The BCP returns a 200 with a 1x1 GIF on success and gives no machine-readable error body for collection calls. A 200 means the request was accepted, not that the behavior matched a rule — always verify in Lotame’s reporting that the behavior populated an audience.
Troubleshooting
| Problem | Solution |
|---|---|
| Behaviors not appearing in Lotame | Confirm the client_id is exactly your Lotame account ID. A wrong value silently writes to the wrong (or no) account with a 200 response. |
| Profiles not matching audiences | Ensure the behavior IDs (b) or rule-builder keys (int, seg, act) you send match behaviors/rules defined in the Lotame UI. Undefined behaviors are ignored. |
| Low match / missing profiles | Make sure the Panorama ID is reaching the event as vendor_ids.lotame_panorama_id. Without it, Lotame falls back to IP + User-Agent resolution. |
| Events dropped | Only events in the preset are forwarded (defaults.action: drop). Add a mapping for any additional event you want to collect. |