
I’m introducing Pages in Profound—my single command center for monitoring content citations, tracking bot activity, and understanding page health.


Inspired by this post on Try Profound Blog.



I’m introducing Pages in Profound—my single command center for monitoring content citations, tracking bot activity, and understanding page health.


Inspired by this post on Try Profound Blog.


I see marketing mix modeling (MMM) becoming easier to access, but I do not think it has become easy to get right.
After several conversations about MMM adoption, I keep hearing the same concern: “We believe in MMM, but we do not know how to get started.”
My answer is that open-source platforms have lowered the barrier to entry in a meaningful way. What they have not lowered is the level of expertise required to produce results that are trustworthy, explainable, and useful for decision-making.
I am seeing MMM adoption accelerate because marketers need more durable measurement methods. Almost half of U.S. marketers expect to invest more in MMM over the next year, and many now rank it as one of the most reliable measurement approaches available.
The open-source shift is real. Three production-grade libraries now give teams a practical way to approach MMM across a wide methodological spectrum.
This generation of tools has removed the old $150,000 to $500,000 consulting gate that used to be the primary path into MMM. A team with R or Python expertise and reasonably clean historical data can now run a model in-house.

The caveat I always make explicit is this: “free tool” does not mean “free model.” The software may be free, but the domain expertise needed to configure it correctly is not. That expertise is a major part of the value.
I also see a fast-growing SaaS layer built on top of open-source MMM. To evaluate it clearly, I find it helpful to separate vendors into a few practical groups.
Platforms like Rockerbox and Northbeam started with attribution and data collection, then added MMM. Their advantage is usually pipeline speed and data access, not deep modeling flexibility or customization.
Platforms such as Measured, Analytic Partners, Ekimetrics, and Nielsen Gracenote tend to offer more rigorous modeling and enterprise-grade capabilities, usually at a higher price point.
I think Google’s decision to open-source Meridian is both a generous contribution to the field and a strategic move. When a walled garden funds and packages a measurement methodology that can be used to evaluate its own channels, I believe it is worth maintaining healthy skepticism about priors, defaults, and assumptions, even when the code is transparent.

The practical vendor question I keep coming back to is simple: who owns the data layer, and does that ownership create conflicts in the modeling layer?
I think data access is the most underappreciated MMM implementation blocker. A well-specified model needs more than a quick export from a dashboard.
In practice, I often find that the real blocker is the six-week data archaeology project that happens before modeling begins. Finance owns revenue. The brand team owns TV. The agency owns digital spend. A spreadsheet from 2021 may be the only record of trade promotions.
The model is only as good as the data archaeology behind it, and that is rarely the part anyone highlights in a vendor demo.
AI assistants have lowered the syntax barrier. They can scaffold a Robyn run, generate a Meridian configuration, or help debug a PyMC model. What they cannot reliably do yet is make the judgment calls that determine whether an MMM is credible.

In other words, if I try to vibe code my way into MMM, I may end up with a model that appears to work but is wrong in ways I will not catch. The scripting is not the hardest part. The real work is validating the output, including using channel-specific incrementality experiments to calibrate the model.
Even if the tools mature enough for AI to run a competent default MMM, I still see human expertise as essential. The irreplaceable work is encoding business context that no model can infer from the data alone.
The best place to begin is not the model itself. I start by understanding what data is needed, who owns it, and who can help interpret it in the context of real marketing decisions.
None of that is quick or easy, but it is essential if I want meaningful insight from MMM, whether I choose an open-source library or a subscription-based platform.
As a practical first step, I would download Robyn’s demo script and experiment with sample data before applying MMM to my own business data. That kind of hands-on testing makes the strengths, limits, and judgment calls much clearer.
Inspired by this post on Search Engine Land.



