Set up and configure Bing Ads Offline Conversions as a destination in RudderStack.

This guide will help you set up Bing Ads Offline Conversions as a destination in RudderStack. It also lists the configuration settings required to correctly send data from the supported sources to Bing Ads Offline Conversions.

Prerequisites

Before setting up Bing Ads Offline Conversions in your RudderStack dashboard, make sure to set up an OfflineConversion in your Microsoft Advertising dashboard.

Also, note the following while setting up your OfflineConversionGoal:

  • If you set CountType to All, then all offline conversions for a given MicrosoftClickId with different conversion times are added cumulatively.
  • If you set the CountType field to Unique (recommended), then only the first conversion that happens after an ad click is counted. Duplicate conversions with the same MicrosoftClickId and ConversionTime are ignored.

Before you sync conversion data

  1. Create an offline conversion goal in Microsoft Advertising. Go to Conversion Tracking > Conversion Goals > Create Conversion Goal, name the goal, select type Offline conversions, then set the scope, value, count, and conversion window. Also check Include in Conversions.
  2. Wait at least 2 hours after creating the goal before sending conversion data. It can take up to 6 hours for conversions to appear in Microsoft Advertising reporting.
  3. Set the goal’s conversion window to match your sales cycle. The default is 43200 minutes (30 days). The maximum is 129600 minutes (90 days) and the minimum is 1 minute. The Microsoft Advertising UI expresses this value in days.

Microsoft Advertising rejects conversions for clicks older than the goal’s conversion window. Widening the window later does not recover previously rejected conversions.

Two independent constraints apply to offline conversions:

ConstraintDetails
Hard API limitConversionTime must fall within the last 90 days, or the ApplyOfflineConversions operation fails. This limit applies regardless of your goal configuration.
Per-goal conversion windowMeasured from the click time and configurable from 1 minute up to 90 days.
If you backfill conversion history older than 90 days, the hard API limit rejects those records even when the goal window is set to the maximum. Increasing the conversion window alone does not fix that case — filter your source model to records within the valid window.

Setup

In your RudderStack dashboard, add a source. Then, from the list of destinations, select Bing Ads Offline Conversions.

Connection settings

SettingDescription
NameAssign a name to uniquely identify your destination in RudderStack.
Customer Account IDEnter your Bing Ads account ID.
Customer IDEnter your Bing Ads customer ID.

Next steps

FAQ

Where can I find my Bing Ads customer ID and customer account ID?

To get your Bing Ads customer ID and account ID, sign in to your Microsoft Advertising web app and click the Campaigns tab. The URL contains a cid key/value pair in the query string that contains the customer ID and an aid key/value pair that identifies your account ID.

A sample URL is shown:

https://ui.ads.microsoft.com/campaign/Campaigns.m?cid=<CUSTOMER_ID>
&aid=<ACCOUNT_ID>#/customer/<CUSTOMER_ID>/account/<ACCOUNT_ID>/campaign.

Why am I getting the “AADSTS650052” error when authenticating to Microsoft Advertising?

If you encounter the following error while authenticating to Microsoft Advertising:

Error Code: AADSTS650052
Error Message: "The app is trying to access a service that your organization lacks a service principal for."

This issue commonly occurs when you sign in using a work or school account that belongs to an Azure AD-managed domain. Organizational accounts may have restrictions that prevent RudderStack from completing the authentication.

To resolve this issue, consider using a personal Microsoft account, for example, emails having @outlook.com, @hotmail.com, or @live.com domains.

Why am I getting the “ClickIdDateTimeOutsideGoalConversionWindow” error?

Microsoft Advertising returns ClickIdDateTimeOutsideGoalConversionWindow when the click associated with a given msclkid falls outside the conversion window configured on your offline conversion goal.

This error is especially common on a new connection when the first sync backfills months of CRM history and most clicks predate any valid conversion window. That behavior is expected — filter the source model to records within the window before syncing.

CauseFix
Conversion window too short for the sales cycle (default 30 days vs. a longer lead-gen cycle)Increase the conversion window on the goal, up to 90 days.
Historical backfill on first sync — replaying months of CRM data where most clicks predate any valid windowExpected behavior. Filter the source model to records within the window.
Timestamp format or timezone mismatch in conversionTimeSend conversionTime in the ad account’s timezone and use a supported format.
conversionTime earlier than the click timeVerify the CRM is not recording a lead-creation date against a later-attached or reused msclkid.
Conversion window widened after the factPast conversions are not retroactively recovered.

Keep the two independent constraints in mind: the hard API limit requires ConversionTime within the last 90 days regardless of goal configuration, and the per-goal conversion window is measured from the click time (up to 90 days). Backfilling history older than 90 days fails the hard API limit even if you maximize the goal window — increasing the conversion window alone does not fix that case.


Questions? Let's figure it out together.

Join the RudderStack Slack community to connect with other users, customers, and the RudderStack team — or reach out for direct support.