Salesforce Offline Conversion Tracking – GCLID, UTM’s & Attribution

Table of Contents

Signup to our Newsletter

Google Ads can tell you which campaigns generate enquiries. Salesforce can tell you which enquiries become qualified leads, sales opportunities and paying customers. Connecting the two allows advertising decisions to reflect the quality and value of the business generated.

For service providers, this closes an important measurement gap. A campaign generating inexpensive enquiries may look successful in Google Ads while producing little revenue in Salesforce. Another campaign may attract fewer, more expensive leads that convert into substantially more valuable customers.

Offline conversion tracking makes these differences visible. By returning Salesforce outcomes to Google Ads, you can measure cost per qualified lead, customer acquisition cost and advertising revenue, then use suitable outcomes to guide automated bidding.

The implementation has three parts: capture the visitor’s attribution and matching information, retain it through the Salesforce sales process, and send the relevant milestones back to Google Ads. Our wider Google Ads CRM integration guide explains the strategy behind this connection.

Salesforce Offline Conversion Tracking Zapier 1 Add UsersChoose How to Capture Attribution Data

Start with the software already in place. There are three main approaches for the website capture layer, each suited to a different requirement.

Approach Best suited to Main consideration
Pardot / Marketing Cloud Account Engagement Businesses already using Salesforce marketing automation Check the existing licence, forms, tracking and field synchronisation
Google’s GCLID capture script Businesses needing a low-cost Google Ads tracking foundation Captures the click identifier; broader attribution requires additional configuration
Attributer Businesses wanting channel, campaign and landing-page attribution inside Salesforce Requires a subscription, compatible forms and Salesforce field mappings

These options capture information before or during an enquiry. The connection that returns qualified leads and sales to Google Ads must also be configured.

Option 1: Pardot / Marketing Cloud Account Engagement

If you already use Pardot, now known as Salesforce Marketing Cloud Account Engagement, start here. It uses a tracking script similar to Google Analytics, showing marketing sources and attribution data against Salesforce records such as contacts, leads, accounts and opportunities.

Existing marketing forms, prospect tracking and Salesforce synchronisation provide much of this capability out of the box, making it the simplest starting point.

Confirm the actual product and features available in your account. Salesforce identifies Pardot as the former name of Marketing Cloud Account Engagement.

Review which attribution values the existing setup captures, where they are stored and which fields synchronise into Salesforce. Specifically, check Google click identifiers, UTMs and the contact information needed for enhanced matching.

Use an existing supported integration where it meets the requirement; otherwise, connect the Salesforce outcomes through Data Manager.

Option 2: Google’s GCLID Capture Script

Google provides a website script for capturing the Google Click ID, or GCLID. With Google auto-tagging enabled, ad clicks include this identifier in the landing-page URL. The script retains it in the browser and inserts it into a hidden form field. (E.g. Salesforce’s native Web-to-Lead form). 

The basic setup requires a Salesforce GCLID field, a matching hidden input and the website script configured for that input. Install capture across the relevant website pages so the value remains available when someone browses before enquiring.

Google’s Salesforce integration instructions cover its capture method and Salesforce preparation. The script provides a low-cost foundation, although implementation and maintenance still require technical work.

Its scope is specific: retaining the GCLID. It does not automatically provide Attributer’s channel classification, landing-page groups or cross-channel reporting. Additional identifiers and UTMs need their own supported capture configuration.

Option 3: Attributer for Broader Marketing Attribution

Attributer provides functionality similar to Pardot Marketing Cloud Analytics, but at a fraction of the price. Unlike the free Google Ads script, Attributer can track all marketing channels, as well as capture the Google Click ID. It suits businesses that want acquisition information available directly within Salesforce, alongside the subsequent sales outcome. A bit like Google Analytics, but inside your CRM against contact, lead, account or opportunity records. 

This setup retains channel, source, campaign and landing-page information, making it possible to investigate questions such as which sources produce qualified enquiries, which campaigns create pipeline and which landing pages attract customers. It retains the GCLID separately for Google Ads matching.

The worked example below uses Attributer, a WordPress website, Salesforce Web-to-Lead and Google Ads Data Manager. Its Attributer fields and placeholders apply specifically to this approach.

Salesforce Google Ads Offline Conversion TrackingWhat About Other CRM’s like HubSpot and HighLevel?

HubSpot and HighLevel both include built-in attribution and analytics capabilities that can capture the GCLID alongside other tracking information, such as UTM parameters. Their tracking scripts collect this data and store it against the contact and associated opportunity and company records using hidden attribution fields, so these fields do not need to be manually added to the visible form. They can also send offline conversions and customer lists back to Google Ads without requiring a separate manual connection through Google Ads Data Manager.

HubSpot can send supported Google Ads conversion events based on changes to a contact’s lifecycle stage.

HighLevel also provides native attribution and Google Ads workflow capabilities. Where the required event is supported, contact attribution data can be used within workflows to send conversion events back to Google Ads without requiring a separate automation service.
Check Existing Platforms Salesforce Google Ads Offline Conversion Tracking Add UsersBefore You Start: Agree on Access, Fields and Sales Milestones

Arrange administrator involvement for Salesforce and Google Ads, together with access to the website and its tag management setup. The ongoing integration account needs permission to read the selected Salesforce objects and fields, including the required API access.

Audit existing forms, attribution scripts, Google tags, consent settings and conversion actions. Identify whether enquiries already enter Salesforce through Web-to-Lead or another integration before changing the form.