I often get asked why I “only” run each prompt one time per day.
For me, the answer comes down to signal quality. Running a prompt once daily gives me enough consistent data to understand performance without overloading the process with unnecessary repetition.
The statistics show that a single daily run is plenty. It gives me a reliable view of how prompts behave over time, while keeping the workflow focused, efficient, and easier to interpret.
Inspired by this post on Try Profound Blog.



I’m measuring downstream web browsing after AI brand mentions, focusing on what happens once a brand shows up in an AI-generated answer or recommendation.
For me, the AI mention effect is about connecting visibility inside AI experiences with real user behavior afterward, especially whether those mentions lead people to search, click, browse, and engage beyond the original AI response.
Inspired by this post on Try Profound Blog.


I used to think bad data mainly meant bad reporting. Now, in Google Ads, I see it as something much more expensive: bad delivery. When conversion data is wrong, it does not just make a dashboard confusing. It can train campaigns to spend budget chasing the wrong people.
As automation takes over more of the ad-buying process, from creative generation to bidding, data has become one of the few inputs I can still control. It may also be the most important one, because automation can only optimize toward the signals I give it.
I keep coming back to one question: what is worse, a brilliant ad shown to the wrong audience or an average ad shown to the right one? The first burns budget on people I do not want. The second may not win every click, but when someone does engage, at least they are closer to the customer I actually need.
That is why I have to ask myself a harder question before launching any automated campaign: did I spend more time verifying the data than writing the ad copy?
A few years ago, bad tracking was mostly a reporting problem.
If a tag fired twice, a conversion was mishandled, a value came through incorrectly, or offline conversions stopped working for a few weeks, the main result was a dashboard that did not add up. It was frustrating, but the damage was usually limited. Someone would eventually question the numbers in a monthly review, I would trace the issue, fix it, and the next report would look cleaner.
That same data now feeds the algorithm buying paid media. Smart Bidding does not wait for me to interpret a report or sit through a monthly review. It reads conversion data and acts on it before I may even notice that something is broken.
The same wrong number now creates a very different outcome. A bad number in a report requires an explanation in a meeting. A bad number in a conversion action used for bidding costs money immediately, because the algorithm does not know the signal is wrong.
It simply optimizes toward that signal the moment it sees it, and it does so efficiently.
Google may let me label conversion actions as “lead,” “opportunity,” or something similar, but those labels are mainly for organization. The platform does not truly understand where each conversion event sits in my funnel.
What it sees is a conversion event with a numeric value attached to it, usually a currency value. It does not inherently know that a newsletter signup might be worth $2 in eventual value, a lead might be worth $60, and an opportunity might be worth $400. To Google, those are conversion events. Without better signals, it has no real context that one may be worth 200 times another.
The algorithm is not optimizing for my business outcome by default. It is optimizing for the data I provide. If that data is wrong, the optimization will be wrong too.
For example, if every form submission fires the same conversion with the same default value, I give the system no clean way to separate low-intent inquiries from high-value prospects. The algorithm treats them the same. And because low-quality leads are often cheaper to acquire, it can quickly flood the account with them.
The cost per lead may drop from $40 to $25, and the dashboard may make performance look more than 35% better. But behind that cleaner metric, the pipeline can dry up as genuinely qualified inquiries quietly fall by half.
Dig deeper: Why better signals drive paid search performance
Bad data can show up in different ways, but I see three issues that are especially likely to derail campaign delivery.
If I optimize for a top-of-funnel action like a page view while the real conversion events happen further down the funnel, the algorithm learns to buy more of those cheap events. The problem is that the lower-funnel activity may never follow.
If I count every conversion equally, or assign every conversion the same placeholder value, I hide the real differences in business value. When actual value can vary by 10 times or more, the algorithm will often chase the easier, lower-value conversions because they are cheaper to acquire.
This problem does not get discussed enough. A complete break in conversion data can damage a campaign faster than almost anything else.
On Day 1, the algorithm starts wondering where the conversions went. By Day 2, it begins assuming they may not be coming back. By Day 3, it can start making serious bidding changes. Within a week, many campaigns can throttle themselves down to almost nothing.
So how do I fix this? I start by choosing the signal that best represents business value, not just the easiest action to count.
Take a typical lead generation business. Some leads will never convert, while others may be worth 10 times as much as the rest.
If the form asks the right qualifying questions, I may already know which leads are which. But if I optimize for every submitted lead using a target CPA, I am telling Google that all leads are equally valuable.
Imagine an account spending $20,000 a month at a $40 target CPA and generating about 500 leads. Only 150 qualify, and maybe just 50 are genuinely high value. A basic lead may be worth $60, a qualified lead may be worth $200, and a high-value lead may be worth $600. That is a 10 times spread in value.
In that situation, I have several ways to improve the optimization signal.
Optimize for a qualified lead: I can create a new conversion action, such as “qualified lead,” and fire it only when a lead has real value. Then I can move the target CPA strategy to that conversion action, knowing the campaign will ignore leads with no value. The advantage is that I train the campaign on a more meaningful signal. The downside is that every qualified lead is still treated equally.
Assign conversion values and use target ROAS: I can add a currency value to the qualified lead based on the potential revenue it could generate if it becomes a sale. Then I can switch the campaign to target ROAS, allowing Google to optimize for return instead of simply counting leads. The tradeoff is that it may still buy larger numbers of lower-value leads if it can acquire them at the right price.
Optimize for a high-value lead: I can create a “high-value lead” conversion event that fires only for top-tier leads, with or without a conversion value. Then I can optimize with either target CPA or target ROAS, depending on whether I care more about acquisition cost or return. The advantage is stronger lead quality. The downside is that, depending on spend and volume, the data may be too limited to support this approach until the account scales.
These are only a few possible optimization signals, and they do not even go deeper into the funnel. I can apply the same thinking to lower-funnel milestones by creating separate conversion actions for events such as contacted lead, qualified contact, or high-value contact.
This sounds simple, but the conversion event I optimize for and the one I report on are not always the same. In many cases, they should not be the same. One trains the algorithm. The other tells me how that training is performing.
In the example above, a client or internal stakeholder may still want to see cost per lead. That is a valid metric. But the campaign may be optimizing for the Qualified Lead conversion, not the original lead submission.
I can keep the original lead conversion running purely as a reporting metric, so stakeholders still get their cost-per-lead view while the campaign bids on the qualified lead signal that actually reflects business value.
Same campaign. Two conversions. Two very different jobs.
That brings me back to the question I started with: did I spend more time verifying the data than writing the ad? In an automated account, data is no longer just measurement. Data is strategy.
Inspired by this post on Search Engine Land.



