Home
Integrations Library
Media Buying Integrations
Microsoft Advertising (Bing) CAPI Integration
Microsoft Advertising (Bing) CAPI Integration

SERIES:

Microsoft Advertising (Bing) CAPI Integration

Send conversions from Everflow straight to Microsoft Advertising (formerly Bing Ads) server to server, with no browser tracking involved.

Overview: What This Integration Does

This integration sends your conversions straight from Everflow to Microsoft Advertising, server to server, using the Microsoft Conversions API. Nothing runs in the visitor’s browser, so ad blockers and browser cookie limits do not get in the way and your attribution stays more accurate.

Before You Begin

A Microsoft Advertising account with a UET tag already created
Your UET Tag ID
A Conversions API token, which you generate inside that UET tag’s settings in Microsoft Advertising
A Partner in Everflow to hold the integration, the same way the other media buying integrations work
No sign-in redirect
Some Microsoft integrations make you sign in and approve access. This one does not. You paste your tag ID and token, and that is the whole connection.

Connecting Microsoft Advertising

There are two places to do this, depending on who you are.

As a Partner

Go to
Company Settings → Integrations
Find
Microsoft Advertising
and open it
Give the configuration a name you will recognise later. You can have more than one
Enter your UET Tag ID
Enter your Conversions API Token. It is masked, like a password
Save

Once you have one saved, opening the tile shows your list of configurations. You can edit, delete, or add another from there.

As a Network

Go to
Integrations → Media Buying
Open
Microsoft Advertising
and click
View
You see every partner configuration: the partner name, the tag name and the UET tag ID
Use the three-dot menu to remove one
The API token is never shown back to you, including to the Network. If you lose it, generate a new one in Microsoft Advertising and paste it in again.

Setting Up The Postback

The connection above only stores your credentials. The postback is what actually sends a conversion.

Go to
Partners → Postbacks
and add a postback, or open an existing one
Choose the Microsoft Advertising delivery method
Pick the partner, then pick the tag by name. That is how Everflow knows which credentials to use
Fill in the fields below

Required Fields

Field
Sends as
What it is
Event Type
eventType
Either pageLoad or custom. Page load events suit destination goals and remarketing. Custom events are for a specific action, like a purchase.
Event ID
eventId
Free text, and macros work.
Event Source URL
eventSourceUrl
The page the event happened on. Free text, and macros work. Only required when Event Type is pageLoad, and the field asks for it only then.

Optional: Consent And Timing

Field
Sends as
What it is
Ad Storage Consent
adStorageConsent
Whether the visitor agreed to their data being used for advertising. See the section below, this one matters.
Event Time
eventTime
When the event happened.

Optional: Who The Person Is

These help Microsoft match a conversion to a real person. Fill in what you have, leave the rest blank.

Field
Sends as
What it is
Anonymous ID
anonymousId
Your own anonymous identifier.
External ID
externalId
A first-party ID of your own, like a customer ID.
Email
em
Everflow hashes this before sending. Microsoft never receives the plain address.
Phone
ph
Everflow hashes this before sending too.
MSCLKID
msclkid
Microsoft’s click ID, which Microsoft lists as its strongly preferred way to match a conversion to an ad click. Everflow cannot create it, so you carry it in on a sub parameter and map it here, for example {sub1}. See Populating The MSCLKID Field below.
Client User Agent
clientUserAgent
The visitor’s browser user agent.
IP Address
clientIpAddress
IPv4 or IPv6.
iOS Advertising Identifier
idfa
Apple’s advertising ID.
Android Google Advertising ID
gaid
Google’s advertising ID on Android.

Optional: What Happened

Field
Sends as
What it is
Event Category
eventCategory
Category for a custom goal.
Event Label
eventLabel
Label for a custom goal.
Search Term
searchTerm
The search the visitor ran, if there was one.
Transaction ID
transactionId
A unique ID for a one-off event, such as a purchase.
Event Value
eventValue
A number. The value of a custom goal.
Value
value
A number. The revenue on the conversion.
Currency
currency
A three letter code, such as USD or EUR.
Every field above takes a macro, so you can map values straight off the conversion instead of typing them. See Your Guide To Parameters & Macros.

Populating The MSCLKID Field

MSCLKID is the field people ask about most, because you cannot type a value into it. Microsoft creates the click ID when someone clicks your ad, and with auto-tagging turned on it adds it to your landing page URL as msclkid. Everflow cannot generate it. Your job is to carry that value into the Everflow click, then point the postback at it.

Microsoft lists msclkid as strongly preferred, not required, and it has to be the real click ID. A placeholder word such as MSCLICKID, or the literal text {msclkid}, gives Microsoft nothing to match on.

Recommended: Carry The Click ID In A Sub Parameter

Map Microsoft’s click ID into one of your sub parameters, then set the MSCLKID field to that sub’s macro. This shows up in Everflow reporting and needs no change to a standard click script. For how parameters are captured on the click and returned in a postback, see Your Guide To Parameters & Macros. The examples use sub1. Any sub you are not already using for something else works the same way.

