Data to AI™ / Gemini/Microsoft Ads

Query Microsoft Ads from Gemini CLI and Code Assist

Pull Microsoft Advertising keywords, ads and hourly results into the terminal or IDE, and let Gemini write the audit files, notebooks and pre-deploy checks your team keeps in the repo.

Better answers, fewer tokens.

  • Lower AI costs for the same work
  • More accurate, reliable answers
  • Read-only
  • Uses the Microsoft Ads data you already sync
  • SOC 2 Type II certified
Gemini CLI
Connected to Dataddo

Which campaigns lost the most impressions to budget last month, and were they profitable?

Gemini Answer · Microsoft Ads

Brand Search lost 38% of eligible impressions to budget while returning 6.2 per unit of spend, so it is the clearest case for more budget. Generic Search lost less and returned far less.

Campaign NameSpendImpression Lost To Budget PercentReturn On Ad Spend
Brand Search Campaign Performance Report $4,10038%6.2
Generic Search Campaign Performance Report $9,80021%1.9
Performance Max Campaign Performance Report $6,30012%3.4

All three columns come from one Campaign Performance Report with Monthly time aggregation, so the shares are not averaged from daily rows.

source
Microsoft Ads · as of Mon 06:40 UTC
covers
1-30 Sep 2026
Example answer · fictional account and figures
Microsoft Ads in Gemini

Questions Gemini can answer from your Microsoft Ads data

Microsoft Advertising (formerly Bing Ads) runs paid search campaigns across Bing and Microsoft's partner network. Dataddo extracts its reports, from account and campaign down to keyword, search term and ad, with the attributes and metrics you pick for each report type.

Quality Score audit as a CSV

Ask Gemini

Query the Keyword Performance Report for the last 30 days and write every Keyword with Quality Score below 5, its Expected Ctr, Landing Page Experience and Spend to audits/msads-quality.csv.

A technical marketer runs the same prompt every month from the terminal. The CSV is committed next to the previous ones, so the diff shows which keywords improved after landing page work.

Hour-of-day notebook

Ask Gemini

From the Microsoft Ads source with Hourly time aggregation, load Clicks, Conversions and Spend for the last four weeks into notebooks/dayparting.ipynb and plot them by hour.

An analyst in VS Code uses Gemini Code Assist in agent mode to build the notebook, then proposes an ad schedule based on the hours where conversions cost the least.

URL check before a site deploy

Ask Gemini

List each Final Url from the Ad Performance Report with Spend in the last 7 days and compare them with the routes in src/pages. Flag any URL we are about to remove.

A developer runs the check before merging a site restructure, so paid traffic is not sent to pages that will return 404 after the deploy.

Microsoft Ads datasets and the questions they answer in Gemini →
Pricing

Priced per seat.

Data to AI™ is priced per seat, like the AI assistants your team already uses, with ~25% off on annual billing. Need tailored contracts or volume pricing? Talk to us about Enterprise.

Data to AITM

Serve governed business data to Claude, ChatGPT and other AI tools over MCP.

$10.49/month

per seat

3 seats minimum

Enterprise

Flexibly deploy Dataddo in any cloud or hybrid environment.

Custom

We have a payment model that works for you

See all plans and features →
Setup

Connect Microsoft Ads to Gemini step by step

  1. 1
    Connect Gemini to Dataddo Add the Dataddo server to settings.json in Gemini CLI, restart it and run /mcp auth dataddo to sign in. Gemini Code Assist in VS Code reads the same file.
  2. 2
    Connect Microsoft Ads to Dataddo Sign in with your Microsoft Ads account in Dataddo and choose the datasets to sync, such as Campaign Performance Report and Keyword Performance Report.
  3. 3
    Choose what Gemini can see Select the Microsoft Ads data Gemini may query. Access is read-only, and data you don't select stays out of reach.
Gemini setup guide →
With vs. without

Microsoft Ads in Gemini, with and without Dataddo

Without Dataddo With Dataddo Outcome for you
Audits under version control Quality Score exports are downloaded to laptops and overwritten, so nobody can see how a keyword changed over months. Gemini CLI writes each audit from the Keyword Performance Report into the repository, where history and review come with git. Audit trail in the repo
Granular time data Hourly data has to be exported separately and reshaped before a notebook can plot it. A source with Hourly time aggregation is queried by field name from the IDE, so the notebook starts from clean columns. Dayparting without reshaping
Ads and code in one place Developers do not know which landing pages receive paid clicks until traffic drops after a release. Gemini checks Final Url values with recent Spend against the codebase before the deploy, in the same terminal session. No paid clicks to dead pages
Token consumption Gemini spends tokens exploring raw Microsoft Ads columns, sampling rows and retrying until it understands the data. Field definitions and relations are supplied up front, so the model skips the exploration and goes straight to the answer. Fewer tokens per answer
Answer quality Prone to wrong joins, invented fields and numbers that are hard to check. Answers grounded in defined fields. In the Dataddo benchmark, 78.5% of questions were answered correctly, against 65.5% with plain CSV files. Better answers
Datasets