Now that I can use AI to generate keywords and launch a paid search campaign in minutes, it is tempting to think the hardest part of PPC and SEO work has already been handled.
But I still need more than fast keyword output if I want structured, scalable performance. I need to understand how search actually works, how people phrase intent, and how noisy search term data can distort a campaign if I do not organize it properly.
That is where semantic techniques such as n-grams, Levenshtein distance, and Jaccard similarity continue to matter. I use them to interpret messy data, apply real client context, and build frameworks that AI alone cannot reliably produce.
I think of n-grams as the “n” words that make up a keyword. In the search term “private caregiver nearby,” I can break the phrase into smaller pieces that are easier to analyze.
I use n-grams because they simplify large keyword lists without stripping away the patterns that matter.
For example, I recently restructured several campaigns that had more than 100,000 search terms. By using n-grams, I reduced those lists into much more workable sets.
Once I have those smaller sets, I can spot patterns quickly. If every keyword containing the “free” unigram performs poorly, I can exclude “free” as a broad match negative.
On the other hand, if I see that “nearby” performs especially well, I may test more local variations, build location-specific landing pages, or adjust campaign structure around that intent.
I still have to respect the limits of this method.
When I analyze SEO and PPC data, I often deal with huge volumes of long-tail search terms. Many appear only once and carry very little standalone data.
N-grams help me turn that chaotic long-tail data into clearer, more manageable intelligence.
That intelligence helps me reduce wasted spend, find new opportunities, and build a structure that can scale.
With a shorter and more digestible dataset, I can rank the top-spending n-grams that do not convert, which often become negatives, and the ones that do convert, which become positives.
From there, I build ad groups around recurring n-grams that consistently drive performance.
For example, I may find that emergency-related n-grams such as “24/7,” “same day,” or “urgent” deliver higher conversion rates. I would segment those terms so I can control budget, bidding, and messaging more precisely.
Bottom line: I use n-grams to isolate themes that deserve special attention.
Once I have identified those themes, it becomes much easier to build advanced paid search structures around high-impact n-grams and improve ROI.
Dig deeper: How to uncover hidden gems in your paid search accounts
Levenshtein distance measures the minimum number of single-symbol edits, including insertions, deletions, or substitutions, needed to turn one string into another.
That may sound complicated, but the idea is simple once I put it into practice.
The Levenshtein distance between “cat” and “cats” is 1 because I only need to add the “s.” Between “cat” and “dog,” the distance is 3.
One common PPC use case is finding brand and competitor misspellings inside search term reports.
For example, “uber” and “uver” have a Levenshtein distance of 1, so I would feel confident excluding the misspelled version from non-brand campaigns.
I can apply the same logic to keyword relevance.
If the distance between a keyword and the search terms it matches is too high, such as 10 or more, those terms probably have very little in common with the keyword and deserve review.
A low distance usually tells me those queries are close enough to be safe and do not need the same level of manual inspection.
After I use n-grams to create initial keyword clusters, I may still have thousands of search terms to organize into a practical campaign structure.
Manually sorting through 6,000 unigrams is not realistic. This is where Levenshtein distance becomes especially useful.

