To analyze ad campaigns, compare each campaign's spend with business outcomes (qualified leads, sales and revenue from your CRM), then work down the funnel to find where results break: delivery, creative, landing page, lead quality or sales follow-up. End every analysis with one decision per campaign: scale, hold, fix or pause. A weekly pass of about an hour with the checklist below is enough for most teams spending on Meta, Google Ads and TikTok.
This guide gives the exact order of checks, a symptom-to-cause table, decision rules and a worked example. It focuses on the analysis itself. For how to run the meeting around it, see our weekly marketing review ritual.
What do you need before analyzing ad campaigns?
Bad inputs produce confident wrong answers. Before you open Ads Manager, make sure you have:
- The same date range and time zone across ad platforms, analytics and CRM.
- Campaign source on every lead. UTMs or click IDs saved in the CRM, so leads can be grouped by campaign.
- Outcome stages defined: lead, qualified lead, sale, and the revenue amount.
- A note of last week's changes: new creatives, budget changes, new audiences, landing page edits.
- Enough elapsed time. If your sales cycle is 30 days, last week's leads will not have closed yet. Analyze sales on an older cohort.
If leads do not carry their source into the CRM, fix that first. Our lead tracking page explains how Admira captures it automatically, including leads that start in WhatsApp.
How do you analyze ad campaigns step by step?
- Check tracking health. Compare leads reported by each platform with leads received in the CRM. A sudden gap usually means a broken pixel, form or integration, not a performance change.
- Check pacing. Is spend on plan for the month? Overspend hides in daily budgets and automated rules.
- Rank campaigns by business outcome. Calculate cost per qualified lead and cost per sale for each campaign using CRM data, not platform conversions. This is the main table of the analysis.
- Compare platform numbers with CRM numbers. Large differences point to attribution windows, duplicated conversions or junk leads. We explain the usual causes in why Meta, Google Ads and GA4 numbers don't match.
- Diagnose the funnel for the weakest campaigns. Look at CPM, CTR, landing page conversion rate, lead-to-qualified rate and qualified-to-sale rate in that order. The first stage that is clearly worse than your normal range is where to act.
- Go down to creatives. Within each campaign, rank ads by cost per qualified lead or cost per sale. Our guide to creative-level attribution shows how.
- Check audiences and placements. Use platform breakdowns to spot segments with high spend and no qualified leads.
- Check for recent significant edits. Meta describes a learning phase after an ad set launches or is significantly edited, and Google's automated bidding also needs time to adjust. Do not judge a campaign in the days right after a big change.
- Decide one action per campaign using the rules below.
- Log decisions with the date and expected result, so next week you check whether they worked.
Keep the output short. A good weekly analysis fits in three lines per campaign: what happened (cost per sale vs target), why (the funnel stage that broke or improved) and what you will do (the decision and its expected effect). If the summary needs a long explanation, the analysis is not finished yet. Share the same three lines with sales, because they often know why lead quality changed before the data shows it.
What usually causes poor ad campaign results?
| Symptom | Likely cause | What to check |
|---|---|---|
| High CPM | Narrow audience, competitive season, low ad quality | Audience size, placements, ad relevance diagnostics |
| Low CTR | Weak hook or offer, creative fatigue | Frequency, ad age, first 3 seconds of video |
| Good CTR, few leads | Landing page or form problem | Page speed, mobile form, message match with the ad |
| Many leads, few qualified | Offer attracts the wrong people, form too easy | Lead form questions, targeting, which conversion event you optimize for |
| Qualified leads, few sales | Slow follow-up, sales process, price | Time to first contact, WhatsApp response time, lost reasons in CRM |
| Platform shows sales the CRM doesn't | Attribution overlap, view-through credit | Attribution settings, deduplication across platforms |
How do you decide whether to scale, fix or pause a campaign?
| Decision | When | Typical action |
|---|---|---|
| Scale | Cost per sale below target for 2+ weeks with stable volume | Raise budget gradually; add creatives in the same angle |
| Hold | Near target, or in learning after a recent change | No edits this week |
| Fix | One funnel stage clearly broken | Change only that stage: creative, page, form or follow-up |
| Pause | Spent 2 to 3 times your target cost per sale with no sales and no clear fix | Pause and move budget to scaled campaigns |
These are starting rules, not laws. Adjust the thresholds to your margin and sales cycle. The logic is explained in cost per lead vs cost per sale.
What does a weekly campaign analysis look like?
Example (hypothetical numbers): a real estate developer analyzes three campaigns on a 30-day-old lead cohort. Target cost per sale: $1,500.
| Campaign | Spend | Leads | CPL | Qualified | Sales | Cost per sale | Decision |
|---|---|---|---|---|---|---|---|
| Meta, lead form | $4,000 | 400 | $10 | 40 | 2 | $2,000 | Fix |
| Meta, Click-to-WhatsApp | $3,000 | 150 | $20 | 45 | 3 | $1,000 | Scale |
| Google Search, brand + project | $2,000 | 60 | $33 | 30 | 2 | $1,000 | Scale |
The lead form campaign has the cheapest leads but the worst cost per sale, because only 10% qualify. The fix is at the qualification stage: add a budget question to the form or optimize for a qualified-lead event instead of raw leads. The WhatsApp and Search campaigns both beat the target and get more budget. Without CRM outcomes, the team would have scaled the wrong campaign.
What mistakes should you avoid when analyzing campaigns?
- Judging campaigns on platform-reported conversions only.
- Comparing last week's leads with last week's sales when the cycle is longer.
- Changing budget, audience and creative at the same time, so you cannot tell what worked.
- Reacting to one day of data.
- Adding up conversions from Meta, Google and TikTok as if they did not overlap.
When does this checklist not apply?
For brand awareness campaigns with no direct response goal, use reach, frequency and lift studies instead of cost per sale. For ecommerce stores with online checkout and short cycles, purchase value in the platform and in the store can replace the CRM steps. And if you run fewer than a handful of sales per month, analyze monthly rather than weekly, because weekly numbers will be noise.
For teams that close sales in a CRM or WhatsApp, Admira automates steps 1, 3 and 4 by tying each lead to its campaign, ad and revenue. It does not replace judgment on creative or offers. For the report formats themselves, see our guides to the Meta Ads report and the Google Ads report.
FAQ
How often should I analyze ad campaigns?
Weekly for performance and decisions, daily only for pacing and tracking errors, and monthly for budget allocation across channels.
What is the most important metric when analyzing campaigns?
Cost per sale or cost per qualified lead, measured with CRM data. CTR and CPL are diagnostic metrics, not goals.
How long should a campaign run before I judge it?
Long enough to exit the platform's learning period and to generate outcomes you can count. For long sales cycles, judge on qualified leads first and sales later.
Why do my platform conversions not match my CRM?
Platforms use their own attribution windows, count view-through conversions and may count duplicates. The CRM counts real records. Use the CRM as the source of truth.
Should I analyze by campaign or by ad?
Both, in that order. Start with campaigns to decide budget, then go to ads to decide which creatives to scale or replace.
Can I analyze campaigns that send people to WhatsApp?
Yes, if each conversation is captured as a lead with its campaign source in the CRM. Otherwise you only see conversations started, not sales.






%20(2).png)