SearchFIT.ai: Track and grow your brand in AI search
Back to Blog
How-to Guide 18 mins

Measuring AI-Search Referrals Without Mixing Product and Services Funnels

A practical method for separating SearchFIT product acquisition from PADISO services leads, with a worked measurement model, query, and accuracy tests.

The PADISO Team ·

Prerequisites

This guide assumes you can inspect your website’s analytics setup and, if available, read a warehouse table or export containing session and conversion records. You do not need to change your analytics platform before deciding what counts as a product acquisition and what counts as a services lead. Start with the business definitions; implement them in the tools you already use.

Before making changes, gather four things: the URLs or route patterns that belong to SearchFIT, the pages that represent PADISO services, the conversion actions each team considers meaningful, and the people who can confirm whether a recorded conversion became a real business outcome. If those lists are not agreed, pause before building a dashboard. A report cannot resolve an undefined funnel.

This article uses SearchFIT for the product funnel and PADISO for the services funnel. That separation is about what a visitor is trying to do and what outcome the business is measuring. It does not presume that either funnel has a particular implementation, feature set, or analytics configuration.

Pro tip: Write the definitions in a short measurement note before editing tags or reports. Include an owner, a date, and a version. If the definitions change, you will need to know which reports use the old and new rules.

The goal is not to prove how often an AI system mentions a company. The goal is to measure the visits that analytics can attribute to a source and keep those visits connected to the correct product or services outcome. For background on the implementation problem of AI-originated inbound traffic, see a practical teardown of AI-referred leads. For question research that can inform landing-page planning, see field notes on what buyers ask about AI vendors.

Step 1: Draw the boundary between the two funnels

Begin with destination and intent, not with the referral source. A visitor arriving from an AI assistant could land on a SearchFIT product page, a PADISO services page, a general article, or another destination. The source alone does not tell you which funnel should receive the conversion. The destination and the action tell you what the visitor was trying to do.

Make a small route inventory. Include canonical paths, known aliases, campaign landing pages, and any shared pages that offer both product and services next steps. Assign each route one of four values: searchfit_product, padiso_services, shared, or other. A shared page is not automatically both funnels. It stays unassigned until a user action or a later destination provides enough evidence to route it.

For example, a visit to a SearchFIT product page followed by a product signup belongs to the product funnel. A visit to a PADISO service page followed by a consultation request belongs to services. A visit to a general article followed by no meaningful action is an unconverted visit to an unassigned content route, even if its source appears to be an AI assistant.

This distinction also prevents a common reporting mistake: treating every form submission as the same kind of lead. A product account creation, a product trial request, a contact request about implementation, and a services consultation are different business outcomes. They may all be useful, but summing them into a single conversion total makes neither funnel easier to manage.

Create a route register before implementation. A useful first version has columns for route pattern, funnel owner, intended audience, primary action, and exceptions. Record the date checked. A URL rule should not silently decide the funnel when the page has changed purpose, has multiple calls to action, or is shared by multiple teams.

Route or actionFunnel assignmentPrimary conversionDo not count as
SearchFIT product destinationSearchFIT productProduct-defined signup or activation eventPADISO services lead
PADISO services destinationPADISO servicesQualified services inquirySearchFIT product signup
Shared article or resourceUnassigned until action or route is knownNone by defaultAutomatically both funnels
General contact formRoute by selected topic or confirmed destinationCorrectly classified inquiryProduct signup without evidence

Treat this table as a starting policy, not a claim that every site has these exact paths or actions. Replace the examples with the routes and events the business actually operates.

flowchart TD
  accTitle: Separate AI referral measurement by business funnel
  accDescr: A referral is classified within the landing site’s own property and conversion definition. Product sign-ups and services enquiries remain separate outcomes.
  N0["Identify landing host"] --> N1["Select correct GA4 property"]
  N1["Select correct GA4 property"] --> N2["Inspect session source"]
  N2["Inspect session source"] --> N3["Validate relevant lead event"]
  N3["Validate relevant lead event"] --> N4["Compare within same funnel"]

A referral is classified within the landing site’s own property and conversion definition. Product sign-ups and services enquiries remain separate outcomes.

Step 2: Define the measurement grain and event dictionary

