Skip to main content

Bing UET Conversions API

Server Source code Package Beta

Server-side event delivery to Microsoft Advertising's Universal Event Tracking (UET) Conversions API for enhanced conversion tracking in Microsoft Ads campaigns, bypassing browser limitations and improving match quality.

Where this fits

Bing UET CAPI is a server destination in the walkerOS flow:

Sends events server-side to Microsoft's UET Conversions API using raw HTTP (no SDK). Identity fields (`em`, `ph`) are SHA-256 hashed before sending with Microsoft-specific email normalization. Events include a stable `eventId` for deduplication with the UET JavaScript tag.

Installation

Loading...
Loading...

Configuration

This destination uses the standard destination config wrapper (consent, data, env, id, ...). For the shared fields see destination configuration. Package-specific fields live under config.settings and are listed below.

Settings

PropertyTypeDescriptionMore
accessToken*stringLong-lived Bing UET CAPI access token from Microsoft Advertising
tagId*stringMicrosoft Advertising UET tag ID
urlstringCustom Bing UET CAPI base URL (default https://capi.uet.microsoft.com/v1/)
doNotHashArray<string>User data fields to skip hashing
user_dataRecord<string, string>Mapping for user data fields
dataProviderstringIdentifier of the data source (default "walkerOS")
continueOnValidationErrorbooleanWhen true, Microsoft continues to ingest events despite validation errors
* Required fields

Mapping

Per-event rules under config.mapping. For the standard rule fields (consent, condition, data, batch, name, policy) see mapping.

PropertyTypeDescriptionMore
eventType'pageLoad' | 'custom'Override event type: "pageLoad" for page views, "custom" (default) otherwise

Examples

add to cart

Event
Mapping
Out

lead

Event
Mapping
Out

page view

Event
Mapping
Out

purchase

Event
Mapping
Out

Event types

Bing UET distinguishes two event types. Set the type via mapping.settings.eventType:

eventTypeWhen to use
pageLoadPage view events (no eventName required)
customAll other conversion events (default, requires eventName)
Loading...

customData structure

Event properties must be nested under customData. Common fields include value, currency, transactionId, items, itemIds, pageType, eventCategory, eventLabel, eventValue, searchTerm.

Hashing

Only em (email) and ph (phone) are SHA-256 hashed before sending. All other identity fields pass through as-is: anonymousId, externalId, msclkid, clientIpAddress, clientUserAgent, idfa, gaid.

Microsoft-specific email normalization

Before hashing, emails are normalized to match Microsoft's canonicalization:

  1. Trim whitespace
  2. Lowercase the entire address
  3. Remove dots from the user portion (a.b.c@example.com becomes abc@example.com)
  4. Strip +alias suffix (user+promo@example.com becomes user@example.com)

Pass raw values and hashing is handled for you. If a value is already hashed or you want to skip hashing for a specific field, use doNotHash:

Loading...

Deduplication

Each event is sent with eventId set to the walkerOS event id. If you also run the UET JavaScript tag in the browser, Microsoft deduplicates server and browser events that share the same eventId and eventName, so conversions are not double-counted.

All events sent to this destination include adStorageConsent: "G" (granted). Gate the destination via walkerOS consent rules at the collector level rather than sending denied events.

💡 Need implementation support?
elbwalker offers hands-on support: setup review, measurement planning, destination mapping, and live troubleshooting. Book a 2-hour session (€399)