PandaDoc conversion tracking: Google Ads sees the inquiry, never the signed proposal
Your ads get credit for a contact form, then the deal closes weeks later when the client signs a PandaDoc proposal that Google Ads and Meta never hear about. We carry the ad click into the document's metadata and send completed and paid proposals back with their grand total, so bidding chases signatures instead of quote requests. For agencies, coaches, security firms and loan brokers who sell on a written proposal, that signature is the sale.
Free30 minutesNo obligation
PandaDoc · what breaks
What goes wrong when PandaDoc closes the deal your ads started
- 01
"Google Ads counts the inquiry, not the signed contract"
The proposal signed in PandaDoc later never reaches the ad account, so Smart Bidding learns from people who asked for a quote and vanished, and keeps spending to find more of them.
- 02
"The client signs on PandaDoc's page, not my website"
A shared proposal link opens a signing page on PandaDoc's domain, not your site. Your site's Pixel and Google tag aren't on it, and there's no thank-you page of yours to fire a conversion from.
- 03
"A small one-off project and a year-long retainer look identical"
Every PandaDoc document carries a grand total, but none of it reaches your ad accounts. Bidding pays as much to win the next small job as the next big contract.
- 04
"Signed isn't the same as paid"
PandaDoc tracks completed, waiting for payment and paid as separate statuses. Count signatures alone and a client who never pays the deposit still looks like revenue.
PandaDoc · the fix
What changes after the fix — PandaDoc
Campaigns judged by signed proposals
Each completed PandaDoc document is matched to the ad click that started it, so you see which keywords and audiences produce clients.
Bidding weighted by contract size
The document's grand total and currency go out with the conversion, so Google Ads and Meta can favor the searches that bring retainers over small one-offs.
Deposits and declines counted honestly
Paid documents count as sales. Declined proposals, and ones that expire unsigned, never reach your conversion columns.
PandaDoc · architecture
What PandaDoc actually lets you hook into
From PandaDoc's own developer and help docs. Its integrations list names CRMs, accounting and chat tools but no Google Ads, GA4 or Meta connection, so we build the ad side.
- 1
Webhooks on document status changes
document_state_changed fires when a document moves to sent, viewed, completed, paid and other statuses. Its payload includes the document's metadata, grand total, status and recipients.
- 2
Metadata on Forms
An embedded PandaDoc Form accepts up to 10 metadata key-value pairs in its JavaScript config, or as URL-encoded JSON in the link, which is where the click ID goes.
- 3
Browser messages from embedded Forms and signing
The Form iframe posts loaded, started and completed messages to your page. Embedded signing sessions post session_view.document.completed from app.pandadoc.com.
- 4
Redirect after signing
Set per recipient through the API on Business and Enterprise plans (not during a trial), HTTPS only, and not available for embedded signing.
- 5
Zapier and HubSpot
Zapier offers Document Sent, Status Changed, Completed and Paid triggers. The HubSpot integration can move a deal to Closed won or Closed lost on document status, but neither sends anything to ad platforms.
PandaDoc · diagnose
Where PandaDoc tracking breaks, in diagnostic order
The usual fault: the ad click never reaches the document, so a signature has nothing to match.
- 01
Check document metadata for a click ID
If recent completed documents have empty metadata, nothing downstream can attribute them.
- 02
Find where proposals get created
HubSpot or Salesforce, the API, a Form or by hand: each route carries the click ID differently.
- 03
Confirm which event marks completion
With two signers, a co-owner finishing their part is recipient_completed, not a finished document.
- 04
Compare completed, waiting for payment and paid
If deposits run through a gateway in PandaDoc, decide which status is the sale.
- 05
Look for missed and repeated webhooks
PandaDoc doesn't retry a failed delivery, and a manual resend repeats the same event. We log each X-PandaDoc-Webhook-Event-Id so a signature is never lost or counted twice.
PandaDoc · prove
The QA evidence — PandaDoc
Run on a real proposal sent from your PandaDoc workspace to a test recipient who arrived through a tagged ad URL.
Source of truth
PandaDoc documents list: completed and paid documents by date, with grand total, recipients and metadata
- A test inquiry from an ad-tagged URL, with the click ID visible in the resulting document's metadata.
- Exactly one Google Ads and one Meta conversion per completed document, with matching value and currency.
- A paid test document reported once as a purchase, at the value agreed for your payment setup.
- A declined test proposal confirmed absent from every conversion column.
- Completed documents reconciled one by one against both ad platforms over a closed window.
- The same check repeated 30 days later and after any template or CRM integration change.
PandaDoc · free audit
What we check in the free audit
- Check document metadata for a click ID
- Find where proposals get created
- Confirm which event marks completion
- Compare completed, waiting for payment and paid
- Look for missed and repeated webhooks
Checked against
PandaDoc documents list: completed and paid documents by date, with grand total, recipients and metadata
Free30 minutesNo obligation
PandaDoc · when not to buy
When you don't need this on PandaDoc
We'll tell you on the call if you're one of these.
- If most of your proposals go to referrals or existing clients and ads bring in very little, there's nothing to attribute.
- If you sign only a handful of ad-sourced proposals a month, uploading them to Google Ads by hand from your PandaDoc list may be enough.
- If your CRM already sends closed-won deals to your ad accounts with the click ID and value, and the counts match your completed PandaDoc documents, leave it alone.
- If you don't run Google or Meta ads yet, there's no click to match a signature to.
PandaDoc · what we deliver
The event map on PandaDoc
Inquiry captured with the click ID
Your site form, or an embedded PandaDoc Form, stores the gclid, gbraid or fbclid so it can travel into the document.
Proposal sent
The document.sent status, logged for pipeline reporting. Not used for bidding.
Proposal viewed
The document.viewed status, a buying signal we report but keep out of optimization.
Proposal completed
The primary conversion once every recipient has finished, valued at the document's grand total. A single signer finishing (recipient_completed) doesn't count.
Payment received
The document.paid status, sent as a purchase. Before it goes live we confirm whether your payment block collects the full total or a deposit, and value it to match.
Declined, voided or deleted
Excluded from conversions, and corrected after the fact wherever the ad platform allows it.
Written guarantee
95%+ tracking accuracy
Measured against PandaDoc documents list: completed and paid documents by date, with grand total, recipients and metadata. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
PandaDoc questions, answered
Not that we found in PandaDoc's documentation. Completed documents reach the ad platforms through a webhook or Zapier and a server-side container.
Not on a standard shared link, because signing happens on PandaDoc's hosted page. An embedded PandaDoc Form on your own site does post a completed message to the page, and a listener can turn that into an event.
Through document metadata. PandaDoc Forms accept up to 10 metadata pairs in the embed config or the link, and documents created through the API take a metadata object too. The webhook returns it on every status change; for documents your CRM creates, we confirm whether that integration passes it.
If clients pay inside the document, paid is the stronger signal and completed is the backup, once we confirm your payment setup moves documents to paid (PandaDoc's API docs describe that status for Stripe). If you invoice elsewhere, count completed and reconcile against your books.
It can move a HubSpot deal to Closed won when the document completes, but it sends nothing to Google Ads or Meta, so the click ID and value still need wiring.
Mostly service businesses that sell on a written proposal: marketing and web design agencies, business coaches, HR outsourcing firms, security guard companies, loan brokers and senior placement advisors.
More on PandaDoc
- Enhanced ConversionsEnhanced Conversions enrich the conversions that already fire. First we make sur…
- Meta CAPIA one-click CAPI integration sends thin events. That's why your Event Match Qual…
- Cross-Domain TrackingYour checkout provider is the best performing traffic source in your GA4 account…
RELATED GUIDES
Booking tools beside PandaDoc, and what their bookings feed
- SalesRabbitYour rep drops a sale pin in SalesRabbit. Your ads never hear about it.
- LeadPerfectionYour ads say leads. LeadPerfection says who sat and who signed. We connect the two.
- Builder PrimeYour rep marks the job Sold in Builder Prime. Google Ads never finds out.
- LeapLeap shows the window job your rep signed in SalesPro. Google Ads still thinks it was a form fill.
- boberdooboberdoo conversion tracking that counts sold leads, not form fills
- SteerSteer conversion tracking: which ads actually brought cars into your bays?
- DocuSignThe client signed in DocuSign. Your ads still think the phone call was the win.
- BuildiumGoogle Ads keeps counting leads. Buildium shows almost no applications.
Free · 30 min
Find out which ads end in a signed PandaDoc proposal
Free30 minutesNo obligation