Agree the commercial definitions before configuring imports:

Milestone Suggested definition
Enquiry received A valid form submission or telephone enquiry
Lead qualified The prospect meets agreed fit and purchase-intent criteria
Sales opportunity created A genuine potential deal has been established
Sale won The deal meets the business’s agreed Closed Won criteria

Avoid treating an administrative change as evidence of commercial progress. Converting a Salesforce Lead into a Contact does not necessarily mean a sale has occurred. Our CRM lifecycle stages guide explains how to define useful conversion milestones.

Worked Example Salesforce Google Ads Offline Conversion Tracking Add UsersWorked Example: Attributer, WordPress and Salesforce Web-to-Lead

In this example, WordPress hosts the enquiry form, Attributer populates its hidden attribution inputs, and Salesforce Web-to-Lead creates the Lead. Salesforce then preserves the relevant information through qualification and Opportunity creation.

Using WordPress does not mean you must introduce a separate WordPress form plugin. An embedded Salesforce Web-to-Lead form can provide the submission route. If an existing form integration already works reliably, assess whether its hidden fields can deliver the same information.

Install Attributer and Create Its Attribution Fields

Install Attributer’s tracking script across the relevant website pages using a supported installation method. Create these Salesforce Lead fields and corresponding hidden inputs:

Salesforce field Attributer placeholder
Channel [channel]
Channel Drilldown 1 [channeldrilldown1]
Channel Drilldown 2 [channeldrilldown2]
Channel Drilldown 3 [channeldrilldown3]
Landing Page [landingpage]
Landing Page Group [landingpagegroup]

Use the correct Salesforce field identifier for each input. For example:

<input type="hidden"
       name="YOUR_SALESFORCE_CHANNEL_FIELD_ID"
       id="YOUR_SALESFORCE_CHANNEL_FIELD_ID"
       value="[channel]">

The identifier controls the Salesforce destination; the placeholder tells Attributer what to insert. These are Attributer-specific instructions, documented in its Salesforce Web-to-Lead setup guide.

Preserve the existing form’s routing, validation and spam protection. Test that submissions arrive correctly and that field lengths accommodate the values you need.

Add the GCLID as a Separate Field

Attributer’s six standard fields do not include a dedicated GCLID field. Add one in Salesforce and a corresponding hidden input in the form. Attributer documents [gclid] as the default-value placeholder for compatible forms in its GCLID capture instructions.

If the design also requires GBRAID or WBRAID, confirm support in both the capture tool and the Google import route. Creating fields alone will not capture those identifiers, and capture support does not establish import support.

Keep each identifier in its own field. Not every visit will contain one, and a single visit should not be expected to populate all three.

Configure Consistent UTM Tracking

Keep auto-tagging enabled and use UTMs alongside it for readable acquisition reporting. Preserve an existing, consistent tagging scheme where possible.

For an implementation that deliberately reports ad-group IDs throughutm_term, a Final URL suffix could be:

utm_source=google&utm_medium=paidsearch&utm_campaign={campaignid}&utm_term={adgroupid}

This example returns IDs rather than names. It also uses utm_term for ad-group reporting, so document that choice. If your existing convention uses it for keywords, retain that convention and capture ad-group information separately.

Do not assume {campaign} or {ad_group} will supply names. Use supported Google ValueTrack parameters or deliberately configured custom parameters.

Test the Website Submission First

Visit through a controlled UTM test URL, browse between pages and submit the form. Confirm the expected attribution and contact information reaches the Salesforce Lead.

Check the actual stored values. A literal [channel] or [gclid] indicates the placeholder was submitted without being populated.

A dummy click identifier can test whether a value reaches Salesforce. Attribution itself must be checked using eligible advertising traffic; an invented GCLID cannot demonstrate a successful Google Ads match.

Preserve Utm Salesforce Google Ads Offline Conversion Tracking Add UsersPreserve Attribution Through Salesforce

The next task is to keep acquisition information attached to the correct commercial outcome. The following is a suggested architecture for this worked example, rather than a requirement to duplicate every field across every object.

Information Lead Contact Opportunity
Attributer channel and landing-page fields Capture Retain Copy for deal reporting
GCLID Capture where available Retain Copy for the originating enquiry
Other supported click identifiers Capture where available Retain Copy where relevant
Email and telephone Standard fields Standard fields Copy only if required by the import route
Qualification timestamp If qualification occurs here Optional If qualification occurs here
Opportunity and Closed Won timestamps Retain relevant milestones
Deal value and currency Retain defined commercial values

An Account can contain several Contacts and Opportunities from different campaigns. Avoid relying on one Account-level click identifier to represent all of them.

Map Fields During Lead Conversion

Configure custom Lead-field mappings to the relevant Contact and Opportunity fields. For example, map Lead GCLID to Contact GCLID and separately to Opportunity GCLID.

Lead conversion mappings transfer data at conversion; they are not continuous synchronisation. If an Opportunity is created later, it will need a separate rule for receiving the attribution data.

Test conversion into both new and existing records. Decide how existing attribution should be protected when another enquiry arrives from the same person or company.

Handle Opportunities Created Later

Where the sales process creates Opportunities after Lead conversion, use Salesforce automation to populate them from the correct originating Contact or enquiry record.

Define the selection rule explicitly. Choosing the most recently updated Contact on an Account could associate the deal with an unrelated enquiry.