My goal is to merge ad groups that target nearly identical keywords so I do not end up with an overly granular, SKAG-like structure.
Too much granularity makes reporting and account management harder. It can also create inefficient bidding and wasted spend.
Using the same dataset, I calculate the Levenshtein distance between queries across different ad groups.
Then I identify the closest keyword and ad group using a predefined threshold. A threshold of 3, for example, gives me a high degree of accuracy.
This helps me consolidate keywords and ad groups with confidence. If I use a looser threshold, such as 6, I can also group or name ad groups by broader similarity or intent.
Here is a simple example showing why these three keywords can be grouped together:
| Levenshtein distance | 24/7 plumber | 24 7 plumber | 247 plumber |
| 24/7 plumber | 0 | 1 | 1 |
| 24 7 plumber | 1 | 0 | 1 |
| 247 plumber | 1 | 1 | 0 |
Dig deeper: How to use negative keywords in PPC to maximize targeting and optimize ad spend
In PPC, I use Jaccard similarity as a practical proxy for understanding the overlap between two sets of n-grams.
The calculation is straightforward: I divide the number of shared unigrams between two sets by the total number of unique unigrams across both sets.
It sounds technical, but I visualize it simply:

Here are a couple of concrete examples I use to explain the concept:
Jaccard similarity is a helpful first step for deduplicating similar keywords. I see it as a bridge between old phrase match logic and broad match modified logic.
But it has an important limitation: it does not understand meaning.
In the example above, “new york” and “NYC” should be treated as equivalent, but the Jaccard calculation sees them as different.
To handle that kind of nuance, I need more advanced techniques, which I would treat as the next layer of analysis.
Consider a cybersecurity course campaign with the following top 10 keywords:
| Keyword | Semrush average monthly searches in the U.S. |
| cybersecurity courses | 5,400 |
| cybersecurity online course | 1,900 |
| free cybersecurity courses | 1,300 |
| online cybersecurity courses | 1,300 |
| cybersecurity course | 1,000 |
| cybersecurity courses online | 880 |
| google cybersecurity course | 880 |
| cybersecurity courses free | 720 |
| cybersecurity free courses | 590 |
| cybersecurity online courses | 480 |
By combining singular and plural versions, along with reordered versions of the same idea, I can reduce that top 10 into a more actionable top four.
I could use n-grams to do this, but scaling n-gram analysis across thousands of keywords can quickly become overwhelming.
A more efficient approach is to use both similarity metrics in sequence.
The result is a clear, compressed structure that can hold up even as search term volume grows.
With the right semantic techniques, I can restructure massive keyword sets quickly and still produce consistent, high-quality results.
AI can absolutely help me create an initial summary, but I do not rely on it entirely.
Otherwise, I run into the classic problem of “garbage in, garbage out.”
Broad match can be powerful, but it also introduces more noise. These techniques help me verify that the queries I am matching stay aligned with campaign goals.
I use n-grams, Levenshtein distance, and Jaccard similarity to apply client context to raw search data and build a stable structure around real intent.
If the process feels overwhelming at first, I use this summary to decide which technique fits the job:
| Scenario | Best technique | Why |
| Identify high-intent patterns in huge search-term exports | n-grams | Surfaces themes fast; reduces dimensionality |
| Clean duplicate / near-duplicate keywords at scale | Levenshtein distance | Captures spelling + structural similarity |
| Deduplicate reordered or slightly varied keyword strings | Jaccard similarity | Order-insensitive token-based comparison |
| Create scalable clusters for campaign rebuilds | Combo: Levenshtein → Jaccard → n-gram | Sequence gives accuracy + compression |
For me, the main lesson is simple: AI can accelerate PPC and SEO work, but semantic analysis gives that work structure, signal quality, and strategic control.
Inspired by this post on Search Engine Land.



