All resources

· 24 min read

How to Analyze Meta and Google Ads Data With ChatGPT and Turn Results Into the Next Creative Test

Analyze Meta and Google Ads data with ChatGPT, use the Ads Manager plugin for ChatGPT Ads, and see how Lapis measures every channel against confirmed sales.

Lapis, the YC-backed #1 AI ad generator rated 4.9/5 on G2, uses AI agents to create, launch, and optimize ads on ChatGPT, Google, Meta, and LinkedIn.

Can ChatGPT Analyze Meta and Google Ads Data?

Yes. Upload a structured export and ChatGPT can inspect columns, calculate metrics, group performance, identify outliers, create tables and charts, and show the code used for analysis. OpenAI's official data-analysis guide lists spreadsheets such as XLS, XLSX, and CSV, recommends descriptive headers with one record per row, and explains that ChatGPT runs Python-based calculations in a notebook environment for supported tasks.

Use ChatGPT for a defined analytical job, not an open-ended request to “find insights.” The model does not know your margin, lead-quality rules, attribution window, campaign changes, creative taxonomy, or reporting definitions unless you provide them. The data-analysis notebook also cannot make external web requests or API calls, so it never pulls fresh Meta or Google data on its own. Upload the complete export, or attach it from a connected source such as Google Drive, OneDrive, or SharePoint when your workspace enables connectors, and add the business context. ChatGPT Ads is the exception: OpenAI's Ads Manager plugin reads that account directly, as the next section explains.

The best first question is not “Which ad won?” It is: “Is this file structurally capable of answering which ad produced more qualified outcomes at an acceptable cost?” That forces the analysis to test the denominator, IDs, dates, attribution, missing values, and conversion definition before ranking anything.

ChatGPT is strong atYou must supply
Cleaning labels and calculating derived metricsCorrect raw columns and metric definitions
Grouping by campaign, ad set, ad, angle, or dateStable IDs and a creative taxonomy
Finding unusual changes and segment patternsComparable windows and known campaign events
Writing a next-test briefBusiness objective, constraints, and decision rules

ChatGPT analysis has a clear boundary. It analyzes the files and connected sources you give it. It does not automatically know the campaign history in your team's meetings, the creative brief in a project tool, the meaning of an internal CRM stage, or the reason a bid strategy changed. Put essential context in a short README tab: business model, objective, approved KPI, guardrails, major launch dates, attribution rule, currency, timezone, and known tracking incidents.

Can ChatGPT Analyze ChatGPT Ads Performance Directly?

Yes. OpenAI's ChatGPT Ads Manager plugin connects ChatGPT or Codex to the Ads Manager accounts you can access and analyzes ChatGPT Ads performance in natural language, with no export or upload step. It answers ChatGPT Ads questions only. Meta and Google data still runs through the export workflow in the rest of this guide.

Per OpenAI's help center, the plugin analyzes a whole account or a single campaign, ad group, or ad, and it does the following:

  • Compares and ranks campaigns, ad groups, and ads.
  • Reviews delivery metrics: impressions, clicks, spend, CTR, average CPC, and average CPM, plus attributed conversions when conversion measurement is configured.
  • Breaks results down by time, device, country, or child resource, and examines trends over a selected date range.
  • Defaults to the trailing seven completed days in the account's local time zone when you give no date range.
  • Runs one-time or scheduled reviews, daily or weekly, that prioritize budget, bidding, targeting, copy, and creative opportunities. Scheduled reviews are recommendation-only and never change the account.
  • Requires confirmation for every change. Before uploading creative or creating or updating a campaign, ad group, or ad, it shows the current state, the proposed state, and the exact values, then asks for approval.

The plugin has one hard analytical limit: it does not receive conversion value, so it reports no revenue or ROAS. It ranks ChatGPT Ads on spend, clicks, and attributed conversion counts. A campaign that wins on cost per conversion and loses on revenue per conversion still looks like the winner inside the plugin. Join the account to revenue and qualified outcomes before you crown anything.

