Xandr
Datafly Signal delivers conversion events to Xandr (Microsoft Invest) server-to-server for programmatic campaign attribution, audience targeting, and cross-channel performance measurement across the Xandr marketplace.
Prerequisites
Before configuring Xandr in Signal, you need a Xandr (Microsoft Invest) account with a conversion pixel created and API credentials generated.
Create a Xandr (Microsoft Invest) Account
- Go to invest.xandr.com (or contact your Microsoft Advertising representative) to set up an advertiser account.
- Once provisioned, log in to the Xandr console.
- Note your Member ID from the account settings — this is your seat ID on the Xandr platform.
Create a Conversion Pixel
- In the Xandr console, navigate to Advertisers and select your advertiser.
- Note the Advertiser ID from the advertiser settings page.
- Go to Pixels > Universal Pixel and click Create Pixel.
- Name your pixel (e.g. “Website Conversions”) and configure the conversion type.
- Note the Pixel ID — you will need this for Signal configuration.
You do not need to install the Xandr pixel JavaScript snippet on your website. Signal replaces the client-side tag with server-side delivery.
Get Member ID, Advertiser ID, and Pixel ID
Collect the following identifiers from the Xandr console:
| Identifier | Where to Find |
|---|---|
| Member ID | Account Settings (top-right menu) — your platform seat ID. |
| Advertiser ID | Advertiser Settings page — the ID for your specific advertiser. |
| Pixel ID | Pixels > Universal Pixel — the ID of your conversion pixel. |
Generate an API Key
- In the Xandr console, go to Settings > API.
- Click Generate API Key for server-side event delivery.
- Copy the API Key immediately — it may only be shown once.
Store the API key securely. If you lose it, you will need to generate a new one.
Configure in Signal
Now that you have your Member ID, Advertiser ID, Pixel ID, and API key, configure the integration in Signal.
Configuration Fields
| Field | Required | Description |
|---|---|---|
member_id | Yes | Your Xandr member (seat) ID. Found in the Xandr console under Account Settings. |
advertiser_id | Yes | Your Xandr advertiser ID. Found in the Xandr console under Advertiser Settings. |
pixel_id | Yes | Your Xandr conversion pixel ID. Found in the Xandr console under Pixels > Universal Pixel. |
api_key | Yes | API key for authenticating server-side event delivery. Generated in the Xandr console under Settings > API. |
Vendor Click IDs
Signal automatically captures the following Xandr click identifiers from URL parameters:
| Vendor ID | Parameter | Description |
|---|---|---|
xandr_uid | xandr_uid | Xandr user ID. Used for user-level attribution. |
This is captured automatically by the Datafly.js collector and forwarded with conversion events.
Management UI Setup
- Go to Integrations > Add Integration > Xandr.
- Enter your
member_id,advertiser_id,pixel_id, andapi_key. - Select consent categories (typically
advertising). - Click Save.
Management API Setup
curl -X POST http://localhost:8084/v1/admin/integrations \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"source_id": "src_abc123",
"vendor": "xandr",
"name": "Xandr Production",
"enabled": true,
"config": {
"member_id": "12345",
"advertiser_id": "xandr-adv-67890",
"pixel_id": "xandr-px-11223",
"api_key": "ak_xandr_abc123..."
},
"consent_categories": ["advertising"]
}'Event Mapping
| Datafly Event | Xandr Event | Notes |
|---|---|---|
page (page view) | Pixel fire (page view) | Sent for every page view |
Order Completed | Conversion (purchase) | Requires value, currency, order_id |
Product Added | Conversion (add to cart) | Includes product details |
Checkout Started | Conversion (checkout) | Includes value, currency |
Product Viewed | Conversion (view item) | Includes content identifiers |
Lead Generated | Conversion (lead) | Lead form submission |
Signed Up | Conversion (sign-up) | User registration |
| Custom events | Custom conversion | Sent as custom conversion type |
Testing Your Integration
Step 1: Send a Test Event
- Trigger a page view or conversion event on your website.
- Check the Signal event debugger in the Management UI to confirm the event was captured and delivered.
Step 2: Verify in Xandr Console
- In the Xandr console, go to Pixels > your pixel.
- Check the pixel activity log to see received events.
- Events should appear within a few minutes.
Step 3: Validate Campaign Attribution
- Create a test campaign and associate it with your conversion pixel.
- Confirm that conversion events are attributed correctly in campaign reports.
- Verify that
xandr_uidclick IDs are being matched for user-level attribution.
Troubleshooting
| Problem | Solution |
|---|---|
| Events not appearing in Xandr | Verify all four configuration fields (member_id, advertiser_id, pixel_id, api_key) are correct. |
| Authentication errors | Regenerate the API key in the Xandr console under Settings > API and update Signal. |
Invalid member_id error | Confirm your Member ID matches your Xandr seat. Check Account Settings in the Xandr console. |
Missing xandr_uid | This is captured from URL parameters when users click Xandr ads. It will not be present for organic traffic. |
| Pixel not firing conversions | Ensure the pixel is associated with an active campaign and the conversion type is configured correctly. |
| Events delayed | Xandr may take up to 15 minutes to display server-side events. Allow time before investigating further. |
Visit Xandr documentation for full API documentation and credential setup instructions.