Opportunity Contact Roles help record the people involved. A Primary Contact can support the attribution design, but the relationship alone does not prove that the Google connector can retrieve that Contact’s email or telephone.

If the required Contact fields are unavailable in the import mapping, copy the selected person’s matching information into dedicated Opportunity fields. Preserve the original deal attribution when later activity occurs.

Add Enhanced Conversions for Leads

Enhanced Conversions for Leads uses eligible first-party customer information, such as email addresses and telephone numbers, to improve matching between advertising interactions and imported outcomes.

Retain available GCLIDs and configure the website’s Google tag or GTM implementation alongside the CRM upload. The website collection and offline event should use corresponding customer information. Google explains this relationship in its enhanced conversions setup guidance.

Enhanced matching can help where click identifiers are missing, but it does not guarantee attribution or remove conversion-window limits. Our Enhanced Conversions guide covers the wider measurement approach.

Align collection and uploads with the consent configuration, including applicable ad_user_data signals. Hashing does not remove consent obligations; Google’s EU User Consent Policy also covers the UK.

Connect Salesforce Google Ads Offline Conversion Tracking Add UsersReturn Salesforce Outcomes Through Google Ads Data Manager

For this example, use the direct Salesforce connection in Data Manager. Google supports Lead, Opportunity and Order objects; select the object containing the relevant event and matching data. Events across different objects require separate connections. See Google’s Salesforce connector documentation.

Connect the authorised Salesforce account, choose the object, define the event conditions and review the available field mappings. For example, a qualification event might use Lead status, while a sale uses an Opportunity reaching Closed Won.

Our Google Ads Data Manager guide explains the connection process in more detail.

For each event, agree the following implementation details:

Detail Decision to make
Event condition Exactly what qualifies the record for import
Matching information Which supported identifiers and customer fields are available
Event time How the selected route determines when the milestone happened
Value Whether it represents expected value, signed revenue or another defined measure
Currency Which currency applies to the uploaded value
Repeat handling How to prevent repeated edits from generating duplicate milestones

Use the actual milestone time rather than the upload time or a forecast close date. Follow the connector’s event and field-history requirements; a dedicated timestamp field is useful for auditing but may not be the timestamp source used by every configuration.

Define how reopened deals, cancellations, and revised values will be handled. Do not assume every later Salesforce edit automatically corrects a previously uploaded conversion.

Where the direct connection cannot meet a specific requirement, consider a supported automation route. Our Zapier offline conversion tracking guide covers that alternative.

Bidding Strategies For Offline Conversions

Choose What Google Ads Should Optimise Towards

You can measure the full sales journey while using a smaller selection of events for bidding. The following options describe a progression towards revenue-based optimisation, rather than mandatory stages every account must follow.

Target CPA — Online Conversions Only

Use website enquiries while offline outcomes are being validated or remain too infrequent.

  • Primary: Website forms and telephone enquiries.

  • Secondary: Qualified leads, opportunities and sales.

  • Objective: Generate enquiries at the target CPA.

This provides a timely volume signal, although it does not directly distinguish lead quality.

Target CPA — Online and Offline Conversions

Combine enquiries with selected CRM milestones so leads that progress contribute additional events.

  • Primary: Enquiries, qualified leads and sales.

  • Objective: Generate the selected events at a blended target CPA.

  • Contribution: An enquiry counts once; qualification adds another event; a sale adds a third.

This resembles basic lead scoring, but Google is optimising an event count. The reported CPA is therefore not the cost per unique lead or customer. Numerous low-quality enquiries can still dominate the signal, so monitor the commercial outcomes separately.

Target CPA — Offline Conversions Only

Use qualified leads or sales when these provide a sufficiently frequent, reliable signal.

  • Primary: The selected offline milestone or milestones.

  • Secondary: Website enquiries.

  • Objective: Generate commercially meaningful outcomes at the target CPA.

If both qualification and sale are Primary, one customer can contribute two events. A single well-defined stage is often easier to interpret when its volume is sufficient.

Target ROAS — Expected Opportunity Value

Use expected values where completed sales are too delayed or infrequent for effective revenue-based bidding.

  • Primary: Qualified opportunities with consistently calculated expected values.

  • Secondary: Enquiries and completed sales for comparison.

  • Objective: Generate expected opportunity value at the target ROAS.

For illustration, a £20,000 Opportunity with a 40% probability of closing has an expected value of £8,000. Calibrate probabilities against actual outcomes rather than relying on inconsistent salesperson estimates.

Report this as expected pipeline return. It is not realised sales ROAS.

Target ROAS — Closed-Won Sales Value

Use won sales when their volume, value accuracy and reporting delay support reliable bidding.

  • Primary: Closed-won sales with defined revenue values.

  • Secondary: Enquiries, qualified leads and opportunities.

  • Objective: Generate sales value at the target ROAS.

Specify whether value means signed contract revenue or collected revenue. Keep the definition consistent, and avoid adding expected pipeline value to sales revenue within the same bidding objective unless a deliberate weighting model justifies it.

As planning guidelines, we would generally look for at least 15 monthly conversions for CPA-based optimisation, preferably 30–50, and around 50 or more monthly sales for revenue-based optimisation. These are practical benchmarks, not universal Google eligibility requirements. Conversion delay, consistency and value variation matter alongside volume.

Check campaign goals as well as conversion-action settings. Our Primary and Secondary conversions guide explains how those choices influence bidding.

Worked Add UsersA Practical Implementation Timeline

