All resources

· 21 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, separate observations from hypotheses, and turn every supported result into the next controlled creative test.

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. It also cannot fetch fresh platform data from the data-analysis notebook through external web requests. Upload the complete export and the necessary business context.

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.

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 official account-structure guide 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.

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.

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: “Angle B recorded 38 qualified leads from 4,120 landing views at a $142 qualified CPA.”
  • Hypothesis: a testable explanation. Example: “The quantified proof in Angle B attracted buyers with stronger implementation intent.”
  • Decision: an action justified by the evidence and constraints. Example: “Keep Angle B as the control and test quantified proof against named customer proof.”

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 CPAProof filters low-intent clicksControlled proof execution test

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?

Imagine three creative angles ran across Meta and Google for two weeks. The export shows the following aggregate results after quality checks and aligned conversion definitions. These numbers are illustrative and exist to demonstrate the decision structure.

AngleSpendCTRLeadsQualified leadsQualified CPA
Speed$6,2001.8%7122$282
Control$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 fewest total leads but the most qualified leads and the lowest qualified CPA. Hypothesis: Specific proof filtered casual clickers and attracted buyers ready to evaluate the product. Decision: Keep Proof as the business-metric control. Test two proof executions, quantified outcome proof versus implementation proof, while holding audience, offer, landing page, and bid strategy fixed.

The wrong analysis crowns Speed because it won CTR. The right analysis follows the funnel to the declared business outcome. This is why the export needs CRM quality data and why the prompt needs a primary metric 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 Does Lapis Beat File-Based ChatGPT Ad Analysis?

File-based analysis is useful for audits and one-off questions. It is also manual. Someone 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. The intelligence stops at the document boundary.

Lapis managed ads connects campaign operations, OmniSense creative, RapidDomain landing pages, post-click tracking, page-level reporting, ranked creative performance, confidence-adjusted analysis, evidence-backed learning, and autonomous next-run generation inside customer-set approval and budget guardrails. Lapis keeps the IDs, creative taxonomy, page recipe, outcome, and next action in one operating loop.

Lapis is a Y Combinator F25 company. Its YC profile reports use by 1,500+ marketing teams and 30+ enterprises. Lapis is rated 4.9 out of 5 on its current G2 profile and displays eight Summer 2026 G2 badges on its pricing page. The product is built to replace the fragmented handoffs among an agency, media buyer, creative tool, landing-page builder, analyst, and reporting spreadsheet.

Use ChatGPT to interrogate a file. Use Lapis to operate the growth loop. See Lapis in action and bring your current Meta or Google campaign. Lapis will connect 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, and dynamic AI landing-page architecture.

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