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

  1. Go to invest.xandr.com (or contact your Microsoft Advertising representative) to set up an advertiser account.
  2. Once provisioned, log in to the Xandr console.
  3. Note your Member ID from the account settings — this is your seat ID on the Xandr platform.

Create a Conversion Pixel

  1. In the Xandr console, navigate to Advertisers and select your advertiser.
  2. Note the Advertiser ID from the advertiser settings page.
  3. Go to Pixels > Universal Pixel and click Create Pixel.
  4. Name your pixel (e.g. “Website Conversions”) and configure the conversion type.
  5. 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:

IdentifierWhere to Find
Member IDAccount Settings (top-right menu) — your platform seat ID.
Advertiser IDAdvertiser Settings page — the ID for your specific advertiser.
Pixel IDPixels > Universal Pixel — the ID of your conversion pixel.

Generate an API Key

  1. In the Xandr console, go to Settings > API.
  2. Click Generate API Key for server-side event delivery.
  3. 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

FieldRequiredDescription
member_idYesYour Xandr member (seat) ID. Found in the Xandr console under Account Settings.
advertiser_idYesYour Xandr advertiser ID. Found in the Xandr console under Advertiser Settings.
pixel_idYesYour Xandr conversion pixel ID. Found in the Xandr console under Pixels > Universal Pixel.
api_keyYesAPI 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 IDParameterDescription
xandr_uidxandr_uidXandr user ID. Used for user-level attribution.

This is captured automatically by the Datafly.js collector and forwarded with conversion events.

Management UI Setup

  1. Go to Integrations > Add Integration > Xandr.
  2. Enter your member_id, advertiser_id, pixel_id, and api_key.
  3. Select consent categories (typically advertising).
  4. 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 EventXandr EventNotes
page (page view)Pixel fire (page view)Sent for every page view
Order CompletedConversion (purchase)Requires value, currency, order_id
Product AddedConversion (add to cart)Includes product details
Checkout StartedConversion (checkout)Includes value, currency
Product ViewedConversion (view item)Includes content identifiers
Lead GeneratedConversion (lead)Lead form submission
Signed UpConversion (sign-up)User registration
Custom eventsCustom conversionSent as custom conversion type

Testing Your Integration

Step 1: Send a Test Event

  1. Trigger a page view or conversion event on your website.
  2. Check the Signal event debugger in the Management UI to confirm the event was captured and delivered.

Step 2: Verify in Xandr Console

  1. In the Xandr console, go to Pixels > your pixel.
  2. Check the pixel activity log to see received events.
  3. Events should appear within a few minutes.

Step 3: Validate Campaign Attribution

  1. Create a test campaign and associate it with your conversion pixel.
  2. Confirm that conversion events are attributed correctly in campaign reports.
  3. Verify that xandr_uid click IDs are being matched for user-level attribution.

Troubleshooting

ProblemSolution
Events not appearing in XandrVerify all four configuration fields (member_id, advertiser_id, pixel_id, api_key) are correct.
Authentication errorsRegenerate the API key in the Xandr console under Settings > API and update Signal.
Invalid member_id errorConfirm your Member ID matches your Xandr seat. Check Account Settings in the Xandr console.
Missing xandr_uidThis is captured from URL parameters when users click Xandr ads. It will not be present for organic traffic.
Pixel not firing conversionsEnsure the pixel is associated with an active campaign and the conversion type is configured correctly.
Events delayedXandr 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.