Analysis pathData it seesRevenue and ROASBest for
File upload or connected sourceWhatever you export from Meta and Google, plus any CRM outcomes you joinYes, when you add revenue columnsOne-time Meta and Google audits
ChatGPT Ads Manager pluginOne ChatGPT Ads account, live from Ads ManagerNo, the plugin receives no conversion valueFast ChatGPT Ads reviews and confirmed edits
Lapis with WayfinderMeta, Google, LinkedIn, Reddit, and ChatGPT campaignsYes, from confirmed sales and leads in your CRM, store, or billing systemCross-channel decisions and the next test

Set the date range yourself. The seven-day default suits a delivery check and is too short for a creative decision on low conversion volume. Ask for the full test window, and exclude the most recent days from any winner call, because the plugin reflects the data currently in Ads Manager, including normal reporting and attribution delays. A strong plugin prompt reads: “Rank every ad group in [campaign] by CTR, average CPC, and attributed conversions for [start date] to [end date]. Break results down by device and country. Flag any ad group below [N] conversions as inconclusive.”

For dashboards that combine ChatGPT Ads with GA4 and CRM data, use our ChatGPT Ads reporting dashboard guide. For the revenue the plugin never sees, ChatSense runs the ChatGPT channel with Lapis agents and a dedicated strategist, and Wayfinder connects ChatGPT Ads results to confirmed sales and leads from your CRM, store, or billing system.

Should You Upload CSV or Excel for Ad Analysis?

Choose CSV for one clean table. Choose XLSX for related tables that need separate tabs, a data dictionary, or business context. Both formats are supported by ChatGPT, according to OpenAI's file-type documentation.

FormatUse it whenPreparation rule
CSVOne platform, one grain, one date rangeUTF-8, one header row, no totals row
XLSXMeta and Google tabs plus dictionary and CRM outcomesOne rectangular table per tab, unique tab names

Do not upload a presentation disguised as a spreadsheet. Remove merged cells, decorative title rows, blank separators, subtotals, screenshots, pivot-table formatting, and multiple unrelated tables on one sheet. OpenAI explicitly recommends clear column names, one record per row, and no empty rows or columns that split the data.

Google Ads lets advertisers customize a statistics table and download it as Excel CSV, CSV, TSV, PDF, XLSX, XML, or Google Sheets, according to its reporting documentation. Export the table format, not PDF. In Meta Ads Manager, select the ad level when creative is the unit you want to compare. Meta's Business Help Center guide to advertising levels distinguishes campaign, ad set, and ad levels; your export grain must match the decision you intend to make.

TabGrainContents
meta_adsOne ad by day and selected breakdownRaw Meta delivery and outcome metrics
google_adsOne ad or asset group by dayRaw Google delivery and outcome metrics
crm_outcomesOne anonymous conversion or aggregate ad by dayQualified stage, revenue, margin
creative_mapOne creative IDAngle, concept, hook, format, CTA, page
data_dictionaryOne fieldDefinition, source, unit, null rule, attribution
readmeOne settingGoal, KPI, guardrails, currency, timezone, incidents

Never mix different grains on one tab. If a campaign total appears beside ad-level rows, ChatGPT can double-count the campaign. If placement breakdown rows sit beside non-breakdown totals, the same impressions appear twice. Put each grain in its own table and name it directly.

Which Columns Belong in a Meta and Google Ads Export?

Export raw counts, stable IDs, delivery context, conversion outcomes, and creative labels. Do not rely on calculated platform columns alone. Raw spend, impressions, clicks, and conversions let ChatGPT recompute CTR, CPC, CPM, CPA, CVR, and ROAS consistently across platforms.

GroupCore and conditional columnsWhy they matter
Identityplatform, account_id, campaign_id, delivery_unit_type, delivery_unit_id, parent_unit_id when presentHandles ads, ad groups, ad sets, asset groups, and other platform grains without inventing one universal ad ID
Timedate, timezone, reporting_windowSupports comparable periods and trend analysis
Deliverystatus, objective, budget, bid_strategy, audience, placement, deviceExplains delivery differences and confounders
Raw metricsspend, impressions, clicks; reach and landing_page_views when the platform supplies themProvides valid denominators without fabricating unavailable metrics
Outcomesconversions, conversion_value, leads, qualified_leads, revenueConnects platform activity to business value
Creativecreative_id when available, format, angle, concept, hook, CTA, landing_page_idTurns a ranking into reusable creative learning