Choose the level at which each metric is counted. A session is a visit-level unit; a person may create several sessions. A conversion event is an occurrence; one session can create multiple event rows. A qualified lead or product account is a business entity, and it may be associated with more than one session or event. These are different grains and should not be added together as if they were interchangeable.

For acquisition reporting, begin with sessions by source and funnel assignment. Google Analytics describes its traffic acquisition reports as reporting sessions by source; that measurement scope is not the same as search click counts or a count of every time a system displayed a result. See the traffic acquisition report explanation. This is why a source report can answer a useful referral question without becoming a complete measure of AI-search visibility.

Write an event dictionary with a row for each business action that matters. Keep the names stable and define them in plain language. For each event, specify its firing condition, funnel, identity key if one exists, and whether it is an acquisition event, a product step, a services inquiry, or a downstream business outcome.

A compact dictionary might include product_signup, product_activation, services_inquiry_submitted, and services_lead_qualified. Those are illustrative labels, not required platform event names. Do not make a form view or button click equivalent to a completed signup or accepted inquiry merely because it is easier to instrument.

Decide whether the report answers a session-attributed question or a person/account-attributed question. For example, “How many sessions from a recorded AI referral reached a SearchFIT signup?” is a session-oriented question. “How many new SearchFIT accounts were first acquired from an AI referral?” requires an account identity and a defined first-touch rule. The second question cannot be answered reliably by counting signup events alone if an account can generate repeated events.

Write one sentence for each metric before putting it on a chart. A useful format is: “Count distinct [unit] where [eligibility rule], grouped by [source rule] and [funnel], during [date rule].” This exposes disagreements early. If one person means sessions and another means leads, a shared chart title will not make the metric shared.

Step 3: Preserve source information without overstating it

Keep the observed source value available at the session level and record how it was assigned. Do not collapse a named referrer, a campaign-tagged visit, a direct visit, and an unknown source into a single “AI” category just to make a chart simpler. A source category should state what the tracking record supports, not what the analyst suspects happened.

Create a small, reviewed mapping from known referral values to a reporting group such as ai_referral_observed. Keep the original source and medium alongside that group, and include an unclassified or other_referral option. This lets a reviewer see whether the group is built from a handful of explicit referrers or a broader rule. Keep the mapping versioned: adding a source match can change historical-looking totals if the report reapplies the new rule to old rows.

Use campaign parameters only where the team controls the link and has a reason to add them. They can help distinguish a deliberately tagged link from an observed referral, but they cannot reveal every exposure that led to a visit. A person may see an answer in an AI product, remember a brand, and later type the address directly. That journey may be valuable to the business while remaining unidentifiable as an AI-assisted discovery in session analytics.

Do not treat a referral exclusion as an AI-search measurement method. Analytics referral settings can affect session attribution, so changing them can alter how a visit is classified. That effect does not mean all visits from AI systems are now represented, or that every visit assigned to another source was actually AI-influenced. Review the consequences before changing attribution settings, and consult the referral exclusion guidance for the setting’s stated role.

A practical source taxonomy separates evidence from interpretation. For instance, observed_referrer=example-source is a captured value; reporting_group=ai_referral_observed is a rule-based classification; assisted_by_ai=unknown is a limit. Keeping all three concepts distinct makes it easier to explain both what the dashboard can say and what it cannot.

Step 4: Make the conversion contract explicit

For each funnel, define the primary conversion and any supporting steps. SearchFIT’s primary product conversion might be a signup or another product-defined milestone; choose the one that best represents the acquisition question. PADISO’s primary services conversion might be a submitted inquiry, with qualification tracked later. Do not count a services form submission as a qualified opportunity before someone has assessed it.

Specify exactly when the event is considered complete. If a form has a confirmation state, the event should represent successful submission rather than opening the form or clicking its button. If a product flow has multiple stages, state whether the report counts account creation, first use, or another verified milestone. A useful metric name distinguishes these states instead of labeling all of them “conversion.”

Attach a stable conversion key where the system provides one and where its use is appropriate. A form submission identifier or product account identifier can help deduplicate repeated event delivery. If no stable key exists, document the limitation and avoid claiming the total represents unique people or accounts. Never manufacture an identity by combining unrelated fields without an approved, understood rule.