A straightforward implementation can be scheduled across approximately one working week once access and requirements are agreed. Treat this as an initial technical schedule; complex Salesforce processes or form behaviour can extend it.

Timing Work Evidence required
Day 1 Audit tracking, access, forms and sales definitions Agreed method, fields and event rules
Day 2 Configure Attributer and Web-to-Lead capture Correct values reach the Salesforce Lead
Day 3 Configure conversion mappings and later-Opportunity automation Attribution reaches the correct commercial record
Day 4 Configure enhanced matching and Data Manager Eligible records process with the intended event and value
Day 5 Complete testing and establish monitoring Documented results and initial campaign goal settings

Technical completion does not mean the account is ready for sales-based bidding. Allow enough time for the normal sales cycle to produce a representative set of outcomes.

Validate the Full Journey and Monitor Performance

Test a complete record from form submission through qualification and Closed Won. Verify attribution, matching information, event time, value and currency at each stage.

Also test repeat edits, stage reversals, returning contacts and the applicable consent states. These reveal problems that a single successful form submission can miss.

Monitor missing fields, rejected uploads, connection failures, reporting delays and unexpected event counts. A record accepted by an import is not necessarily an attributed Google Ads conversion: the matching and eligibility conditions must also be met.

Compare Google Ads with Salesforce using compatible reporting periods and definitions. Differences can arise from attribution rules, conversion windows and reporting dates; investigate whether the difference is explainable rather than expecting identical totals.

The commercial measures to watch are cost per qualified lead, customer acquisition cost, lead-to-sale rate and the value generated from advertising. These show whether improved measurement is supporting better decisions.

Connect Google Ads Management With Salesforce Revenue

The capture method should fit the business. Start with Account Engagement where it is already available, use Google’s script for a focused GCLID setup, or add Attributer when broader acquisition reporting is needed.

The implementation becomes useful when Salesforce retains the right information, records meaningful outcomes and returns dependable signals to Google Ads. From there, optimisation can move towards qualified opportunities and sales value as the data supports it.

One PPC combines Google Ads management, CRM integration, conversion tracking and automation to connect advertising with commercial results. Contact us to discuss your Salesforce and Google Ads integration.

Salesforce Offline Conversion Tracking (1)Example Implementation Project using WordPress, Attributor and Salesforce CRM with Google Ads

The plan is organised into five sections that mirror the natural order of the data as it flows from the website through to Google Ads, and each section should be validated before the next is started.

Overview and systems architecture

The end-to-end architecture connects five systems: the advertising channel that generates the click, WordPress as the capture surface, Attributer as the attribution engine, Salesforce as the system of record, and Google Ads Data Manager as the channel that reports commercial outcomes back to Google Ads. At a high level, the flow is as follows.

Google Ads / other channels  →  UTMs + GCLID/GBRAID/WBRAID + consent signal  →  WordPress  →  Attributer  →  Salesforce Web-to-Lead  →  Lead  →  Lead Conversion  →  Contact + Opportunity (Primary Contact Role)  →  Google Ads Data Manager  →  Enhanced Conversions for Leads  →  Google Ads (Qualified Lead, Sales Opportunity, Closed Won)

The website-to-Salesforce capture must be proven reliable first; the attribution fields must then be preserved correctly through Salesforce’s Lead conversion process, and then the Salesforce-to-Google Ads Data Manager integration must be configured. Each stage gives the next stage a clean, trustworthy source of truth, which keeps troubleshooting straightforward if something does not match later.

The data itself has three distinct layers, each doing a different job and each configured separately:

Attributer supplies marketing attribution for reporting (Channel, drilldowns, landing page). Once these are saved to records, they can be used in SalesForce reporting. 

The Google click identifiers (GCLID, GBRAID, WBRAID) supply deterministic ad-click matching; and

Enhanced Conversions for Leads supplies first-party customer-data matching (email, phone) as a second, complementary route when a click identifier is missing or has expired. All three layers are preserved side by side on the Opportunity — none of them replaces another.

The target field structure across the Salesforce object model is summarised below and is referred to throughout the plan.

Field

Lead

Contact

Account

Opportunity

Channel

Yes

Yes

Optional

Yes

Channel Drilldown 1

Yes

Yes

Optional

Yes

Channel Drilldown 2

Yes

Yes

Optional

Yes

Channel Drilldown 3

Yes

Yes

Optional

Yes

Landing Page

Yes

Yes

Optional

Yes

Landing Page Group

Yes

Yes

Optional

Yes

GCLID

Yes

Yes

Not recommended

Yes

GBRAID

Yes

Yes

Not recommended

Yes

WBRAID

Yes

Yes

Not recommended

Yes

Qualified Date

Yes

Sales Opportunity Date

Yes

Closed Won Date

Yes

Revenue / Amount

Yes

Email / Phone (fallback copy)

Standard

Standard

Conditional*

Opportunity is deliberately treated as the primary Google Ads object rather than Account, because a single Account can span multiple Contacts and multiple Opportunities from different acquisition sources. Storing the click identifiers on Opportunity keeps the record that Google Ads Data Manager reads self-contained, with the advertising identifier and the commercial outcome held together.

*Email and Phone live natively on Contact and do not need to be duplicated onto Opportunity, provided Data Manager can traverse the Opportunity’s Primary Contact Role relationship. Whether to duplicate them is a live configuration question addressed in Section 4 — the field is marked conditional here rather than a firm Yes/No.

Section 1: Website and attribution capture