Use delivery_unit_type to name the exported grain, such as ad, responsive_search_ad, asset_group, or creative, and place that platform's stable identifier in delivery_unit_id. Preserve native parent IDs in separate columns. Reach and landing-page views are platform-specific fields, not universal requirements. Keep them null when the source does not supply them and document that null as not applicable.

Add a data dictionary in a separate tab or file. Define each column, source, unit, aggregation rule, attribution window, timezone, currency, and null meaning. State whether a blank conversion value means zero, unavailable, or not applicable. State whether spend includes tax and whether revenue is gross, net, or contribution margin.

IDs are more important than names. Names change, collide, and contain inconsistent punctuation. A Meta ad named proof v2 and a Google ad named Proof-V2-final cannot be joined reliably without a shared creative ID. Use a creative map that assigns both assets to the same angle or concept while preserving platform-specific ad IDs.

Google's Results Reporting documentation distinguishes Results, Conversions, and All conversions. Export the specific conversion-action columns that map to your business goal. A generic result count is too ambiguous for a cross-platform model.

How Do You Redact Ad Data Before Uploading It?

Remove data that is unnecessary for the analytical question. Ad-level performance analysis does not need names, email addresses, phone numbers, postal addresses, full CRM notes, payment details, or customer-level event histories. Replace client or product names with stable pseudonyms when the identity adds no analytical value.

Use the right workspace and settings. OpenAI states that individual ChatGPT content can be used to improve models unless the user opts out, while ChatGPT Business, Enterprise, Edu, and API data is excluded from training by default. Consumer users can turn off “Improve the model for everyone” in Data Controls, and OpenAI's Data Controls FAQ explains that Temporary Chats are deleted from OpenAI systems after 30 days and are not used for training.

Workspace controls do not replace minimization. Upload only approved data, follow your company's vendor and retention policy, and remove contract-restricted fields. Keep an internal record of the exported columns, redaction performed, workspace used, upload owner, and deletion date.

  • Keep: anonymous campaign IDs, ad IDs, aggregate metrics, creative taxonomy, dates, and business outcomes at the approved grain.
  • Hash or map: account names, client names, product names, and internal campaign labels when identity is irrelevant.
  • Remove: direct identifiers, audience membership lists, free-form lead notes, transaction details, and credentials.
  • Aggregate: small or sensitive cohorts into an approved reporting level.

Run this pre-upload privacy checklist:

  1. State the exact analytical question.
  2. List the fields needed to answer it.
  3. Delete every unrelated field.
  4. Replace business names with stable codes where approved.
  5. Aggregate customer outcomes to the ad or day level.
  6. Inspect comments, hidden tabs, formulas, and metadata.
  7. Confirm the approved ChatGPT workspace and data controls.
  8. Record who uploaded the file and when it should be deleted.

Do not paste data into a prompt when a structured file provides cleaner structure, reproducibility, and review. Keep the prompt focused on definitions and tasks. Keep the numbers in the approved workbook.

Which Data-Quality Checks Must Run Before Analysis?

Force a quality gate before asking for winners. A polished chart built on mixed currencies, duplicate rows, or broken attribution is worse than no chart because it creates confident action from invalid evidence.

  1. Confirm grain. Every row represents the same unit, such as one ad on one date.
  2. Test uniqueness. The composite key of platform, account, campaign, delivery_unit_type, delivery_unit_id, date, and breakdown must not duplicate.
  3. Validate types. Dates parse as dates, currency columns are numeric, and percentages are not mixed between 0.12 and 12.
  4. Reconcile totals. Sum spend, impressions, clicks, and conversions and compare them with the platform report.
  5. Check anomalous values. Clicks above impressions require investigation because repeat clicks and counting definitions can create them. Negative spend needs an explicit adjustment label, and conversions need a defined denominator.
  6. Inspect missingness. Report null count and null rate by column, platform, and date.
  7. Normalize units. Convert currencies and timezones before cross-platform comparison.
  8. Identify partial days. Exclude or label incomplete reporting periods.
  9. Check campaign changes. Mark budget, bid, audience, tracking, page, and creative edits.
  10. Verify attribution. Align conversion names, windows, and counting rules before combining platforms.

Google's Results Reporting guide distinguishes Results, Conversions, and All conversions, including primary and secondary actions. Treat those definitions as separate fields. Never combine a Google primary conversion count with a Meta result count until the business events and attribution rules are explicitly aligned. For Lapis campaigns, Wayfinder does this alignment by default: it counts each conversion once and compares every channel on the same attribution rules.