When I dive into SEO attribution, it often feels like navigating a maze. Unlike paid search, organic search doesn’t offer the same level of tracking precision. Plus, there’s a delay between the work done and the observable results, largely because of factors like fluctuating rankings that are beyond our control.
And just when I think I’ve got a handle on it, new challenges present themselves. With AI-generated answers monopolizing SERPs and LLMs that might not link back to our content, SEO attribution has become even muddier. But at the end of the day, businesses only care about one thing: tangible returns on their marketing investments.
Here’s the silver lining: It’s still within my reach to craft a compelling ROI story through SEO. It requires nuanced thinking, deep data analysis, and more complex mathematics than ever. Let me guide you through the essentials to consider while building your next SEO ROI narrative.
Let’s start with the tried-and-true formula we’ve always used for SEO ROI:
This formula is simple and executive-friendly, having served its purpose well before AI’s interference in search. But with the rise in zero-click searches and attribution challenges from LLMs, our traditional models are less effective.
Organic traffic trends might seem stagnant or declining, yet visibility could be growing through impressions or AI enhancements. We need a fresh approach to authentically represent SEO’s value. Here are my three strategies for building a more comprehensive ROI model.
With 60% of searches ending without a click—and that figure is growing—it’s crucial to see SEO as a defensive strategy as much as anything. Think of our efforts as protecting web traffic that might otherwise fall off the map.

Consider the analogy of judging a goalkeeper by goals scored; it’s more about preservation. Likewise, good SEO means defending existing traffic as much as chasing new clicks. Rather than focusing on new achievement only, remember the entire spectrum of organic revenue SEO helps secure.
Giving SEO credit for all organic revenue may seem dishonest if brand-led growth is driving results. Brand traffic can fluctuate due to multiple factors, from PR campaigns to word-of-mouth, and aren’t solely SEO’s doing.
Since we can’t achieve a neat split in Google Analytics, my workaround is to extract branded versus non-branded data from Google Search Console. Here’s an example with real-world data:

In this scenario, to fairly distribute credit, if 70% of traffic is branded and 30% is non-branded, we would attribute a portion (e.g., 10% for branded, 100% for non-branded) based on their respective impact.
With this model, a site generating $100,000 in monthly organic revenue translates to $37,000 credited to SEO, adequately recognizing its broader scope.