Keep acquisition and outcome measures in separate columns. For example, a report can show observed referral sessions, sessions that reached a defined product action, distinct product accounts attributed by a stated rule, services inquiries submitted, and inquiries later qualified. The numbers answer different questions; they should not be collapsed into a single blended “AI leads” total.

Downstream qualification also needs a time rule. A referral session on the final day of a reporting period may produce a services inquiry that is reviewed later. Either report the inquiry submission date and its later qualification status, or define a maturity window for qualification reporting. Do not silently compare a fully matured previous month with an immature current month.

Step 5: Build a small, inspectable data model

If you have a warehouse or a reporting export, create a derived session table rather than repeatedly rebuilding classification rules inside individual charts. A practical model has one row per session, with fields such as session_id, session_date, source_original, medium_original, source_group, landing_path, funnel_assignment, and the appropriate conversion keys or flags. Keep a separate conversion table if one session can create multiple conversions.

This is an illustrative schema, not a claim about any analytics vendor’s native table layout. Adapt it to the data you actually have. The important properties are an explicit grain, retained source evidence, an explainable funnel rule, and a stable relationship to conversion records. If your team needs consistent definitions across dashboards and agent-assisted analysis, a semantic layer can help centralize business terms; see how a semantic layer supports consistent agent queries.

Here is an illustrative SQL pattern for normalized tables. It assumes a sessions table with one record per session and a conversions table with one record per conversion occurrence, including a stable conversion_id, session_id, funnel, and conversion_type. The tables and fields are examples; they are not vendor-specific schemas.

WITH eligible_sessions AS (
  SELECT
    session_id,
    session_date,
    source_group,
    funnel_assignment
  FROM sessions
  WHERE session_date >= DATE '2026-09-01'
    AND session_date <  DATE '2026-10-01'
    AND source_group = 'ai_referral_observed'
    AND funnel_assignment IN ('searchfit_product', 'padiso_services')
),
conversion_counts AS (
  SELECT
    s.session_id,
    s.funnel_assignment,
    COUNT(DISTINCT CASE
      WHEN c.funnel = 'searchfit_product'
       AND c.conversion_type = 'product_signup'
      THEN c.conversion_id
    END) AS product_signup_count,
    COUNT(DISTINCT CASE
      WHEN c.funnel = 'padiso_services'
       AND c.conversion_type = 'services_inquiry_submitted'
      THEN c.conversion_id
    END) AS services_inquiry_count
  FROM eligible_sessions AS s
  LEFT JOIN conversions AS c
    ON c.session_id = s.session_id
  GROUP BY s.session_id, s.funnel_assignment
)
SELECT
  funnel_assignment,
  COUNT(DISTINCT session_id) AS observed_referral_sessions,
  SUM(product_signup_count) AS product_signup_events,
  SUM(services_inquiry_count) AS services_inquiry_events
FROM conversion_counts
GROUP BY funnel_assignment
ORDER BY funnel_assignment;

The query keeps the two conversion types separate and counts sessions at session grain. It deliberately does not calculate a blended conversion rate, because that would hide differences in event definition and denominator. The example’s date range is illustrative. Replace it with a reporting period that is appropriate to your operation and verify your database’s date syntax and null behavior before using it.

Notice one important limitation: the LEFT JOIN preserves eligible sessions with no conversion, while the final output reports only totals. To calculate a session conversion rate, divide the number of eligible sessions with at least one qualifying conversion by eligible sessions for the same funnel and period. Deduplicate at session level first. Do not divide event occurrences by sessions and label the result a session conversion rate; repeated events can produce a value above one.

A second limitation is attribution. This query uses the session’s assigned source group. It does not establish first-touch acquisition, cross-device identity, or causal influence. If leadership asks a first-touch question, build a separately defined model with its own identity and lookback rules rather than relabeling this session report.

Step 6: Validate the model with an accuracy and access test

Before publishing the dashboard, prepare a small fixture of known sessions and conversions. Make the expected answer explicit so a reviewer can compare the query output with a hand-calculated result. A useful test has at least one product conversion, one services inquiry, one session with no conversion, one non-AI source, one shared route with no assigned funnel, and one repeated conversion event that should deduplicate by conversion key.