Experiment data needs an additional assignment check. Microsoft Research explains that a sample ratio mismatch can reveal missing users, broken assignment, or logging problems and invalidate an A/B test. Ask ChatGPT to compare observed assignment counts with the intended split before calculating treatment lift.

Worked example: a quality gate on a two-platform export ends in a decision table like this one.

CheckStatusEvidenceAction
GrainPassOne row per ad per dateContinue
Duplicate keyFail148 repeated Meta rowsDeduplicate at source
CurrencyPassUSD onlyContinue
CRM joinWarning7.2% of ad IDs unmatchedRepair mapping before qualified CPA
Partial dateFailCurrent day incompleteExclude current day

Do not let ChatGPT silently repair a critical issue and continue. Ask it to stop, show the affected rows, and propose a repair. You decide whether the repair preserves the intended metric.

Which Derived Metrics Should ChatGPT Calculate?

Recompute metrics from raw columns, round only for presentation, and retain numerator and denominator beside every rate. The formulas are simple; the definitions are not.

MetricFormulaWhat it answers
CTRclicks / impressionsDid the ad earn a click?
CPCspend / clicksWhat did traffic cost?
CPMspend / impressions x 1,000What did delivery cost?
Click-to-view ratelanding views / clicksDid users reach the page?
CVRconversions / landing viewsDid the page convert arrivals?
CPAspend / conversionsWhat did the outcome cost?
Qualified CPAspend / qualified outcomesWhat did accepted demand cost?
ROASattributed revenue / spendHow much attributed revenue returned?

Use the business metric as the decision metric and upstream metrics as diagnostics. A high-CTR ad can lose on qualified CPA. A low-CPC ad can send weak traffic. A high-ROAS cell with one purchase is fragile. Always display volume, rate, cost, and downstream quality together.

Do not average row-level rates. Calculate an aggregate CTR as total clicks divided by total impressions, not the arithmetic mean of daily CTR values. The same rule applies to CPC, CPM, CVR, CPA, and ROAS. Weighted recomputation preserves the true denominator.

When division uses zero, return a labeled null rather than infinity or zero. Zero conversions do not mean zero CPA. They mean CPA is undefined for that cell and spend has not produced a recorded conversion. Keep the spend visible.

How Do You Separate Observations, Hypotheses, and Decisions?

Demand three labeled layers in every answer.

  • Observation: a direct statement from the file. Example: “The Proof angle recorded 38 qualified leads from 4,120 landing views at a $162 qualified CPA.”
  • Hypothesis: a testable explanation. Example: “The specific proof in the Proof angle attracted buyers with stronger implementation intent.”
  • Decision: an action justified by the evidence and constraints. Example: “Extend the Proof versus Oversight test at equal budgets until the qualified-lead difference clears the threshold declared in the brief, then promote the winner to control.”

A pattern is not a cause. Platform, audience, placement, bid strategy, landing page, offer, date, and spend can all move with the creative. If the data is observational, label it observational. If traffic was randomized and the experiment passed integrity checks, estimate the treatment effect under the declared design.

Ban empty advice. “Improve the CTA” is not a decision. A valid decision names the control, single change, audience, primary metric, guardrails, budget rule, and next review condition.

Finding IDObservationHypothesisNext action
F-014Proof angle has lowest qualified CPA; gap to Oversight is below thresholdProof filters low-intent clicksExtend Proof versus Oversight until the gap clears the declared threshold

This ledger prevents an attractive narrative from outrunning the data. It also gives the next campaign a precise source record.

What Statistical Rules Should the Analysis Enforce?

Do not turn every difference into a winner. Report sample size, effect size, uncertainty, test design, and data limitations. A small p-value does not repair a broken assignment or a metric chosen after results appeared.

Microsoft Research documents how complex randomization and incorrect independence assumptions can underestimate variance and produce untrustworthy A/B-test conclusions. Use the actual randomization unit. If users were assigned, do not analyze impressions as independent people. If campaigns were assigned, do not pretend every click was independently randomized.