I’ve always considered last-click attribution as limiting for SEO insights. Organic is often the gateway to a consumer’s journey, and its role is foundational—even if there’s no direct click indicating it.
It’s vital that we recognize when organic assists a conversion, despite another channel closing the deal.

GA4, albeit less straightforward than Universal Analytics, allows us to look at fractional credit using data-driven attribution to prop up the assist role SEO plays.
For illustrative purposes, calculating the value is as simple as multiplying these credits by $100, yielding $203,303 in attributed revenue, well above what SEO alone would capture via last-click metrics.
The byproduct of our work on organic-optimized content is often overlooked in metrics. When SEO-led articles and research translate into usable material for ads or campaigns, it’s an extension of our influence across channels.
I noticed a client benefiting from fresh articles and content updates within a mere month, catalyzing conversions on unrelated channels.


Even modest figures, like 29 calls and five qualified leads, spell opportunity for growth and recognition of SEO’s extended value.
Adopting a system to track pages that have been utilized across multiple platforms is one way to give attribution where due:
This approach, despite more complex math, highlights SEO’s role in a bigger revenue picture. Always account for these values when quantifying SEO contributions.
SEO’s impact shouldn’t be restricted to merely counting revenue leaps. Tailor your approach, collaborate with analytical thinkers, and make sure to:
The primary ROI model isn’t incorrect, merely lacking in scope. As search landscapes evolve, so must our methods of measuring success.
Inspired by this post on Search Engine Land.


When I dive into platform reports, I realize they tell only part of the story. It’s the incrementality, CRM data, and broader measurement insights that truly reveal the impact of our marketing efforts.
I recall a time when PPC attribution was never flawless. Now, with AI widening the gap, it’s even trickier to pinpoint what truly influences a conversion and what ends up receiving credit.
Imagine someone discovering a product on social media, watching a YouTube review, diving into Reddit opinions, using an AI tool to compare options, and then returning through a branded Google search ad days later.
While the PPC report might show a single conversion from branded search, I see a more complex journey that needs recognition beyond the final click.
AI is reshaping brand discovery, how purchases are researched, and how ad platforms decide who sees which ads. As a marketer, I find there’s now less visibility into these platform-driven decisions.
It’s clear to me that relying solely on platform attribution data doesn’t tell the whole story of my business’s truth.
AI is changing where the journey begins
Traditionally, the search journey starts well before an advertiser sees a measurable click. Recently, findings like those from Responsive’s 2025 research indicate that a significant portion of B2B buyers favor generative AI over traditional search when exploring vendor options.
For someone entrenched in the tech sector, I can’t ignore how 80% of tech buyers are now using generative AI at least as much as traditional search.
If AI-derived lists are excluding my brand from their answers, I’m instantly out of the buyer’s consideration set, which is disconcerting.
Google’s announcements about AI advancements reaching billions of users show how rapidly the landscape is evolving. This shift means that brands like mine need a strategy to ensure we’ll still be visible.
I can’t help but notice how Pew Research Center’s findings about declining clicks when AI summaries are present have personal and business implications for me.
I also realize the importance of brand recognition, even if initial interactions don’t result in a direct click-through.
The discovery phase deeply influences the eventual conversion, yet often, only the final touchpoint gets the credit.
Dig deeper: What 4 AI search experiments reveal about attribution and buying decisions
Branded search often receives credit for demand generated elsewhere
Observing branded search, I frequently note it’s a classic case where attribution is mistaken for actual impact.
The efficiency portrayed by a branded search campaign can be misleading. Although such campaigns often perform well on metrics, primarily because they target users already familiar with the brand, they don’t always generate the initial demand.
A user might only search my brand due to exposure from other channels, such as social media, YouTube, or even an AI-generated suggestion.
Thus, distinguishing between demand capture and creation is vital. The real test is understanding whether certain conversions would have occurred absent of these campaigns.
AI-driven discovery creates a measurement blind spot
In client data, I’ve observed that direct traffic from AI platforms boasts a higher conversion rate compared to organic search, which piques my curiosity.
With these findings, I’m reminded of how much goes unmeasured. AI introduces complexities that create attribution challenges, as visible AI traffic might be just a small fraction of the journey.
Recognizing this, I understand the importance of viewing these interactions as part of a larger conversion narrative.
Ads are becoming part of AI-generated search journeys
With ads now interwoven in AI results, I face an added layer of complexity in correlating AI search with paid media.
Google’s policy of serving ads based on the commercial intent inferred from AI responses means my ads could surface earlier in the buyer’s research journey—a fact that fascinates me.
Despite these placements, I’m aware of the limited visibility and reporting challenges they present, which is both frustrating and intriguing to navigate.
Platform automation can make attribution look better while making analysis harder
Within account platforms, the allure of automation promises efficiency, yet it can blur analytical clarity.
I reflect on how broader targeting can deliver impressive surface-level results, but the lack of granular insights into why certain ads perform complicates future decisions.
This dilemma emphasizes for me the critical balance between leveraging automation and maintaining rigorous scrutiny.
I see the trap of prioritizing metrics like reach and click-through rate over genuine business outcomes.
The challenges extend to future optimizations and highlight the importance of qualifying lead quality over sheer volume.

