Data to AI™ / Gemini/DV360

DV360 data in Gemini CLI and Gemini Code Assist

Feed DV360 pacing, reach and YouTube metrics into scripts, notebooks and test logs from the terminal or VS Code, with Gemini asking before each data lookup.

Better answers, fewer tokens.

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

Which insertion orders showed ads to the same people too often this month?

Gemini Answer · Google Display & Video 360

Retargeting Display reached 96,500 people at 11.2 impressions each, more than three times the 3.4 of Brand Awareness CTV. Prospecting Video sat in between at 7.8.

Insertion OrderUnique Reach: Total ReachUnique Reach: Average Impression Frequency
Retargeting Display DV360 Reach/Frequency by Insertion Order 96,50011.2
Prospecting Video DV360 Reach/Frequency by Insertion Order 412,0007.8
Brand Awareness CTV DV360 Reach/Frequency by Insertion Order 1,180,0003.4

Reach is shown per insertion order and not added up, because DV360 reach is estimated.

source
Google Display & Video 360 · as of Mon 06:40 UTC
covers
1-30 Sep 2026
Example answer · fictional account and figures
DV360 in Gemini

Questions Gemini can answer from your DV360 data

Dataddo extracts Google Display & Video 360 (DV360) reporting through a flexible report dataset with report types such as Standard and YouTube, plus a reach and frequency dataset and an advertiser list.

Dry run for a pacing alert script

Ask Gemini

Pull Line Item Pacing Percentage, Budget Segment Budget and Total Media Cost (Advertiser Currency) per Line Item for yesterday and feed them to scripts/pacing_alert.py with --dry-run.

A programmatic engineer tunes alert thresholds in Gemini CLI against real values from yesterday, sees exactly which line items would have triggered, and only then schedules the job.

Frequency per block in a notebook

Ask Gemini

From DV360 Reach/Frequency by Insertion Order, write Insertion Order, Block Start Date, Unique Reach: Total Reach and Unique Reach: Average Impression Frequency to notebooks/data/frequency.csv.

A media analyst works in VS Code with Gemini Code Assist in agent mode and charts frequency for each insertion order block by block, so no cumulative estimate is stitched onto another.

Log of a YouTube asset swap

Ask Gemini

Compare TrueView: View Rate and Earned Views per YouTube Ad Group for the 7 days before and after 12 Oct, when the new cut-downs went live, and append the table to docs/youtube-tests.md.

A video operations lead keeps the team's creative test log in git, so every asset change has its before and after numbers next to the brief that requested it.

DV360 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 DV360 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 DV360 to Dataddo Sign in with your DV360 account in Dataddo and choose the datasets to sync, such as Google Display & Video 360: delivery and cost and Google Display & Video 360: breakdowns.
  3. 3
    Choose what Gemini can see Select the DV360 data Gemini may query. Access is read-only, and data you don't select stays out of reach.
Gemini setup guide →
With vs. without

DV360 in Gemini, with and without Dataddo

Without Dataddo With Dataddo Outcome for you
Scripts that need pacing numbers A script waits for a scheduled offline report, parses the downloaded file, and breaks the day someone renames or reorders the report's columns. Gemini CLI requests Line Item Pacing Percentage by its field name from the scheduled DV360 source, and you confirm each tool call or pick Always allow for that tool. Field names instead of file parsing
Reach rows in a notebook A notebook loads a year of reach and draws one continuous line, quietly joining estimates that DV360 calculated for separate periods. Each row Dataddo returns carries Block Start Date and an Exceeds 93 Days flag, so Gemini writes one CSV row per block and the chart keeps periods apart. Periods plotted separately
What Gemini is able to see Nobody on the team can say which reporting data a terminal assistant on someone's laptop has been reading. After sign-in, Gemini reaches every flow or Context attached to an AI destination or AI Model in the Dataddo account, so the attached list is the scope to review. Scope you can audit
Credentials on a laptop Reporting credentials get pasted into .env files, where one careless commit can publish them. Gemini CLI keeps the Dataddo sign-in in ~/.gemini/mcp-oauth-tokens.json and renews it automatically, outside the repository you are working in. No secrets in the repo
Token consumption Gemini spends tokens exploring raw DV360 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

DV360 datasets and the questions they answer in Gemini

The DV360 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
Google Display & Video 360: delivery and cost
  • Impressions
  • Clicks
  • Total Media Cost (Advertiser Currency)
  • Click Rate (CTR)
  • Total Conversions
  • + others
Write daily Impressions, Clicks and Total Media Cost (Advertiser Currency) for the last 60 days to a CSV for my spend forecast notebook.
Google Display & Video 360: breakdowns
  • Campaign
  • Insertion Order
  • Advertiser
  • Line Item
  • Creative
  • + others
Which Insertion Order names do not match the naming pattern defined in our campaign config file?
Budget and quality
  • Line Item Pacing Percentage
  • Budget Segment Budget
  • Active View: % Viewable Impressions
  • Invalid Impressions
  • + others
Can you export Line Item Pacing Percentage for every line item as JSON so the pacing alert script can test its thresholds?
YouTube report
  • TrueView: Views
  • YouTube Ad Group
  • TrueView: View Rate
  • Earned Views
  • + others
Did TrueView: Views per YouTube Ad Group drop in the days after we swapped the video assets?
DV360 Reach/Frequency by Insertion Order
  • Insertion Order
  • Unique Reach: Total Reach
  • Block Start Date
  • Unique Reach: Average Impression Frequency
  • + others
List Unique Reach: Total Reach per Insertion Order and Block Start Date so my notebook can plot each block on its own.
DV360 Advertisers
  • Display Name
  • Advertiser ID
  • Partner ID
  • Entity Status
  • Currency Code
  • + others
Which Display Name values changed since the advertiser list we last committed, so the dashboard labels can be updated?
See all DV360 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

DV360 and Gemini: FAQ

How do I connect DV360 to Gemini?

Create a Google Display & Video 360 source in Dataddo with a Standard report and DV360 Reach/Frequency by Insertion Order, attach it to a Google Gemini destination or AI Model, and add Dataddo to ~/.gemini/settings.json with httpUrl https://headless.dataddo.com/mcp-data. Restart Gemini CLI and run /mcp auth dataddo to sign in.

Does Display & Video 360 send data to Gemini by itself?

This setup relies on no built-in link between Google products. Dataddo runs your DV360 reports on a schedule, and Gemini CLI reads them through the Dataddo Data Access MCP server.

Why must the DV360 server entry use httpUrl?

With the url key, Gemini CLI falls back to SSE, which Dataddo does not support. Add the server under mcpServers with httpUrl and no headers or oauth block, then restart and check /mcp.

Can I keep the DV360 connection to a single repository?

Yes. Put the server in .gemini/settings.json inside that project instead of ~/.gemini/settings.json, which applies to all projects. Gemini Code Assist in VS Code reads the same file.

Should a script total DV360 reach over a whole year?

No. DV360 reach comes in blocks of up to 93 days, and those blocks cannot be summed. Ask Gemini for one row per Block Start Date and keep each insertion order separate.

Which sign-in does Gemini CLI use for DV360 data?

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

Can Gemini edit line items or budgets in DV360?

No. Access is read-only over the data Dataddo extracted, through a semantic layer: Gemini asks for entities and fields by name, Dataddo never accepts SQL from it, and nothing goes back to DV360.

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.