Enforce these rules:

  1. Declare one primary metric before the test.
  2. Report absolute and relative lift with an interval.
  3. Check assignment balance and missing data first.
  4. Keep repeated visitors in one assigned variant.
  5. Account for multiple comparisons when ranking many ads.
  6. Separate exploratory findings from confirmatory results.
  7. Do not stop because a temporary lead looks attractive.
  8. Use business guardrails such as qualified rate, refunds, and margin.

Google's Experiments documentation shows “Undecided” as a legitimate state and recommends allowing supported experiments to collect enough data. Your report needs the same honest state: winner, loser, or inconclusive.

Do not combine platform optimization with a randomized test label. Ad platforms allocate delivery according to their objectives, so two creatives that receive different traffic are not automatically an A/B test. A valid causal claim requires a defined assignment mechanism and comparable treatment. Without that design, describe the result as an observed performance difference and use it to form the next controlled test.

What Reusable ChatGPT Prompt Produces a Reliable Ad Analysis?

After ChatGPT responds, ask it to show the exact rows supporting each headline finding and the code that produced each derived table. OpenAI explicitly tells users to review generated code, outputs, and assumptions when analysis depends on a specific method. The review is part of the workflow, not an optional polish step.

  1. “Show the source rows and formulas for findings F-001 through F-005.”
  2. “Recompute the ranking using qualified CPA as the primary metric and sales acceptance rate as a guardrail.”
  3. “Turn only findings supported across both platform and CRM data into next-test briefs. Put exploratory findings in a separate backlog.”

These follow-ups expose hidden assumptions and keep the final action tied to business outcomes.

Worked Example: How Do You Turn an Export Into a Real Insight?

Worked example: three creative angles, Speed, Oversight, and Proof, ran across Meta and Google for two weeks at near-equal spend. After the quality gate and aligned conversion definitions, the export shows these aggregate results.

AngleSpendCTRLeadsQualified leadsQualified CPA
Speed$6,2001.8%7122$282
Oversight$6,0501.3%5831$195
Proof$6,1401.1%5238$162

Observation: Speed earned the highest CTR and the most total leads. Proof recorded the lowest CTR and the fewest total leads but the most qualified leads (38) and the lowest qualified CPA ($162, against $195 for Oversight and $282 for Speed). Hypothesis: Specific proof filtered casual clickers and attracted buyers ready to evaluate the product.

Decision rule: The threshold, declared before launch, is a two-sample Poisson z score of 1.96 or higher (95% confidence) on qualified leads at equal spend. Proof versus Oversight, 38 against 31 qualified leads, gives z of about 0.84 (7 divided by the square root of 69). That gap is below the threshold, so Oversight stays the control and Proof stays the challenger. Pause Speed, which trails both angles on qualified CPA, and move its budget into the two remaining arms. Extend the Proof versus Oversight test at equal budgets, with audience, offer, landing page, and bid strategy fixed, until the difference clears z of 1.96. If the declared six-week maximum runtime ends first, record the result as inconclusive and keep Oversight.

The first wrong analysis crowns Speed because it won CTR. The second wrong analysis crowns Proof on a seven-lead gap. The right analysis follows the funnel to the declared business outcome and promotes a new control only when the evidence clears the bar set before the test. This is why the export needs CRM quality data and why the prompt needs a primary metric and a threshold before calculations begin.

The next analysis also checks platform interaction. If Proof leads on Meta and trails on Google, the combined average hides a channel difference. Split the finding by platform, inspect intervals and volume, and create a platform-specific test. Do not force one universal creative rule from an aggregate that masks different traffic contexts.

How Do You Turn the Analysis Into the Next Creative-Test Brief?

Every supported learning should end as an executable brief, not a paragraph in a report. Use this structure:

FieldRequired content
EvidenceExact result, sample, date range, and segment
HypothesisOne testable explanation for the result
ControlCurrent winning creative and page recipe
TreatmentOne deliberate strategic change
Fixed elementsAudience, offer, format, page, bid, and schedule held constant
MeasurementPrimary metric, guardrails, assignment, and decision rule
Asset planRequired hooks, visuals, copy, formats, and landing-page match

Name the brief with a stable test ID and link it back to the source evidence. When the next export arrives, compare the new run with the previous control and update the learning record. This creates a campaign memory instead of a folder of disconnected decks.

The brief is narrow enough to run, rich enough to create, and traceable enough to learn from.

