Offline Conversion Tracking for Agencies: A Client by Client Operating Guide
By Rajesh Kumar, Founder, Attribi ·
Offline conversion tracking for agencies works when each client has an agreed business outcome, a reliable CRM record, an accountable owner, and a reporting definition everyone understands. Connecting the accounts comes after those decisions. Otherwise, an agency can deliver conversions successfully while reporting the wrong revenue or changing a campaign's optimization target without realizing it.
The practical goal is to connect paid acquisition with qualified leads and sales, then give the media buyer and client a consistent way to use that evidence. The same process should survive a new account manager, a renamed sales stage, and eventually a change of agency.
This guide proposes an agency operating process. Its approval rules and review documents are recommendations, not promises of automated Attribi features. For implementation details, the existing Google Ads offline conversion guide and LinkedIn offline conversion guide cover the platform work. Here, the question is how to run that work across clients without losing control of what the numbers mean.
Decision 1: Define the client decision
Start the onboarding conversation with the decision the client wants to make. A demand-generation director may want to move budget between campaigns. A founder may want to know whether paid acquisition brings profitable customers. A sales leader may need fewer low-quality inquiries.
Those questions require different evidence. Write one sentence describing the first useful decision, such as: "Compare cost per sales-accepted lead across our US search campaigns once the leads have had 30 days to qualify." It defines the outcome, scope, and maturity period without pretending that every deal closes in a month.
Then distinguish four things that often become one "tracking works" claim:
- Delivery: did the destination accept the submitted event?
- Matching: could the destination associate the supplied identifiers with someone or an eligible advertising interaction?
- Attribution: did its rules give a campaign credit within the applicable window?
- Incrementality: did advertising cause an outcome that would otherwise not have happened?
The first three help operate and interpret conversion measurement. Incrementality needs separate causal evidence, usually a suitable controlled test. A successful upload is insufficient evidence for the fourth claim.
Agree how to describe unavailable evidence, too. If a platform exposes aggregate diagnostics but no event-level match decision, record that limit. Do not turn "accepted" into "matched" simply because a spreadsheet needs a green cell.
![]()
This framing also prevents an agency from promising identical totals everywhere. The CRM counts business records. An attribution report applies a model to available touchpoints. Each ad platform applies its own eligibility and attribution rules. Reconciliation should explain those differences rather than force them to disappear.
Decision 2: Define the business event
Ask the client to bring several real CRM records to onboarding: an obvious qualified lead, a rejected inquiry, a won deal, a repeat customer, and a deal with incomplete data. Work through each before approving the event definition.
"Qualified" might mean a sales-accepted opportunity with a confirmed need. Another client may use a completed consultation. An agency can standardize the questions it asks while retaining each client's actual qualification criteria.
Create a short event definition covering:
- The CRM object and exact stage or status that qualifies
- The event's unit: person, opportunity, order, or another documented unit
- Which timestamp represents the business event
- The value field, currency, and treatment of tax or recurring contracts
- How repeat purchases, reopenings, cancellations, and corrections are handled
- The named client owner who approves definition changes
Keep lead, qualified, and won outcomes separate. Adding all three produces funnel activity, not a unique customer count. The client should also decide whether "revenue" means booked contract value, invoiced revenue, or cash collected. A CRM amount does not establish those definitions by itself.
Associations deserve their own test. HubSpot supports relationships between contacts, companies, and deals, including multiple contacts attached to one deal. An association describes a relationship; the integration still needs a rule for using it. HubSpot's association documentation explains the underlying record structure. Review missing contacts and multi-contact deals before assuming every revenue row maps cleanly to a person.
Attribi's HubSpot integration documents once-per-contact, per-stage reporting. Its Salesforce integration likewise describes the first qualified and first won opportunity for each contact; later renewals or expansions are not additional won conversions today. It also excludes blank or zero-value Salesforce opportunities from revenue uploads. Put those limits into the reporting definition. A first-win acquisition measure should never be labeled complete lifetime revenue.
For other CRM routes, confirm their specific value and eligibility rules. Before launch, the agency should know both what enters the measurement and what is intentionally left out.
Decision 3: Assign ownership and approvals
Decide ownership while the relationship is new. A useful default is for the client to retain its business accounts and an enduring administrator, while the agency receives the access needed to operate them. Record the actual arrangement rather than assuming a shared login counts as a handover plan.
Your access register should name the CRM administrator, ad-account administrator, website implementer, measurement owner, and media buyer. One person may fill several roles. What matters is knowing who can repair an expired authorization and who may approve a bidding change.
Google Ads manager access and conversion ownership are separate decisions. Linking an account to a manager provides an account-management relationship. Cross-account conversion tracking determines which account supplies conversion actions. Google says an account cannot simultaneously use account-specific and cross-account conversion actions. Switching the conversion account can also affect campaign goals. Document that dependency before a migration or agency exit.
In Attribi, each client uses a separate workspace. The agency product page describes workspace-specific accounts, data, and owner, admin, editor, and viewer roles. Either the agency or client can hold ownership. It also explicitly states that there is no combined all-client dashboard and no white-label interface. Build your service around those actual boundaries.
Our recommendation is to grant access per client, record which organization pays, and give a client-side administrator a verified recovery route. A buyer assigned to one account should not receive another client's exports merely because both accounts appear in the same monthly reporting folder.
For European audiences, include a privacy review before moving customer data. Google's EU user consent policy covers the EEA, UK, and Switzerland and specifies disclosure and consent duties for relevant uses. Have the client's privacy owner approve the intended data flow and applicable requirements. Neither a server-side connection nor a hashed email automatically resolves that review.
Start a separate Attribi workspace for your first client pilot, with the owner and access arrangement agreed before connecting accounts.
Decision 4: Agree the acceptance evidence
Give the implementation specialist and media buyer separate sign-off responsibilities. The specialist establishes that the intended records arrive correctly. The buyer establishes what the receiving account will do with them.
For implementation acceptance, follow a small, approved sample through the system. Compare the source record, event identity, business timestamp, value, currency, destination, and upload result. Include exclusions, not just successful records. A blank-value deal, a repeated stage transition, and a record without a usable contact test different weaknesses.
Synthetic identifiers can demonstrate field transport in a controlled test. They cannot demonstrate a real advertising match or campaign attribution. Keep test records out of production optimization and revenue reporting using a documented test method.
Review every existing sender before adding another. A native CRM connector, an automation, and an agency integration may already submit the same outcome. Google's transaction-ID guidance explains duplicate detection within the same conversion action. That does not establish safe deduplication across arbitrary actions or tools. Identify the authoritative sender and validate the destination's actual deduplication rules.
Counting is another independent setting. Google's counting documentation distinguishes one conversion per ad click from every conversion for an action. Choosing "one" is not a substitute for controlling duplicate event delivery.
For LinkedIn, include the conversion rule and campaign associations in acceptance evidence. Its Conversions API documentation states that only campaigns associated with a rule are eligible for attribution under that rule. An upload receipt alone will not establish that the intended campaigns can receive credit.
The buyer then reviews the effective campaign goals. Attribi's conversion mapping guide says mapping existing Google or Microsoft conversions can promote them to primary or make them eligible for bidding. Treat mapping as a potentially consequential configuration change.
Google's primary and secondary action guidance adds an important exception: secondary actions included in a custom goal are used for bidding. Check the campaign's effective goals after saving; a secondary label alone does not prove an observation-only setup.
The handoff should contain the accepted sample, unresolved exclusions, a before-and-after goal record, and two named approvals. The CRM offline conversion tracking QA checklist gives the implementation specialist a record-level method for assembling that evidence. "Connection successful" is too narrow a completion standard for a live client account.
What this looks like across three agency clients
The following example is illustrative, not a customer case study or performance benchmark. All figures are invented to show the reporting method.
Imagine an agency managing two US businesses and one European business. Each has a separately defined paid-acquisition cohort: leads acquired during an agreed month, with outcomes observed through the same stated 90-day maturity point. Spend belongs to that acquisition cohort. The report does not divide this month's newly closed deals by unrelated current-month spend.
Client A US home services company
The client spends $12,000 on the selected acquisition campaigns. The cohort produces 80 sales-accepted leads and eight first-time won customers with $48,000 in eligible booked revenue.
- Cost per qualified lead: $12,000 / 80 = $150
- Cost per first won customer: $12,000 / 8 = $1,500
- Eligible cohort revenue / spend: $48,000 / $12,000 = 4.0×
These are cohort measures from the agreed CRM and acquisition records, not a claim that every platform will report eight conversions. The agency still checks matching and platform attribution separately.
The useful recommendation could be to investigate which campaigns generated accepted leads. It would be premature to call the 4.0× ratio profit: installation costs, refunds, agency fees, and other expenses are outside this calculation.
Client B US B2B software company
This client's cohort costs $20,000, produces 50 qualified contacts, and has five first won outcomes worth $30,000 under the approved revenue definition. Another $12,000 comes from expansion deals for contacts that already had a won outcome.
The acquisition report shows $400 per qualified contact, $4,000 per first won contact, and $30,000 / $20,000 = 1.5× eligible cohort revenue to spend. The separate CRM reconciliation shows the $12,000 expansion amount outside this first-win measure.
If the agency used $42,000 in the numerator while calling the report first-win performance, it would silently change the definition. If it discarded the expansion entirely, finance could reasonably ask why the report omitted real business revenue. Showing the scope difference answers both questions.
This Salesforce client also needs a matching caveat. Attribi documents CRM-owned click-ID matching for Salesforce revenue as planned; website-tracked click IDs are a separate supported route. The agency should validate the available path rather than promise that any click ID stored in Salesforce will be used.
Client C European professional services firm
The third client spends €8,000, produces 40 qualified contacts, and records four first wins totaling €24,000. Its figures are €200 per qualified contact, €2,000 per first win, and 3.0× eligible cohort revenue to spend.
The client has not installed Attribi's website script. Its approved CRM-based setup can support outcome reporting and available matching signals, but the agency cannot present a reconstructed multi-touch browsing journey. Attribi's HubSpot documentation explicitly distinguishes script-free outcomes from script-based page views and multi-touch paths.
![]()
An agency summary can show $32,000 of US-client spend and €8,000 of European-client spend. It should not add them into "40,000" without a documented exchange-rate convention. Even after currency conversion, a blended efficiency ratio can conceal different sales cycles and event definitions. Keep the client-level decisions visible.
Budget the measurement service separately. Attribi's current pricing lists Growth at $99 per workspace per month, with revenue integrations on Growth and above. Three qualifying Growth workspaces would therefore be $297 monthly before applicable tax, subject to each workspace's limits. There is no assumption of pooled agency volume.
Book an Attribi walkthrough of your agency's client mix to review the CRM routes, reporting scope, and workspace requirements before rolling out beyond the pilot.
Run a monthly review that produces decisions
The month-end meeting should begin with data health, then explain performance. Otherwise, a broken connection can masquerade as a campaign problem.
Assign an owner to review authorization failures, stale source data, missing values, unexpected changes in event volume, and unreviewed mapping changes. Set the alert threshold against each client's normal activity and observed processing delay. Five quiet days mean something different for a daily lead generator and a business that wins two contracts a quarter.
Attribi processes CRM outcomes on a schedule. Confirm the current configuration and observed interval for the client's integration, then build reporting deadlines around verified behavior. Avoid promising immediate updates from a CRM stage change.
Define who communicates with the client during an incident. The first update should state the last verified refresh, the affected accounts or outcomes, and the next investigation step. A temporary reporting gap should be labeled incomplete rather than presented as zero revenue. Keep the last complete period available for reference and avoid making a budget recommendation from the affected comparison. After recovery, reconcile the missing period and record whether any events remained ineligible. This incident note can be short; its purpose is to prevent a technical problem from becoming an unexplained change in the client's business results.
Use a consistent monthly reporting note:
- Scope: acquisition dates, outcome cutoff, currency, event definition, and attribution basis.
- Coverage: eligible CRM outcomes, documented exclusions, delivery results, and available match diagnostics.
- Performance: qualified outcomes and eligible revenue alongside the corresponding spend.
- Decision: what to investigate or change, who approves it, and when the result will be reviewed.
Build the client-facing summary from aggregate figures and the agreed scope. Keep record-level evidence in a restricted working file for the people who need to investigate exceptions. A campaign review usually does not need customer email addresses, phone numbers, or an unrestricted CRM export. The agency can explain an exclusion without exposing the underlying person.
Reconcile spend against the relevant ad-account report as well. A supported conversion destination does not automatically establish supported spend import. Where a cost source is missing, identify the external spend report used and apply the same date, currency, and campaign filters before calculating a ratio.
Keep a separate change log for sales-process edits. A jump in qualified leads may follow a relaxed qualification rule rather than better ads. A drop in revenue may follow a missing amount field or longer sales cycle. Annotate those changes before comparing periods.
Use consistent cohort maturity when comparing results. Last month's leads may have had only 20 days to close while an earlier cohort has had 80. Label preliminary cohorts and revisit them. This is an analytical reporting practice; platform upload windows still need to be respected independently.
Never sum platform-attributed revenue into unique company revenue without reconciliation. Several platforms may claim influence on the same customer. Preserve a deduplicated business-outcome view, show each platform's reporting separately, and state the attribution basis for any cross-channel allocation.
Make offboarding part of the original service
A clean exit is easier when the original access register is accurate. Before removing agency access, identify which connections use agency identities, who will own the workspace, and whether manager-owned conversion actions create a dependency.
Prepare a handover containing event definitions, account and conversion identifiers, approved field mappings, current goals, exclusions, reporting cutoffs, and unresolved issues. Transfer only the client's data to its authorized recipients. Obtain separate permission before reusing client results in a case study.
Agree the cutoff and replacement sender before disabling uploads. Verify the receiving team can see the necessary records and own the next incident. Avoid deleting historical conversion actions just to tidy an account during handover; plan any change around its reporting and campaign consequences.
![]()
Frequently asked questions
Does every client need the same CRM stages?
No. Standardize the definition process and evidence required. Each client's qualified event should still reflect its sales process. Compare cross-client figures only when their definitions genuinely support the comparison.
Can an agency run Attribi without a website script?
CRM-based outcomes are possible, with capabilities depending on the integration and available identifiers. The pixel-less setup guide covers field capture. A script-free setup does not provide the website history needed for full multi-touch paths.
Should closed won conversions become the bidding target immediately?
That needs a separate decision based on reliability, volume, delay, values, and current campaign goals. First verify the effective configuration and the event's suitability. Connecting a revenue source is not enough evidence to make the change.
What should an agency promise a client?
Promise a defined scope, documented exclusions, accountable maintenance, and a repeatable explanation of the numbers. Avoid promising perfect matching, complete lifetime revenue, or causal proof from attribution alone.
Start an Attribi trial for one client workspace and validate the full handoff before expanding. Every new workspace currently starts with 30 days on Pro, with no card required, as listed on the pricing page.