This section covers everything required to get a Google Ads click reliably converted into a Salesforce Lead record carrying full attribution, before any Salesforce automation or Google Ads integration work begins.

Phase 1 — Audit the existing setup

  • Check WordPress native contact forms, existing Web-to-Lead forms, Google Tag Manager, the Google tag, current form conversion tracking, any existing attribution scripts, and the cookie/consent implementation. Google Ads: auto-tagging status, account-level Final URL suffix, account-level and campaign-level tracking templates, existing UTM conventions, current website conversion actions, existing offline conversion actions, and any existing Enhanced Conversions configuration.
  • Salesforce: existing Lead fields, existing Web-to-Lead configuration, the Lead conversion process, whether Opportunities are created at conversion or later, whether Opportunity Contact Roles are already in use and whether a Primary Contact is set automatically at conversion, existing Lead→Contact/Account/Opportunity field mappings, the relevant Opportunity stages, field history tracking, and Salesforce API permissions. (Relevant opportunity stages represent qualified leads. A lead can be qualified more than once if it progresses along with the sales cycle. A converted lead is when an opportunity is won in Salesforce.

Google’s current Data Manager integration requires an authorised Salesforce user with API access and access to every field being imported, so a user (email address) should have admin access to both Google Ads and Salesforce (and ideally Google Tag Manager as well). 

Phase 2 — Configure Attributer and WordPress

Install the Attributer JavaScript site-wide. (This can be inserted into the website code, installed via a WordPress plugin or soft-coded through Google Tag Manager. Attributer requires six hidden fields on the form, using these exact placeholder tokens:

  •       [channel]
  •       [channeldrilldown1]
  •       [channeldrilldown2]
  •       [channeldrilldown3]
  •       [landingpage]
  •       [landingpagegroup]

For Paid Search traffic, Attributer’s is as follows..

Input

Attributer output field

Paid Search classification

Channel

utm_source

Channel Drilldown 1

utm_campaign

Channel Drilldown 2

utm_term

Channel Drilldown 3 (ad group level)

Phase 3 — Configure Google Ads attribution parameters

Google Ads auto-tagging should remain enabled, since this is what appends GCLID, GBRAID or WBRAID to the landing page URL automatically. Auto-tagging provides the click identifiers, while UTM parameters provide the human-readable campaign attribution that Attributer and Salesforce use.

If a suitable UTM scheme already exists, it should be retained rather than replaced. If not, a consistent scheme should be defined, for example:

utm_source=google
utm_medium=paidsearch
utm_campaign={campaign}
utm_term={ad_group}

Utm_term is traditionally used for a paid-search keyword, but Attributer maps it to Channel Drilldown 3, which it treats as the ad-group level. I will test some options to see if we can also pull in the keyword from Google Ads.

Phase 4 — Create the Salesforce Lead fields

Create the following custom Text fields (255 characters) on the Salesforce Lead object. Using the same field names as the Attributor tokens keeps future troubleshooting straightforward.

  • Marketing attribution: Channel, Channel Drilldown 1, Channel Drilldown 2, Channel Drilldown 3, Landing Page, Landing Page Group.
  • Google matching: GCLID, GBRAID, WBRAID — these are separate technical fields, additional to Attributor’s standard six.

Record the Salesforce field ID for each custom field (visible in the URL on the field detail page) — these IDs are required in Phase 5.

Phase 5 — Generate and modify the Web-to-Lead form

Generate a new Web-to-Lead form in Salesforce containing the standard visible fields (for example, First Name, Last Name, Company, Email, Phone, Message). Salesforce does not allow existing forms to be edited, so a new form must be generated even if one already exists on the site.

Insert the six Attributer hidden fields below the last visible field and above the submit button, replacing the placeholder name/id with the real Salesforce field ID recorded in Phase 4:

<input type=”hidden” name=”00Nxxxxxxxxxxxx” id=”00Nxxxxxxxxxxxx” value=”[channel]”>
<input type=”hidden” name=”00Nxxxxxxxxxxxx” id=”00Nxxxxxxxxxxxx” value=”[channeldrilldown1]”>
<input type=”hidden” name=”00Nxxxxxxxxxxxx” id=”00Nxxxxxxxxxxxx” value=”[channeldrilldow

n2]”>
<input type=”hidden” name=”00Nxxxxxxxxxxxx” id=”00Nxxxxxxxxxxxx” value=”[channeldrilldown3]”>
<input type=”hidden” name=”00Nxxxxxxxxxxxx” id=”00Nxxxxxxxxxxxx” value=”[landingpage]”>
<input type=”hidden” name=”00Nxxxxxxxxxxxx” id=”00Nxxxxxxxxxxxx” value=”[landingpagegroup]”>

The Salesforce field ID tells Salesforce where to store the value; the Attributer token tells Attributer what to insert into that value before the form submits. Once edited, the form code is pasted into the relevant WordPress page or template.

Phase 6 — Capture GCLID, GBRAID and WBRAID

Google generates these identifiers automatically once auto-tagging is enabled. GCLID is the standard identifier for most Google Ads clicks; WBRAID is used for certain privacy-affected iOS traffic where a GCLID is not appended; GBRAID is used in related scenarios. Google recommends sending whichever identifier is present with offline conversion data, since not every click will carry all three.

Add three further hidden fields to the same Web-to-Lead form, mapped to the GCLID, GBRAID and WBRAID Lead fields created in Phase 4:

<input type=”hidden” name=”SALESFORCE_GCLID_FIELD_ID” id=”SALESFORCE_GCLID_FIELD_ID” value=”[gclid]”>
<input type=”hidden” name=”SALESFORCE_GBRAID_FIELD_ID” id=”SALESFORCE_GBRAID_FIELD_ID” value=”[gbraid]”>
<input type=”hidden” name=”SALESFORCE_WBRAID_FIELD_ID” id=”SALESFORCE_WBRAID_FIELD_ID” value=”[wbraid]”>

The completed Web-to-Lead form therefore carries nine attribution fields in total: the six standard Attributor fields plus GCLID, GBRAID and WBRAID.

Phase 7 — Test website-to-Salesforce capture before proceeding

Using an incognito browser, visit a controlled test URL such as:

https://example.com/contact/?utm_source=google&utm_medium=paidsearch&utm_campaign=test_campaign&utm_term=test_adgroup

Submit the form and confirm the resulting Lead contains approximately the following, then repeat the test using a genuine Google Ads click to confirm GCLID, GBRAID or WBRAID populates as expected:

  • Channel = Paid Search
  • Channel Drilldown 1 = google
  • Channel Drilldown 2 = test_campaign
  • Channel Drilldown 3 = test_adgroup
  • Landing Page and Landing Page Group populated correctly

Section 2: Salesforce CRM architecture

With capture proven, this section carries the attribution and click identifiers through Salesforce’s native Lead conversion process so that they are recorded on the Contact, Account and Opportunity records.

Phase 8 — Configure Salesforce Lead conversion

A Web-to-Lead submission only ever creates a Lead record. Salesforce’s Lead Conversion process is what subsequently creates the Account, Contact and, depending on the sales process, an Opportunity. .

Web-to-Lead  →  Lead  →  Lead Conversion  →  Account + Contact + Opportunity (optional)

Some sales processes create the Opportunity at the point of conversion; others convert the Lead into an Account and Contact first and only create an Opportunity once a genuine commercial opportunity exists. This should be confirmed during the Phase 1 audit, since it determines whether Phase 11 (below) is required.

Phase 9 — Create attribution fields on Contact, Opportunity and company/account.

Create the same nine fields — Channel, Channel Drilldown 1–3, Landing Page, Landing Page Group, GCLID, GBRAID, WBRAID — on both the Contact and Opportunity objects, matching the target field structure set out in the overview. Account-level attribution fields are optional and useful for broad reporting, but Account should not be treated as the source of truth for the Google click identifiers, since one Account can be associated with multiple Contacts and Opportunities from different acquisition sources.

Phase 10 — Configure Opportunity Contact Roles    

Salesforce does not attach a Contact to an Opportunity as a simple parent field in the way it does for Account. Instead, the relationship is managed through Opportunity Contact Roles, which allow one or more Contacts to be linked to an Opportunity, each with a role (Decision Maker, Influencer, and so on) and, optionally, one marked as Primary.

Account  →  Contact  →  Opportunity  →  Opportunity Contact Role (Primary = true)  →  Contact

For a brand-new inbound enquiry, the cleanest design is to make the Contact created from that Web-to-Lead submission the Primary Contact Role on the first Opportunity created from it. That gives a deterministic chain from the person who completed the form through to the record Google Ads eventually reads:

Website form submitter  →  Salesforce Lead  →  Lead converted  →  Contact created  →  Opportunity created  →  That Contact = Primary Contact Role

This should be set as a formal rule rather than left to individual sales reps: the Contact originating from the Web-to-Lead submission is assigned as the Primary Contact Role on the first Opportunity created from that Lead. For an Account that already has several Contacts by the time a later Opportunity is created, a separate, explicit rule is needed for which Contact is Primary on that Opportunity — this should not be left to default behaviour either.

Salesforce does not reliably set this automatically during Lead conversion in every org configuration, so it should not be assumed — confirm the actual Salesforce behaviour during the Phase 1 audit or a follow-up check. Where it does not happen automatically, a Salesforce Flow should enforce it:

Lead is converted  →  Opportunity is created  →  Take the converted Contact  →  Create Opportunity Contact Role  →  Set Primary = true

Phase 11 — Configure native field mapping

Use Salesforce’s built-in Map Lead Fields function (Setup → Object Manager → Lead → Fields & Relationships → Map Lead Fields) to carry each custom field forward at conversion. A Flow is not required for this initial copy — native mapping is sufficient — and is best reserved for the more complex scenario in Phase 12.

  • Lead. Channel → Contact.Channel → Opportunity.Channel
  • Lead.Channel Drilldown 1–3 → Contact → Opportunity (same pattern)
  • Lead. Landing Page / Landing Page Group → Contact → Opportunity
  • Lead.GCLID → Contact.GCLID → Opportunity.GCLID
  • Lead.GBRAID → Contact.GBRAID → Opportunity.GBRAID
  • Lead.WBRAID → Contact.WBRAID → Opportunity.WBRAID

Phase 12 — Handle Opportunities created after conversion

Where the audit in Phase 1 confirms that Opportunities are routinely created some time after Lead conversion rather than at the same moment, native Lead mapping will not reach them, since it only fires at the point of conversion. The same Salesforce Flow used in Phase 10 should be extended to, on creation of any new Opportunity, copy the attribution and click identifiers from the related Contact, and assign a Primary Contact Role using an explicit rule (for example, the most recently active Contact on the Account, or a manually selected one) rather than leaving it unset. This keeps every Opportunity self-contained regardless of when it enters the pipeline.

Section 3: Google Ads conversion 

This section defines which Salesforce events should be reported to Google Ads, how match quality is maximised beyond a GCLID-only approach using Enhanced Conversions for Leads

Phase 13 — Define the conversion events

Not every pipeline stage change should be imported. A sensible starting model, to be adapted to the actual sales qualification process, is set out below.

Salesforce event

Google Ads conversion action

Lead submitted

Website conversion (existing)

Qualified Lead reached

Qualified Lead (offline)

Genuine sales Opportunity created

Sales Opportunity (offline)

Opportunity Closed Won

Customer / Closed Sale (offline, with value)

Phase 14 — Configure Enhanced Conversions for Leads

Enhanced Conversions for Leads is an upgraded offline conversion import that supplements click-ID matching with first-party customer data. It is additional to GCLID/GBRAID/WBRAID matching, not a replacement for it — Google’s guidance is to continue sending the click identifier whenever it is available, and to add email and phone as further matching signals wherever they exist.

With a click identifier only, matching looks like this:

Google Ads click  →  GCLID captured  →  GCLID stored in Salesforce  →  Opportunity becomes Qualified / Won  →  GCLID + conversion details sent to Google  →  Google matches to the original click

With Enhanced Conversions for Leads added, Google has more than one way to make the match:

GCLID / GBRAID / WBRAID  +  Email / Phone  +  Conversion event, time, value  →  Google

This matters in practice for records at either extreme. A record with no click identifier but a known email and phone can still be matched via Enhanced Conversions; a record with both a click identifier and an email address gives Google two independent signals rather than one, which is a stronger match than either alone. Data Manager’s Enhanced Conversions for Leads accepts at least one of GCLID, email or phone, and the recommendation is to map as many of these as are available for each record rather than treating any single identifier as sufficient on its own.

The Data Manager feed should therefore be built, where available, from:

  • GCLID / GBRAID / WBRAID
  • Email and phone (hashed by Google as part of the Enhanced Conversions process)
  • Conversion time, conversion action, value and currency

Note that Google’s published support for GBRAID/WBRAID alongside Enhanced Conversions for Leads varies somewhat by import method, so which of the three click identifiers the live Salesforce connector actually accepts should be confirmed when Data Manager is configured in Phase 17 — there is no downside to continuing to capture and store all three in Salesforce regardless.

Phase 15 — Consent and GDPR

Sending email addresses and phone numbers to Google for advertising matching is a materially different privacy position from sending a click identifier alone, and should be treated as a required workstream in its own right rather than a footnote to the technical build. Hashing the data before sending it is standard practice, but hashing is generally pseudonymisation rather than true anonymisation where the data can still be matched back to an individual, so it does not remove the activity from GDPR’s scope on its own.

This raises several points that need to be settled before Enhanced Conversions for Leads is switched on, ideally with input from whoever manages the client’s cookie/consent platform and, on the legal questions, their privacy adviser:

  • Lawful basis for sending customer data to Google for advertising matching
  • Privacy notice wording covering this specific use
  • The existing cookie/consent implementation on the website
  • Google’s EU User Consent Policy and Customer Data policies, which advertisers using a direct Data Manager connection are required to acknowledge
  • Whether the consent management platform passes the correct Google Consent Mode signal — specifically ad_user_data, which governs consent for sending user data to Google for advertising purposes

The website-side flow this implies is straightforward, but needs to be built deliberately rather than assumed:

Website Visitor gives consent  →  Consent Mode: ad_user_data = granted  →  Google tag captures user-provided data  →  Salesforce receives the Lead normally  →  Offline conversion later sent through Data Manager

Where consent is declined, ad_user_data is set to denied and the implementation must respect that signal rather than sending the data regardless — this is a compliance requirement, not an optional refinement. This is one area where the technical build should follow the client’s legal/privacy adviser’s confirmation of lawful basis and consent wording, rather than the reverse.

* Unlike Microsoft Ads, Google still allows tracking without consent and all GDPR checks  (at least presently). 

Phase 16 — Configure the Google tag or Google Tag Manager

Enhanced Conversions for Leads has a website-side component: first-party lead information such as email or phone should be captured through the Google tag or GTM at the point of form submission, conditional on the ad_user_data consent signal from Phase 15, alongside the Salesforce Web-to-Lead capture already in place. The existing GTM/Google tag implementation identified in the Phase 1 audit should be reviewed and extended to cover this.

Section 4: Salesforce to Google Ads Data Manager integration

With attribution reliably captured and preserved in Salesforce, the conversion events defined, and consent handled, this section connects Salesforce to Google Ads so that commercial outcomes flow back automatically.

Phase 17 — Configure Google Ads Data Manager

Google has retired its legacy Salesforce offline conversion integration in favour of Google Ads Data Manager, which should be used for this connection. It is worth being clear about what Data Manager actually is: a data-source connection and field-mapping layer, not a CRM interface — there is no Google-side “Contacts area” resembling a Salesforce Contact record. Connecting Salesforce means telling Google which source fields correspond to the fields its conversion schema expects (GCLID, email, phone, conversion action, conversion time, value, currency, consent), rather than browsing a list of people inside Google Ads.

Connect Salesforce as the data source using an authorised user with:

  • API access
  • Read access to the Lead, Contact, Company  and Opportunity objects in use
  • Access to the custom click-ID and attribution fields created in Phases 4 and 9
  •  Access to Opportunity stage, Amount, the milestone date fields, and the relevant Contact fields

Phase 18 — Confirm whether Data Manager can reach the related Contact

This is the key open implementation question for the Salesforce object design, and should be resolved by testing the live Data Manager configuration rather than assumed either way. Google confirms that the direct Salesforce integration supports Enhanced Conversions for Leads using GCLID, email and phone, but whether its connector can traverse the relationship from Opportunity through the Primary Contact Role to the Contact record — rather than reading only fields that sit directly on the Opportunity — should be verified once the connection in Phase 17 is live. There are two workable designs depending on the answer.

If Data Manager can read the related Contact through the Primary Contact Role cleanly, no duplication is needed:

Opportunity.Stage / Amount / GCLID / GBRAID / WBRAID
  +  (via Primary Contact Role)
Contact.Email / Contact.Phone

If it cannot traverse that relationship, the safer and generally simpler design for integrations and reporting is to copy the Primary Contact’s email and phone onto the Opportunity using the Salesforce Flow already built in Phases 10 and 12, so the Opportunity becomes fully self-contained:

Opportunity: GCLID, GBRAID, WBRAID, Email, Phone, Stage, Amount, Qualified Date, Sales Opportunity Date, Closed Won Date

Either design is acceptable; the point is to decide deliberately once the connector behaviour is known, rather than building the Data Manager mapping in Phase 19 around an assumption.

Phase 19 — Map Salesforce data to Google Ads

With Opportunity as the primary object, map the source fields as follows within Data Manager, adjusting the Email/Phone row to whichever design Phase 18 confirmed.

Salesforce field

Google Ads Data Manager field

Opportunity.Stage

Conversion action trigger

Opportunity.GCLID

Google Click ID

Opportunity.GBRAID

GBRAID (subject to connector support — confirm in Phase 18)

Opportunity.WBRAID

WBRAID (subject to connector support — confirm in Phase 18)

Primary Contact Role → Contact.Email, or Opportunity.Email (fallback copy)

User-provided data (Enhanced Conversions)

Primary Contact Role → Contact.Phone, or Opportunity.Phone (fallback copy)

User-provided data (Enhanced Conversions)

Opportunity.Amount

Conversion value

Opportunity milestone date field (Phase 21)

Conversion time

ad_user_data consent status (Phase 15)

Consent signal

Phase 20 — Configure the Google Ads conversion actions

Create each conversion action defined in Phase 13 before activating the import, setting the counting method, value, currency, attribution settings and Primary/Secondary status for each. A cautious starting configuration is recommended rather than making several funnel stages Primary at once, since this can destabilise Smart Bidding while volume is still low:

  • Website Lead — Primary to start with, possibly secondary in the future depending on the volume of conversions 
  • Sales Opportunity — Secondary initially, then move to primary
  • Closed Won — Primary and value-based, once sufficient data volume exists

The right split depends heavily on conversion volume and should be revisited as data accumulates — this is an area to monitor and adjust rather than fix permanently at launch.

Phase 21 — Configure stage-change detection

When a conversion is triggered by a pipeline stage change, the timestamp used must reflect when that stage was first reached, not simply the current stage value; otherwise, a record moving back and forth between stages will misreport its conversion time. Dedicated, immutable milestone date fields on Opportunity — Qualified Date, Sales Opportunity Date, Closed Won Date — are the more reliable source of truth than relying solely on Salesforce field history tracking, and are already included in the target field structure above.

Section 5: Testing and monitoring

The final section confirms the full chain works end to end before considering the project live, and defines what should be monitored on an ongoing basis afterwards.

Phase 23 — End-to-end quality assurance

Run one complete test record through the full chain and confirm each stage in turn:

  • Website: UTMs present, GCLID/GBRAID/WBRAID present where applicable, Attributer script loading correctly, and the ad_user_data consent signal firing correctly for both granted and denied states.
  • Salesforce Lead: Channel, drilldowns, landing page fields, click identifiers, email and phone are all populated correctly.
  • Lead conversion: the same fields are present on the resulting Contact and Opportunity, and the converted Contact correctly set as the Primary Contact Role.
  • Pipeline movement: advance the test record to Qualified and confirm Data Manager receives the corresponding event.
  • Closed Won: set a test Amount and confirm Google Ads receives the correct conversion action, time, value, currency and consent status.

Phase 24 — Post-launch monitoring

Once live, the following should be reviewed on a regular cadence, using Google Ads’ Enhanced Conversions diagnostics report and the Data Manager diagnostics panel:

  •  Conversion upload errors and data-source connection health
  •  Enhanced Conversions match rates, and match rate by identifier type (click ID versus email/phone only), to see how much the Enhanced Conversions layer is actually contributing
  •  Records missing a click identifier, email or phone
  •  Consent-denial rate, and confirmation that denied records are not being sent
  •  Duplicate conversion events
  •   Conversion reporting delays against expected pipeline velocity

Sources:

For the Salesforce implementation, Google’s Salesforce integration documentation covers the core Google Ads connection, while Salesforce explains how custom Lead fields are mapped into Contact, Account and Opportunity records during Lead conversion.

For the Attributer setup, its documentation explains how to add attribution fields to Salesforce Web-to-Lead forms, how to work with other supported form platforms, and how to send form and attribution data into a CRM when Web-to-Lead is not being used.

Attributer also provides specific guidance on capturing the GCLID alongside its standard attribution fields.

For the wider strategy behind CRM-based conversion imports, see our guide to Google Ads offline conversion tracking.

Related Blog Posts