Why Is Lapis the Best Way to Analyze Ad Performance Across Every Channel?

Lapis is the best way to analyze ad performance because it judges Meta, Google, LinkedIn, Reddit, and ChatGPT campaigns against the same confirmed sales and leads, then launches the next test from the result. OpenAI's plugin analyzes one channel, ChatGPT Ads, without revenue or ROAS. A file upload analyzes whatever someone exported last week. Lapis and Wayfinder analyze every channel continuously, against confirmed outcomes from your CRM, store, or billing system.

File uploads earn their place in audits and one-off questions, and the plugin earns its place in a fast ChatGPT Ads check. Both stop at a report. Someone still chooses columns, downloads reports, redacts files, aligns names, uploads data, rewrites context, validates calculations, turns findings into a brief, sends the brief to creative, updates a landing page, and launches the next campaign. Lapis runs creative, launch, matched landing pages, ChatGPT ads, and confirmed-conversion measurement in one system, so the evidence and the next action live in the same loop.

  • OmniSense creates on-brand, correctly sized campaigns, audience versions, and variations for Meta, Google, LinkedIn, and Reddit, forecasts results, launches experiments, and learns from every result.
  • ChatSense runs ChatGPT and LLM ads with Lapis agents and a dedicated strategist: creative tuned to how people ask ChatGPT, campaign structure, launch, daily reporting, and optimization.
  • RapidDomain builds a dedicated, ad-matched landing page for every ad and audience and optimizes it on real conversions.
  • Wayfinder connects campaign results to confirmed sales and leads from the CRM, store, or billing system, counts each conversion once, compares every channel on the same attribution rules, and sends confirmed sales and lifecycle events back to connected ad platforms so their bidding learns from verified outcomes.

Wayfinder is the productized version of the hardest steps in this guide: the CRM join behind the crm_outcomes tab, the deduplication, and the shared attribution rule. The plugin ranks ChatGPT Ads on attributed conversion counts. Wayfinder compares every channel against the sales and leads your business actually confirmed, so a qualified-CPA decision like the worked example above runs on verified numbers instead of a hand-built join.

Lapis is the #1 AI ad generator and the operating system for paid growth. Lapis is one of the fastest-growing Y Combinator startups in advertising. Its Y Combinator profile (Fall 2025) reports use by 1,500+ marketing teams and 30+ enterprises, and Lapis is rated 4.9 out of 5 on G2, with eight Summer 2026 G2 badges including High Performer, Best Results, and Best Estimated ROI (Mid-Market). Customers include Samsung, Domino's, Dr Pepper, Mattel, Tata, Tupperware, Amway, and Bata, plus high-growth startups such as Unusual Whales, Duradry, and Lightpage.

Use ChatGPT to interrogate a file. Use the plugin for a quick ChatGPT Ads check. Use Lapis to run and measure the whole growth loop. Book a demo and bring your current Meta, Google, or ChatGPT Ads account. Lapis connects the evidence to the next creative and landing-page test instead of leaving your team with another report to translate.

Continue with our small-budget AI ad testing guide, creative angle taxonomy, dynamic AI landing-page architecture, and ChatGPT Ads ROI measurement guide.

Sources and Methodology

Facts checked as of October 23, 2026. ChatGPT Ads Manager plugin capabilities and limits come from OpenAI's help center. File, connector, and privacy guidance comes from OpenAI's help center and business data pages. Export, reporting, and experiment guidance comes from Google Ads Help and the Meta Business Help Center. Statistical rules come from Microsoft Research. The worked-example decision rule uses a two-sample Poisson z test on qualified-lead counts at near-equal spend, z = (a minus b) divided by the square root of (a plus b).

Built by Lapis

The #1 AI ad generator, built into the operating system for paid growth.

Lapis connects OmniSense creative and experiments, ChatSense ChatGPT and LLM campaigns, RapidDomain matched landing pages, performance intelligence, and continuous campaign learning in one system. Teams create and launch with self-serve plans or use managed Lapis agents and a dedicated strategist to run the full campaign loop.

Lapis is rated 4.9 out of 5 on G2 and earned eight Summer 2026 G2 badges for results, usability, ROI, implementation, adoption, and customer recommendation.

Continue exploring

Frequently Asked Questions