Microsoft Advertising (Bing) CAPI Integration

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

Overview

This integration sends your conversions straight from MediaScalers 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

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 s 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

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.
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

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 verflow 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.
XXXX XXXX XXXX

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.

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.

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

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.

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.

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.

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.