What To Add In Microsoft Advertising

Add this to your Final URL Suffix, ideally at the account level so every campaign inherits it. Do not start the suffix with ? or &, Microsoft adds the right one. If your suffix already holds other parameters, put & between them, for example src=bing&sub1={msclkid}.

Microsoft Advertising Final URL Suffix
sub1={msclkid}

If you already manage a tracking template instead, add the same pair to the end of it, after {lpurl} and your Everflow parameters. Either way, when someone clicks the ad, your landing page URL ends up looking like this, with Microsoft’s real click ID in place of the placeholder:

Example Landing Page URL After A Click
https://www.example.com/landing/?oid=1&affid=2&sub1=MICROSOFT_CLICK_ID

If your Final URL already has a hard-coded placeholder like sub1=MSCLICKID, delete it from the Final URL and let the suffix or template add sub1={msclkid} instead, so Microsoft fills in the real value on every click and sub1 is not sent twice. Then work through the steps below.

Step By Step

1
Map The Click ID In Microsoft Advertising
Add sub1={msclkid} to your Final URL Suffix (or tracking template) as shown above. Make sure auto-tagging is on in your Microsoft Advertising account settings. Templates and suffixes set at a lower level, like campaign or ad, override the account level one.
2
Check Your Click Script Reads That Sub
Your Everflow click script on the landing page has to pick the sub up from the URL. The standard script already reads sub1 to sub5, so most setups need no change. If yours is customised, confirm it includes sub1: EF.urlParameter('sub1').
3
Set The MSCLKID Field On The Postback
Open the postback in Partners → Postbacks with the Microsoft Advertising delivery method. Under User Data, click +, choose MSCLKID as the Data Field and enter {sub1} as the Value, or the macro for whichever sub you used. No hashing needed. Everflow hashes the fields that need it automatically.
4
Test One Click
Click one of your ads, then find that click in Everflow reporting. Sub1 should hold a long ID, not the word MSCLICKID and not {msclkid}. If it is empty, check the suffix or template first, then the click script.

One thing to check before you pick a sub, if the same page also runs Everflow organic tracking.

Using organic tracking on the same page?
Organic tracking fills sub1 to sub5 with its own values, and sets sub1 to the ad platform it detects, such as Microsoft. If your landing page uses the organic script, talk to Support before choosing which sub carries the click ID.

Alternative: A Free-Form msclkid Parameter

Everflow picks up fbclid, gclid and ttclid from the URL automatically. It does not do that for msclkid yet, and that support is being worked on. Until then, the only way to capture msclkid under its own name is to add it to the parameters block of your click script, as below, and then set the MSCLKID field to {msclkid}.

Everflow Click Script, Inside EF.click
parameters: {
  'msclkid': EF.urlParameter('msclkid')
}

We do not recommend this today. It needs a click script change, and free-form parameters do not appear in standard Everflow reporting, so you cannot easily check that the click ID arrived. Use the sub parameter setup above unless you have a specific reason not to.

If You Have European Traffic, Fill In Consent

Ad Storage Consent is not optional in practice
If a visitor declines on your cookie banner and you send their conversion to Microsoft anyway with no consent value, you are sharing their data for ad targeting when they said no. Under GDPR and the Digital Markets Act that is a real problem, not a technical detail. If any of your traffic comes from Europe, map Ad Storage Consent so the visitor’s answer travels with the conversion. If your traffic is all outside Europe, leaving it blank generally will not break anything today.

What This Version Does Not Send

The payload is kept deliberately lean, the same way the Meta integration is. Everflow does not send line items, item IDs, or hotel data. If you need those, this integration is not the way to get them across.

This integration covers the Conversions API only. Microsoft’s other tools, like Ad Insight and Campaign Management, are not part of it.

FAQ

Quick answers to the setup questions we hear most.

Q
What do I put in the MSCLKID field?
▼

The macro for the sub parameter that carries Microsoft’s click ID, for example {sub1}, once you have added sub1={msclkid} to your Microsoft Advertising Final URL Suffix or tracking template.

Q
Can I type msclkid, MSCLICKID or {msclkid} into the field?
▼

No. Plain text such as msclkid or MSCLICKID is sent to Microsoft as is, so it never matches a click. {msclkid} only works if your click script captures msclkid as a free-form parameter, as described above, and it does not appear in standard reporting. A sub parameter is the reliable choice.

Q
Do I need to hash the click ID?
▼

No. The click ID is not personal data, so send it as is. Everflow automatically hashes the fields that need it, such as email and phone number.

Still stuck? Your Customer Success Manager can check a test click with you.

Explore Related Content
Other server-to-server media buying integrations:

→ Meta (Facebook & Instagram) Integration, the closest equivalent and the model this one follows.

→ TikTok Integration For Core Platform.

→ Snapchat Integration.

Next in This Series