Skip to main content
Microsoft Ads · BYO Setup Guide

Set up your own
Microsoft Entra ID app.

This guide walks you through registering a Microsoft Entra ID (formerly Azure AD) app that VelaReach will use to connect your Microsoft Advertising / Bing Ads accounts — on your own credentials, your own rate limits, your own branded consent screen. Takes about 12 minutes spread across two portals (Azure and ads.microsoft.com).

~12 min setup Hard Two portals
Microsoft Ads is split across two portals. Your OAuth credentials (client ID + client secret) come from portal.azure.com, but your developer token — a separate header Microsoft requires on every API call — comes from ads.microsoft.com. You need both. Most first-time setups stall because customers find the Azure credentials and forget the developer token, or vice versa. We’ll grab them in order below.
Use BYO if
  • · You already have Azure portal access through a Microsoft 365 tenant
  • · Your security team requires app registrations to live in your own tenant
  • · You operate at high volume and want your own developer token rate limit
  • · You want your tenant’s branding on the OAuth consent screen
Stick with shared app if
  • · You don’t have access to portal.azure.com
  • · You can’t locate your Microsoft Advertising developer token
  • · You want to be connected in the next 60 seconds
  • · You’re not comfortable navigating Microsoft Entra ID

Before you begin

1

Open Microsoft Entra ID and start a new app registration

Sign in to portal.azure.com. In the global search bar at the top type Microsoft Entra ID and click the result. In the left sidebar pick App registrations+ New registration.

https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade
Microsoft Entra ID · App registrations
App registrations
+ New registration Endpoints
All applications · Owned applications · Deleted
No apps yet — click + New registration to create one

App registrations is where every Entra ID OAuth client lives.

Don’t see Microsoft Entra ID? Your Azure account may need to be associated with a tenant first — click your name in the top right of portal.azure.com and pick Switch directory.
2

Fill out the registration form

Name the app VelaReach-Ads. For Supported account types you must pick the multitenant + personal accounts option — otherwise OAuth will fail when users from outside your tenant try to consent.

https://portal.azure.com/#blade/.../RegisterAppBlade
Register an application
↑ The display name shown to users on the consent screen.
↑ This is the multitenant option. Pick this one or OAuth will reject external users.
↑ Type must be Web (not SPA, not Public client).
Register

Multitenant + personal accounts is the only setting that works for Microsoft Ads BYO.

https://api.velareach.metaminds.store/api/v1/integrations/microsoft/callback
Pick the right Redirect URI type. Microsoft offers Web, SPA, and Public client — you must pick Web. SPA disables client secrets entirely and Public client breaks the offline access flow.
3

Copy the Application (client) ID

After clicking Register, Azure drops you on the app’s overview page. Look for Application (client) ID — it’s a GUID that looks like a1b2c3d4-e5f6-7890-abcd-ef1234567890. Click the copy icon next to it and stash it somewhere safe.

You’ll also see Directory (tenant) ID on the same page — you don’t need this for VelaReach because you registered the app as multitenant, but it can be useful if you later need to debug.

4

Create a client secret

In the left sidebar of your new app pick Certificates & secretsClient secrets tab → + New client secret. Describe it as VelaReach BYO and pick the longest expiry available (24 months at the time of writing). Click Add.

https://portal.azure.com/#blade/.../Credentials
VelaReach-Ads · Certificates & secrets
↑ This is NOT the value you need. Look at the next field.
↑ THIS is the secret value. Copy it now — Azure will hide it forever after you leave the page.

Azure displays the secret value exactly once. Miss this and you’ll have to delete and recreate the secret.

🔒
Copy the Value column, not the Secret ID. The two fields look identical and customers regularly grab the wrong one. The Value is the long alphanumeric string with tildes and dots; the Secret ID is a GUID. Once you navigate away from this page, the Value is hidden behind dots and cannot be recovered — you’ll have to delete the secret and create a new one.
5

Add API permissions for Microsoft Advertising

Still inside your app, click API permissions+ Add a permission. In the picker that opens, select the APIs my organisation uses tab and search for Microsoft Advertising (it may also appear as Bing Ads). Click it.

Choose Delegated permissions and check the boxes for msads.manage and offline_access. Click Add permissions, then back on the permissions list click Grant admin consent for [your tenant]. The status column should flip from a yellow warning triangle to a green check.

The offline_access scope is what gives VelaReach a refresh token. Without it, your access token will expire after 90 days and reconnections will be required.
6

Confirm the Redirect URI is saved

Click Authentication in the left sidebar of your app. Confirm that the redirect URL from Step 2 is listed under Web platform configurations. If it’s missing, click + Add a platformWeb and paste it now:

https://api.velareach.metaminds.store/api/v1/integrations/microsoft/callback

Also verify these checkboxes under Implicit grant and hybrid flows:

  • · Access tokens (used for implicit flows)unchecked
  • · ID tokens (used for implicit and hybrid flows)unchecked
  • · Allow public client flowsNo
7

Grab your Microsoft Advertising developer token

Open ads.microsoft.com in another tab and sign in. In the top navigation click ToolsDeveloper settings. The developer token is a 16-character alphanumeric string near the top of the page.

If the page says “Request token”, click that button — basic access is granted automatically and instantly for most accounts. Production scale tokens go through a manual review which takes 1–3 business days, but the basic token is enough for VelaReach.

The developer token is per-user, not per-app. Anyone in your team who has access to ads.microsoft.com can issue one. Microsoft requires it on every API call as the DeveloperToken header — VelaReach attaches this for you automatically.
8

Paste credentials into VelaReach and reconnect

Back in VelaReach: SettingsIntegrations → click the Microsoft Ads card → ManageAdvanced tab → Set up BYO app. The wizard asks for three fields:

  • · Application (client) ID — from Step 3 (Azure GUID)
  • · Client secret value — from Step 4 (the alphanumeric Value column)
  • · Developer token — from Step 7 (16-char string from ads.microsoft.com)

Click Test & save. VelaReach calls Microsoft’s token endpoint and the Bing Ads Customer Management service to verify all three credentials work together. Green check marks mean you’re ready to click Reconnect now →.

The OAuth consent screen will display your tenant name and your VelaReach-Ads app rather than VelaReach’s shared one. After consent, if you have access to multiple Microsoft Ads customer IDs, VelaReach will let you pick which ones to track from the account picker.

After reconnecting, what changes?

✓ Preserved
  • · All historical Microsoft Ads spend, impressions, and conversions
  • · Your customer ID picker selection
  • · Bid strategies, automation rules, and shared budget configs
  • · Scheduled reports and Slack notifications
  • · Every keyword theme, audience, and saved view
✦ Changed
  • · OAuth tokens revoked and re-minted via your Entra ID app
  • · Card shows violet BYO app pill
  • · Consent screen on future reconnects shows your tenant + app name
  • · Audit log records who switched and when
  • · API calls count against your developer token’s rate limit pool

Troubleshooting

“AADSTS700016: Application not found in the directory”
You picked the wrong Supported account types in Step 2. The default is single-tenant, which means only users from your own Entra tenant can sign in. Open your app in Azure → Authentication, scroll to Supported account types, and switch it to Accounts in any organisational directory + personal Microsoft accounts. Save, then re-run Test in VelaReach.
“invalid_grant: AADSTS50126” or “client secret expired”
Your client secret has expired. Azure secrets max out at 24 months and there’s no renewal — you must delete the old one and create a new one. Open your app in Azure → Certificates & secrets, delete the expired entry, then click + New client secret following Step 4. Paste the new Value into VelaReach’s BYO wizard and click Test & save again. We’ll send you a renewal reminder 14 days before expiry going forward.
“User account not found” after OAuth consent
The Microsoft account you signed in with during the consent flow doesn’t have access to any Microsoft Advertising customer IDs. This usually means you signed in with a personal Microsoft account when your ads live under a work account (or vice versa). Click Reconnect, sign out of all Microsoft accounts, then sign in with the exact email you use at ads.microsoft.com. If the issue persists, ask your Microsoft Ads account admin to add you as a user under ToolsAccount access.
I can’t find the developer token on ads.microsoft.com
It’s buried. Sign in to ads.microsoft.com, click the gear icon in the top right, then SetupDeveloper settings. If Developer settings doesn’t appear under Setup, your user role may be too restricted — ask an account admin to promote you to Standard user or higher. Once you reach the page, click Request token for basic access (instant) or apply for production access (1–3 day review).
How do I pick which customer ID to use if I have multiple?
Microsoft separates the OAuth identity (which user you are) from the Customer ID (which ad account you’re acting on). After reconnecting, VelaReach’s account picker displays every customer ID your user has access to. Tick the ones you want VelaReach to report on and click Save — you can change the selection later from ManageAccount picker. VelaReach attaches the right CustomerId header on each API call automatically.
💬
Stuck? Email us — we’ll hop on a 15-min screen share.
Microsoft BYO is the trickiest of our integrations because it spans two portals (Azure + ads.microsoft.com). We don’t expect every customer to nail it the first try. Email support@velareach.com with your workspace name, the Azure tenant you’re working in, and the exact error and we’ll pair with you.