For example, imagine six fixture sessions: two observed AI-referral sessions assigned to SearchFIT, two assigned to PADISO services, one observed referral landing on an unassigned shared article, and one organic-search session. Give one SearchFIT session a single signup event; give the other two product signup event rows the same conversion identifier to test deduplication. Give one services session a submitted inquiry and the other no conversion. The expected report includes four eligible sessions, one distinct product signup, and one services inquiry. The shared route and organic session are excluded by the stated rules.

This is an illustrative test design, not a claim that any test has been run. Its purpose is to catch common errors: including unassigned traffic, crossing funnel boundaries, counting repeated delivery as two outcomes, or using event totals as session totals. Record the fixture, query version, expected result, actual result, reviewer, and date. When a result differs, investigate before changing the expected value.

Also run an access test. Use an authorized analyst role and a deliberately restricted role, then verify that each can see only the intended datasets and columns under the organization’s existing access rules. The test is not complete merely because the dashboard opens. Confirm whether the restricted role can query the underlying conversion records, export them, or access a wider table through another view. Record the observed result and route any discrepancy through the organization’s normal data-access process.

For agent-generated queries or other automated analysis, test both wrong answers and unauthorized data access against a controlled fixture before allowing results to influence decisions. The deeper test-design discussion is covered in a test pack for agent-generated SQL; this article’s purpose is to define the two acquisition funnels and their reporting boundary.

Warning: A query returning a plausible number is not an accuracy test. Accuracy requires a known input, an expected output, and a check that the query’s grain and exclusions match the metric definition.

Step 7: Publish separate views and explain the limits

Build one view for SearchFIT product acquisition and one for PADISO services acquisition. They can share a source taxonomy and reporting period, but each should show its own eligible sessions, defined conversion events, and downstream outcome. If a combined executive view is useful, present the funnels side by side rather than adding incompatible totals.

Give each chart a title that names the unit and the rule. Prefer “Observed AI-referral sessions with a SearchFIT signup event” over “AI product leads.” Prefer “PADISO services inquiries submitted from sessions classified as observed AI referrals” over “AI-generated opportunities.” The more precise phrasing may be less compact, but it keeps the chart from claiming an intent or business status that the data does not contain.

Show exclusions and unclassified traffic close to the main numbers. A reader should be able to see how many visits were omitted because the destination was shared or unknown, and how many were assigned to a known source group. If the dashboard only shows a conversion count, reviewers cannot tell whether a change came from more visits, a changed mapping, or a changed conversion rule.

Add a short note explaining attribution and time basis. State whether source is session-level, whether conversions are deduplicated by event or business key, and whether services qualification is shown by submission cohort or qualification date. This note is part of the metric, not decorative dashboard copy.

Search Console clicks and analytics sessions answer different questions and can disagree for reasons that do not mean either system is necessarily broken. Avoid expanding this article into a reconciliation project; use the separate explanation of click and visit differences if that issue is blocking interpretation. Keep the current dashboard focused on attributed sessions and the distinct outcomes of the two business funnels.

Step 8: Diagnose failures by tracing a complete visit

When a number looks wrong, trace one record from arrival to outcome before changing a global setting. Start with the original source value, the session date, the landing path, and the assigned funnel. Then inspect whether the intended conversion event exists, whether it has a stable identifier, and whether the reporting query includes or excludes the row as designed.

If AI-referral sessions fall suddenly, compare the source mapping version and the distribution of original source values before concluding that demand changed. A mapping rule may have changed; a referral may have been lost during a redirect; or a landing route may have been reclassified. Those are plausible failure modes to investigate, not assumed explanations. Preserve the previous mapping so you can compare the effect of a change.

If the total conversion count rises while business outcomes do not, inspect event duplication and event timing. A form event may fire on both a confirmation screen and a return visit, or a product event may be delivered more than once. Compare raw event occurrences, distinct conversion keys, and downstream records as separate measures. Do not suppress an unexpected increase by changing the report until the underlying record pattern is understood.