Bringing CRM data into PPC reporting brings everything full circle, ensuring the focus isn’t lost in translation between metrics and actual business value.
Poor-quality traffic can affect future optimization
Generalized targeting can be a mixed bag. It’s beneficial when the platform’s conversion data is robust, but can yield low-quality traffic otherwise.
This traffic can skew future optimizations, making it crucial for me to pay close attention to lead quality over sheer volume.
The real question becomes, which leads convert into opportunities, and which don’t hold much promise?
Ultimately, I find that aligning PPC efforts with actual CRM outcomes leads to more meaningful insights and strategies.
Automation also creates a new layer of reporting risk
In my experience, the rise of automation has increased the need for vigilance over conversion settings and ad placements.
I remember when platform automation surprised us with inflated conversion numbers due to changes in reporting settings.
This taught me the importance of regularly reviewing each platform’s settings to ensure they align with my advertising goals.
Upper-funnel campaigns influence lower-funnel conversions
Assessing upper-funnel activities, I note that they can have sustained, profound impacts on lower-funnel metrics— a sentiment validated by research indicating significant long-term returns on initial media investments.
This insight reassures me of the need to invest in awareness and video campaigns that extend beyond immediate ROAS measurements.
Dig deeper: How to measure paid social’s impact on PPC
What PPC teams should report in 2026
A single ROAS figure no longer suffices. PPC reporting, in my view, must integrate platform attribution with broader business metrics and strategic experiments.
1. Separate demand creation from demand capture
I ensure campaigns are assessed by their unique objectives—demand creation versus demand capture.
2. Review attribution paths, not just final clicks
Using GA4’s paths report, I analyze the customer journey comprehensively to understand how channels influence conversions from start to finish.
3. Import deeper CRM outcomes
For me, importing qualified leads and sales data enriches platform optimization and aids strategic alignment.
4. Monitor the metrics sitting outside the PPC dashboard
I track various metrics—branded searches, AI-referred sessions, and lead quality, which together form a holistic view of the customer journey.
5. Test incrementality rather than assuming
Incrementality testing, such as Google’s Conversion Lift, helps me understand the genuine impact of my ads beyond the dashboard numbers.
6. Add regular human checks to automated accounts
Despite automation, I regularly review and ensure account settings and outcomes align with my overall business objectives.
Dig deeper: Why your B2B PPC metrics may be lying to you
Stop searching for one perfect attribution model
I’ve learned there isn’t a single PPC attribution model to explain the fragmented, AI-influenced customer journey we see today.
Rather than abandoning attribution, I see the value in treating it as just one piece of the puzzle alongside analytics and CRM outcomes.
The most insightful question isn’t, “Which channel received the conversion credit?” but instead, “What would be different if this activity never happened?”
Inspired by this post on Search Engine Land.


