The Agency Guide to Setting Up Enhanced Conversions Without a Developer


Most agencies know they should have Enhanced Conversions set up for B2B clients. Most don’t. The reason is almost always the same: “we need a developer for that.”

That’s not entirely wrong. Native Enhanced Conversions implementation for offline conversions requires a CRM webhook endpoint, SHA-256 hashing logic, Google Ads API authentication, and retry handling for delivery failures. That’s developer work — if you’re building it from scratch.

The problem is that most performance agencies don’t have a developer. They have media analysts, Google Ads specialists, account managers. Data infrastructure gets deprioritized — or never happens — while Smart Bidding keeps optimizing toward form fills instead of closed deals, and client campaigns underperform in ways that are hard to diagnose.

What Enhanced Conversions Actually Does

Enhanced Conversions is the mechanism that lets Google Ads receive conversion data that occurs outside the browser environment — or that the pixel can’t capture.

For B2B clients, the primary use case is submitting CRM deal-won events as conversions to Google Ads. The flow:

  1. A prospect clicks an ad. The Google Click ID (GCLID) is in the URL.
  2. The lead form captures the GCLID and stores it in the CRM alongside the contact record.
  3. The sales cycle runs — days, weeks, months.
  4. The deal closes in the CRM.
  5. A conversion event is submitted to Google Ads with the GCLID and the deal value.
  6. Smart Bidding learns that the click profile which generated that lead also produced actual revenue.

Without this, Smart Bidding sees only the form fill from step 2 — if the pixel fired, if the user wasn’t on Safari, if they had no ad blocker active. With server-side Enhanced Conversions, the signal arrives independently of those variables, weeks or months after the original click.

Why Native Implementation Stalls Agencies

What native implementation concretely requires:

CRM webhook — when a deal transitions to “closed/won,” the CRM needs to make an HTTP call to an endpoint. That endpoint needs to exist somewhere. Someone needs to build and host that server.

PII normalization and hashing — Google requires email and phone to be normalized (lowercase, trimmed, E.164 format for phone) and then SHA-256 hashed. A normalization error produces a different hash than what Google has on file, and the match fails silently — no error reported, no conversion counted.

Google Ads API integration — the event must be sent to the correct endpoint, with the correct parameters, in the correct format, with valid OAuth2 authentication. Tokens expire and need to be refreshed.

Retry and deduplication — if the API returns a transient error, the conversion needs to be retried. If the webhook fires twice for the same deal, the conversion must not be duplicated.

Estimated timeline for a developer with no prior experience on this API: 2–4 weeks of focused work. For an agency trying to implement this for five clients simultaneously, that’s a 2–4 month project or an expensive consultancy engagement.

What Middleware Replaces

A dedicated middleware — like True Conversions — is a product that already has this infrastructure built. The agency configures the integration, not the code.

What the setup requires from the agency:

1. Connect the CRM — OAuth authorization with ActiveCampaign, RD Station, Pipedrive, or HubSpot. The middleware receives permission to read deal records and contact fields.

2. Map the GCLID field — specify which custom field in the CRM stores the GCLID. The middleware reads this field when the deal closes.

3. Select the conversion stage — which pipeline stage represents “closed/won.” The middleware monitors transitions to that stage.

4. Connect Google Ads — OAuth authorization with the Google Ads account. The middleware lists existing conversion actions; the agency selects the correct one or creates a new one.

5. Test — move a test deal to the closed stage. Check the conversion in the Google Ads conversion report 4–6 hours later (Google’s ingestion delay, not the middleware’s).

Total time: under 30 minutes for a media analyst following the setup documentation. No terminal, no manually copied API keys, no server infrastructure.

A Conceptual Walkthrough: What Happens at Each Step

Step 1: GCLID Capture

The GCLID must be in the CRM before any other configuration makes sense. Verify that the lead form on the landing page captures the gclid URL parameter and passes it into the CRM as a custom field.

Most third-party form tools (HubSpot Forms, Typeform, Calendly) support hidden fields populated from URL parameters. If this isn’t configured, match rate will stay at 40–60% even when everything else is working — because the match falls back to hashed PII, which is less reliable than GCLID. For a detailed breakdown of why GCLID matters and how to diagnose match rate issues, see Offline Conversion Match Rate: How to Get from 35% to 70%+.

Step 2: Webhook Configuration

With middleware, this step is transparent. The product already has the endpoint configured; the agency just authorizes the integration. Without middleware, this is the step that requires a developer — a webhook receiver is a server that needs to be built, hosted, secured, and maintained.

Step 3: PII Hashing

The middleware applies normalization and SHA-256 hashing automatically. The CRM sends raw data (email, phone, name) in the webhook payload; the middleware normalizes and generates hashes before any transmission to Google.

Raw PII never leaves the middleware infrastructure. Google receives only the hashes — which are cryptographically irreversible by design.

Step 4: Google Ads API Submission

The event is structured with the required fields:

  • conversion_action — the ID of the specific conversion action
  • gclid — the Google Click ID from the lead record
  • conversion_date_time — the timestamp when the deal closed
  • conversion_value — the deal value in the account currency
  • user_identifiers — array of hashed email and hashed phone

The middleware handles OAuth authentication, retry on transient errors, and deduplication if the CRM webhook fires more than once for the same deal.

What to Expect in the First Weeks

Week 1–2: events arriving in Google Ads. Validate the match rate in the Enhanced Conversions diagnostic report. Above 60% with GCLID present is expected; above 80% is the target with consistent GCLID capture.

Week 3–8: data accumulating. Smart Bidding doesn’t yet have sufficient volume to shift budget allocation — Google recommends a minimum of 30 conversions per month per conversion action before adjusting bidding strategies toward offline events.

Month 2–3: campaigns generating deals but receiving insufficient budget start gaining impressions. Campaigns generating form fills with no deal correlation start losing. Reported ROAS in the dashboard may drop. The client’s CRM pipeline results should improve.

For agencies managing clients across B2B and e-commerce, the combination of Enhanced Conversions with real profitability tracking at the order level closes the full loop: Google Ads receives net margin per order, not gross revenue, and Smart Bidding learns to optimize for actual business outcomes.

A Note on Conversion Action Setup

One setup mistake that breaks the entire integration: the conversion action in Google Ads must be of type “Import” (also called “Offline import”). If it’s set to “Website” or “App,” the Google Ads API will reject the submission with an error that’s easy to miss if you’re not checking the API response directly.

The middleware validates this during setup and warns if the conversion action type is incorrect. But it’s worth checking manually on the Google Ads side before going live with a client: navigate to Tools > Conversions, find the conversion action, and confirm the “Category” shows “Import from clicks” or equivalent.

Next Step

True Conversions replaces months of development with a 30-minute integration. Connect the CRM, map the fields, select the conversion stage — and deal-won events start arriving in Google Ads as server-side offline conversions, with correct hashing and GCLID included. No code, no server, no developer. Set up at conversions.nexopath.com. Free trial available.