Microsoft Ads datasets and the questions they answer in Gemini

The Microsoft Ads datasets marketing teams use most, with their real field names. Gemini queries them by name through the Dataddo semantic layer.

Dataset Metrics and attributes Ask Gemini
Campaign Performance Report
  • Campaign Name
  • Conversions
  • Campaign Type
  • Spend
  • Return On Ad Spend
  • + others
Which Campaign Name saw the biggest week-over-week drop in Conversions?
Keyword Performance Report
  • Keyword
  • Clicks
  • Cost Per Conversion
  • Delivered Match Type
  • Quality Score
  • + others
Which keywords collect many Clicks but have the highest Cost Per Conversion?
Search Query Performance Report
  • Clicks
  • Search Query
  • Keyword
  • Spend
  • Conversions
  • + others
Which new search terms appeared this week with more than 20 Clicks?
Ad Performance Report
  • Headline
  • Ad Title
  • Title Part 1
  • Ad Description
  • Ctr
  • + others
Which Headline wording do our best-converting ads share?
Budget Summary Report
  • Campaign Name
  • Daily Spend
  • Monthly Budget
  • Month To Date Spend
  • + others
Which Campaign Name had the biggest jump in Daily Spend this week?
Professional Demographics Audience Report
  • Industry Name
  • Conversions
  • Job Function Name
  • Company Name
  • Clicks
  • + others
How did Conversions by Industry Name change between the last two months?
Geographic Performance Report
  • Spend
  • Return On Ad Spend
  • Country
  • State
  • City
  • + others
Which countries improved their Return On Ad Spend most quarter over quarter?
See all Microsoft Ads datasets, metrics and attributes on the connector page →
Benchmark

More right answers. Half the confident mistakes.

We asked 43 pre-registered questions of three real datasets - Google Search Console, HubSpot deals and Google Ads - and delivered the same rows to the same model in four ways. Only the data layer changed.

78.5%

of questions answered correctly - the best of the four delivery methods tested

2x

fewer confidently wrong answers - 14.0% of runs against 24.0% and 26.3%

2.8x

more correct answers on messy CRM data - better on 8 questions, worse on none

Answered correctly All 43 questions - higher is better
Wrong, but stated as fact Share of runs - lower is better

Same model, prompts and rows in every condition; 759 graded runs, ground truth frozen before any run. On Google Search Console alone, documented CSV files did as well as Data to AI™ - the advantage comes from messier data such as HubSpot deals.

Read the benchmark →
FAQ

Microsoft Ads and Gemini: FAQ

How do I connect Microsoft Ads to Gemini?

Create a Microsoft Ads source in Dataddo and attach it to a Google Gemini destination or AI Model. In ~/.gemini/settings.json, add the dataddo server under mcpServers with httpUrl https://headless.dataddo.com/mcp-data, restart Gemini CLI and run /mcp auth dataddo to sign in. Gemini Code Assist in VS Code reads the same file.

Does this work in the Gemini app or Google Workspace?

The Dataddo setup covers Gemini CLI and Gemini Code Assist. Gemini CLI reads ~/.gemini/settings.json or a project's .gemini/settings.json, VS Code agent mode reads the same file, and IntelliJ uses the mcp.json of Gemini Code Assist.

Why should I use httpUrl and not url in settings.json?

With the url key Gemini CLI falls back to SSE, which Dataddo does not support. Use httpUrl with no headers or oauth block, restart Gemini CLI and run /mcp auth dataddo.

Will Gemini see Microsoft Ads flows I attached to Claude or ChatGPT?

Yes. Once signed in, Gemini reaches every flow or Context attached to an AI destination or AI Model in that Dataddo account, not only the Google Gemini ones. Keep flows Gemini should not query off AI destinations and AI Models in that account.

Can Gemini CLI run Microsoft Ads queries without asking me?

Gemini CLI asks you to confirm each Dataddo tool call, and you can choose Always allow per tool. Queries are read-only through the semantic layer; Dataddo never accepts SQL from the model.

What if my Gemini CLI session can no longer reach Dataddo?

Credentials are stored in ~/.gemini/mcp-oauth-tokens.json and renewed automatically. If the session expired or was revoked, run /mcp auth dataddo again and sign in with your Dataddo email and password.

Can I sign in on a remote server without a browser?

Gemini CLI opens the Dataddo sign-in page in a web browser, so it needs a browser on the same machine. Google and Microsoft SSO are not offered for this sign-in; use your Dataddo email and password, with MFA if prompted.

New from Dataddo · Data to AI™

Ask Claude or ChatGPT about your ads, analytics and CRM

“What did a new lead cost us last week, by paid channel?”

Connect 400+ sources once and get the answer right in your AI chat, without building a report. Better answers: your metrics are defined once, so the AI doesn't have to guess.