You can tell whether your PPC agency is performing without a second opinion, because the evidence is in your own account. The change history shows how often it is touched. The search terms report shows whether anyone is reading it. The conversion settings show whether the numbers in the report mean anything. This article lists ten signs, in rough order of how fast you can check them, and what each one means. If more than three apply, the fee is not the problem; the management is.
Written by Ilya Bulychev, Founder of Live PPC Ads. Most of these come directly from what we find in accounts that arrive from other agencies.
Is the change history nearly empty?
Start here because it takes two minutes. In Google Ads, open the change history and set the range to the last 90 days. Every edit is logged: keywords added, negatives added, bids changed, ads created, budgets moved, with the user who made it. Filter out automated rules and look at what a human did.
An account managed every business day shows dozens of meaningful changes a month across search terms, negatives, bids, ads, and settings. An account that gets two hours a month shows a handful, usually clustered on one day near the reporting date. That pattern is the whole story of why your PPC agency only gives you 2 hours a month. Meta has an equivalent activity log in Ads Manager.
Are the search terms full of irrelevant queries?
Open the search terms report for the last 30 days and sort by cost. If you see job seekers, DIY questions, unrelated meanings of your keywords, competitors you do not want to pay for, or generic queries with zero conversions and real spend, nobody is reading this report. Daily search term review and negative keyword work is the most basic optimization in paid search, and it is the first thing to stop when an agency runs out of hours.
Check the other direction too. If the negative keyword lists contain words that appear in your own converting keywords, the agency has been blocking your own traffic. We see this in a large share of the accounts we audit; the details are in Your Negative Keywords Are Killing Your Campaigns.
Do the reported conversions match reality?
Compare the conversions in the ad platform with what your business actually recorded: orders in Shopify, leads in the CRM, calls in the phone system. A modest gap is normal because attribution windows and models differ. A large gap, in either direction, means the conversion tracking is wrong, and every optimization decision built on it is wrong too.
Common causes: page views counted as conversions, duplicate tags firing twice on the same purchase, secondary and primary actions mixed up, GA4 events and Google Ads tags both counted as primary, and calls of any length counted as leads. An agency that has not audited your conversion actions has not started managing your account. Our conversion tracking page lists what a correct setup includes.
Is Performance Max running on defaults?
Open your Performance Max campaigns and check four settings: brand exclusions, search themes, final URL expansion, and asset group structure. No brand exclusions means PMax is bidding on your own brand name and taking credit for sales you would have made anyway. No search themes means Google is guessing at intent from your landing pages. URL expansion turned on with no exclusions means your ads may be sending traffic to blog posts and policy pages. One asset group for the whole business means one set of creative and signals for everything you sell.
Then look at the channel breakdown. If most of the spend is going to Display and YouTube while the reported conversions are view-through, the campaign is producing numbers, not revenue. Performance Max Needs Human Oversight covers what proper management looks like.
Has the account structure not changed since launch?
Campaigns built a year ago for a business that has since added products, changed prices, opened a location, or shifted its best sellers should look different a year later. If the structure, the keyword list, and the ad copy are the same as the day they launched, the agency built once and billed since.
Look at the ads specifically. Responsive search ads have asset performance ratings; an account being worked has assets marked low replaced regularly. An account being ignored has the same fifteen headlines it launched with, some of them rated low for months.
Are you only hearing good news?
A report that only ever contains gains is edited. Real accounts have campaigns that declined, tests that failed, and weeks where a competitor pushed CPCs up. An agency that reports all of it, explains why, and says what it is doing next is managing. An agency that reports the three metrics that went up and changes which three every month is managing you.
Also notice the base of every percentage. "Conversions up 40 percent" from what number, over what period, compared with which period last year? Percentages without absolute numbers hide small bases and seasonal swings.
Does the agency resist giving you access or explaining the account?
You should have admin access to every account run in your name and be able to see everything the agency sees. If access is delayed, limited to a dashboard, or conditional on the contract, the agency is protecting its position, not your account.
The same applies to explanations. When you ask why a campaign is structured a certain way or why a target was set where it is, the answer should be specific and should reference your data. "That is how Google recommends it" is not an explanation; it is an abdication.
Is the strategy just whatever Google recommends?
Open the Recommendations tab in Google Ads and look at what has been applied. Google's recommendations are optimized for Google's revenue: broad match everywhere, auto-apply on, budgets raised, Performance Max for everything. Some of them are good for some accounts. An agency that applies them wholesale, or leaves auto-apply turned on, is not exercising judgment.
Ask what the agency has declined to do that Google recommended, and why. A practitioner will have a list.
Are budgets and targets being moved without a reason you can see?
Budget and target changes should be decisions with a rationale you can read, not tweaks that happen silently. Check the change history for budget increases and target ROAS or CPA changes and ask what each one was based on. If the answer is that the campaign was "limited by budget," ask whether it was profitable at the margin before the increase; a limited campaign at a loss should be fixed, not fed.
We never change a client's budgets or targets without an explicit decision and a note explaining it. An agency on a percentage-of-spend fee has a reason to raise budgets; make sure the reason on record is yours. The incentives behind each pricing model are laid out in How Much Does PPC Management Cost?.
Is cost per customer rising while the agency reports cost per lead falling?
This is the sign that requires your own data, and it is the most important one. Lead count and cost per lead are easy to improve by counting more things as leads. Cost per qualified lead and cost per customer are not. If your sales team says lead quality has fallen while the report says lead cost has improved, the account is being optimized toward the report.
The fix is structural: qualified conversion definitions, call duration thresholds, and offline conversion import from the CRM so the platform learns from real outcomes. An agency that has not proposed this for a lead-generation account has not thought about what the account is for. Our lead generation PPC page explains the setup.
What should you do if several of these apply?
Three steps, in order. First, get admin access to every account if you do not already have it, and confirm the accounts are in your name; if they are not, that is the first conversation. Second, get an independent audit; ours is described on the Google Ads audit page and is read-only, so nothing changes while you decide. Third, if you move, do it cleanly: remove the old agency's users and unlink their manager account using our guide on removing an old agency from your Google Ads account, after making sure billing and conversion tracking do not depend on their manager account.
Then, when you evaluate the next agency, use How to Choose a PPC Agency: 12 Questions to Ask Before You Sign so the same problems do not repeat. If you are weighing whether to bring the work in-house instead, PPC Agency vs In-House vs Freelancer covers that decision, and Boutique PPC Agency vs Large Agency covers what changes with the size of the firm. Our own model is on the comparison page.
Frequently asked questions
How long should I give a PPC agency before deciding it is not performing? Ninety days from a rebuild is fair for results, but the signs above are visible within the first month. If the change history is empty and the search terms are unread after thirty days, waiting another sixty will not change the outcome.
Can a PPC agency be performing even if results are down? Yes. Seasonality, a new competitor, a policy change, or a site problem can push results down while the agency is doing everything right. The difference is that a performing agency tells you before you ask, explains the cause with data, and shows what it changed in response. Results down and silence is the problem.
Should I tell my agency I am checking the change history? You do not need to, but there is no reason to hide it. It is your account. An agency doing the work will welcome it; one that objects has told you what you needed to know.
What if my agency says the account is fully automated and does not need daily changes? Automation handles bidding within the limits it is given. It does not read search terms, write negatives, fix tracking, replace weak ads, configure Performance Max controls, or notice that a competitor entered the auction. An account with no human changes is an account with no human judgment.
Is it worth getting an audit before switching agencies? Yes, for two reasons. It tells you whether the problem is the agency or something structural like tracking or the site, and it gives you a baseline so the next agency's claims can be checked against a known starting point.