If SearchFIT signups appear in PADISO services totals, check the route assignment and conversion-to-funnel join. A shared page, generic form, or fallback value may be causing the crossing. Fix the classification rule at its source and rerun the fixture. A one-off chart filter can conceal the defect while leaving the same error in another report.

If services inquiries appear lower than the sales team’s records, check whether the report counts submitted inquiries, qualified leads, or only records with a known source. The business system may contain direct or manually entered inquiries that analytics cannot attach to a session. Preserve those records in the services process, but do not force them into an AI-referral category without supporting evidence.

A source that disappears from analytics does not establish that AI-assisted discovery stopped. Visitors may arrive through unobservable paths, use privacy controls, or return later through a different session source. Describe the report as observed, attributed referral traffic. For a separate diagnostic of source disagreements between search and analytics systems, use the linked explanation rather than treating one report as a universal census.

Step 9: Set a lightweight operating cadence

Assign an owner to the route register, source mapping, event dictionary, and report definition. The owner need not do every implementation task, but someone must know which rule governs each number. Ask funnel owners to confirm any changes to product milestones or services qualification before those changes enter a dashboard.

Review the data when routes, forms, product flows, or referral mapping change, and on a regular cadence that fits the reporting process. The purpose is not to reapprove every event repeatedly. It is to catch meaningful changes that alter the question being answered. A renamed event, changed form destination, or new shared landing page can break comparability even while charts continue to render.

Keep a short change log: date, rule changed, reason, affected metric, and whether historical data was recomputed. If source grouping rules are applied retroactively, mark the point at which the report changed. If they apply only going forward, say so. Either choice can be reasonable; an invisible change is not.

Escalate only the measurement work that needs specialist help. For example, a team with several reporting systems may need support to turn the definitions into governed, reusable models. If that is the bottleneck, embedded analytics support is a relevant next step. The immediate priority remains the same: agree on the funnel boundary and the metric before building another layer of reporting.

Printable measurement worksheet

Use this worksheet in a planning session or paste it into the team’s operating notes. Fill every line before calling the report ready. If a field is unknown, label it unknown and assign an owner; do not replace it with an assumption that makes the chart easier to complete.

  • Reporting question: Write one sentence describing the decision this report should support.
  • SearchFIT route rules: List the routes assigned to the product funnel, including aliases and exceptions.
  • PADISO services route rules: List the routes assigned to services and the rules for shared destinations.
  • Session source evidence: Name the observed source field, the classification rule, and the retained original value.
  • SearchFIT conversion contract: Define the event, completion condition, deduplication key, and reporting date rule.
  • PADISO inquiry contract: Define submission separately from later qualification and identify each relevant date.
  • Metric grain: State whether each number counts sessions, event occurrences, unique conversion keys, accounts, or leads.
  • Exclusions: Record how unknown sources, shared routes, direct visits, and incomplete records are handled.
  • Accuracy fixture: List controlled inputs, expected totals, query version, actual result, and reviewer.
  • Access test: Record which roles were checked, which records they could access, and any discrepancy requiring follow-up.
  • Report wording: Check that titles say observed or attributed where appropriate and do not imply complete AI visibility.
  • Change owner: Name the person responsible for the route register, mapping, and change log.

The worksheet is complete when a second analyst can use it to reproduce the same classification and explain why a record belongs in one funnel, the other funnel, or neither. If two reviewers disagree, resolve the definition before tuning the chart.

Summary: keep the evidence separate

The reliable starting point is a pair of clearly defined funnels, not a single AI-referral total. Assign routes by business purpose, preserve the observed source, define each conversion at its proper grain, and report SearchFIT product outcomes separately from PADISO services inquiries and qualifications.

Test the query with known records and expected results. Verify both the accuracy of the classification and the access behavior of the roles that will use the report. Keep the limits visible: session attribution measures recorded visits under an explicit rule; it does not count every AI-assisted discovery or prove that a referral caused a conversion.

With those distinctions in place, a change in product signup activity can be discussed as a product-funnel result, and a change in services inquiries can be discussed as a services-funnel result. That is more useful than a larger combined number whose source, unit, and business meaning cannot be traced.

Want to talk through your situation?

Book a 30-minute call with Kevin (Founder/CEO). No pitch - direct advice on what to do next.

Book a 30-min call