Hey there! If you’re anything like me, your backlog is overflowing, your developer is eager to know what to tackle first, and your boss is questioning why months of SEO work haven’t shown results. I’ve been stuck defending my roadmap with gut feelings, and it’s tough.
Without estimating the traffic impact of a fix before it’s live, it’s just a guess—and we both know guesses don’t cut it in budget meetings.
Let me share a framework I use to transform messy data into reliable estimates. It’s not perfect, but it’s solid enough to prioritize with confidence and explain my strategy in any meeting.
I’ve seen teams spend sprints on minor schema issues, ignoring a bigger problem—like a title tag bug affecting thousands of pages. Both were marked as “high priority,” but the traffic impact of one was negligible compared to the other.
Traffic guides true priority. While we can’t neglect brand visibility or UX, traffic offers a universal measure to compare efforts. Without quantified impact, you’re letting the loudest voice, or the most tempting technical puzzle, dictate your roadmap instead of focusing on what truly drives business value.
Plus, SERP landscapes have changed drastically. According to SparkToro, 68% of U.S. Google searches this year ended without a click, up significantly since just two years ago.
With AI Overviews intercepting traffic, the impact of a ranking improvement can vary wildly by SERP layout. Jumping to position three on a commercial keyword might be gold, but on an informational query dominated by AI? Not necessarily.
Your forecasts should account for these dynamics to avoid overpromising.
Before making any estimates, I always define the scope. Is the adjustment sitewide, a template fix, or a single-page optimization? Each scenario changes the math.
These encompass site speed, mobile usability, HTTPS migrations, and Core Web Vitals. They influence every page, but not uniformly. Address areas with pages on the borderline of failing tests first.
Fixes like rewriting title tags can have a major impact, but it’s vital to focus where traffic truly exists. Product templates might garner the majority of clicks, while blogs might trail behind.
Actions like updating meta descriptions can provide quick wins, but their small scale might not significantly impact the business. Focus on these without losing sight of larger opportunities.
To gauge traffic exposure, I turn to Google Search Console to pull essential data.

Organic clicks serve as a baseline. By filtering affected URLs and reviewing trends, I assess urgency and context.
Impressions and near-win rankings pinpoint real potential. Pages ranked 8-15 are ripe for improvements—push them higher for a CTR boost.
SERP features can greatly influence CTR. Using Search Console’s AI Mode data, I check for AI Overview dominance and adjust expectations.
Now, it’s time for educated estimation.
When I’ve optimized similar pages before, I use those outcomes as future baselines. Keeping track of past projects builds a valuable benchmarking library.
Review competitors and pinpoint their advantages, whether it’s content depth, UX, or backlinks. Aiming to close these gaps can justify a ranking gain.
Forecasting can falter without updated CTR assumptions. Seer’s research shows drastic CTR changes due to AI integration. Staying aware of these shifts is essential.
One definitive forecast can be deceptive. I prefer building three—conservative, expected, and aggressive—to provide a range that reflects real possibilities.
In the conservative model, expect partial implementations and competition improvements. With the expected model, rely on solid historical benchmarks. The aggressive model accounts for perfect execution and fast indexing.
This comprehensive view guides stakeholders through potential outcomes, ensuring transparency and credibility.
After forecasting, I compare traffic impact predictions to effort levels using frameworks like RICE. This demonstrates which initiatives offer the most value for the effort and helps align priorities with business goals.
A well-organized roadmap doesn’t just appeal to me but speaks clearly to everyone involved, highlighting efficiency and business impact.
Inspired by this post on Search Engine Land.
