All docs

Self-Serve Conversion Setup Guide

Step-by-step instructions for creating Lead, Qualified Lead, and Closed Won conversions on each ad platform — Google Ads, Microsoft, LinkedIn, Meta, TikTok, Snapchat.

For customers connecting an ad platform to Attribi who don't already have the right offline conversion configured on the platform side.

When you connect Google Ads, Meta, LinkedIn, TikTok, Microsoft Ads, or Snapchat to Attribi, you need a corresponding conversion on that platform so your campaigns can use the offline events Attribi sends. Most attribution tools force you to leave their UI, navigate to Events Manager / Conversions / Goals on the platform, build the conversion manually, then come back. Attribi creates it for you in one click.

This guide explains what each button does, how to verify it worked, and how to handle edge cases.


What you'll see in the Conversion Mapping modal

For every connected ad platform, the Conversion Mapping modal has three funnel-stage tabs: Lead, Qualified, Closed Won. On each tab you can either:

  • Pick an existing conversion from the dropdown — if you already have a Google Ads conversion action / Microsoft conversion goal / LinkedIn conversion rule that fits this stage
  • Click "Create '{Stage}' conversion" (or "Activate" — see below) — Attribi creates it for you on the platform side

Either path, click Save when done.


Two patterns: "Create" vs "Activate"

Different platforms use different bid-optimization models, so the buttons work differently:

PlatformsButton labelWhat happens on click
Google Ads, Microsoft Ads, LinkedIn Ads"Create 'Attribi - {Stage}' in {Platform}"Calls the platform API to mint a brand-new named conversion. Done in seconds.
Meta, Snapchat, TikTok"Activate 'Attribi - {Stage}' in {Platform}"Fires a synthetic test event (with a clearly-synthetic dummy email hash, never any real customer data) so the platform's standard event registers in your Events Manager. Standard events become selectable as bid-optimization goals once they've fired at least once.

In both cases the result is the same — your campaigns gain a new conversion target named Attribi - Lead (or - Qualified / - Closed Won) that Smart Bidding can optimize against.


Per-platform: what gets created

Google Ads

StageNameTypeCategory
LeadAttribi - LeadOffline (upload from clicks)Submit lead form
QualifiedAttribi - QualifiedOffline (upload from clicks)Qualified lead
Closed WonAttribi - Closed WonOffline (upload from clicks)Converted lead
  • Marked Primary for goal by default (so the parent goal isn't flagged Misconfigured)
  • Click-through window: 30 days (max). View-through: 1 day.
  • Counting type: One per click

Verify: Google Ads → Tools → Conversions → Goals → click the goal → confirm Attribi - {Stage} is listed and marked "Action optimisation: Primary".

Microsoft Ads

StageNameTypeGoal Category
LeadAttribi - LeadOffline conversionSubmitLeadForm
QualifiedAttribi - QualifiedOffline conversionContact
Closed WonAttribi - Closed WonOffline conversionPurchase
  • Goal scope: Account (does NOT auto-tag every sibling account)
  • Conversion window: 30 days
  • Side effect: creating an OfflineConversionGoal turns on MSCLKIDAutoTaggingEnabled=true for the account (better tracking, no setup needed)

Verify: Microsoft Advertising → Tools → Conversion Goals → confirm Attribi - {Stage} is Active.

LinkedIn Ads

StageNameType
LeadAttribi - LeadLEAD
QualifiedAttribi - QualifiedQUALIFIED_LEAD
Closed WonAttribi - Closed WonPURCHASE
  • Auto-attached to all campaigns on the account (autoAssociationType=ALL_CAMPAIGNS)
  • Method: Conversions API
  • Post-click window: 30 days (LinkedIn supports up to 365 — a future option)

Pre-req: LinkedIn Conversions API product must be approved on Attribi's developer app. If you see a yellow "Reconnect for Conversions API" chip on the LinkedIn card, click it and re-authorize.

Verify: LinkedIn Campaign Manager → Account assets → Conversions → confirm Attribi - {Stage} is Active.

Meta (Activate, not Create)

The Meta button fires a synthetic Lead event with test_event_code='TEST_ACTIVATE_LEAD' so the standard Lead event registers on your Pixel. Once registered, it's selectable as an ad-set optimization goal.

  • Synthetic dummy email is SHA-256 hashed before sending (never raw, never your customer's data)
  • The event lands in Meta's Test Events tab immediately
  • Within ~5 minutes the standard Lead event shows as Active in Events Manager

Verify: Meta Events Manager → Pixel → Test Events tab (look for TEST_ACTIVATE_LEAD); then check the Overview tab to see Lead marked Active.

Snapchat (Activate, not Create)

The Snapchat button fires a synthetic SIGN_UP event so the standard event becomes selectable in Snap Ads Manager.

Verify: Snap Ads Manager → Events Manager → confirm SIGN_UP is Active on your pixel.

TikTok (Activate, not Create)

The TikTok button fires a synthetic Lead event (TikTok standard event name) with test_event_code='TEST_ACTIVATE_LEAD'. Once registered, the Lead event becomes a Smart+ optimization goal.

Verify: TikTok Ads Manager → Events Manager → confirm Lead is Active.


Mapped existing conversions get auto-promoted to Primary

If instead of clicking Create you map an existing conversion (Google action / Microsoft goal) to an Attribi stage and save, Attribi will silently promote it to Primary on the platform side too. This avoids the "Misconfigured goal" warning that Google and Microsoft show when no Primary action exists in a goal.

  • Google Ads: sets primaryForGoal: true on the mapped action
  • Microsoft Ads: sets ExcludeFromBidding: false on the mapped goal

This is additive — your other Primary actions in the same goal are not demoted (multiple Primary actions can coexist; Google and Microsoft sum them for bidding).


Edge cases

"A previously-deleted conversion with this name is blocking the create"

Google Ads, Microsoft Ads, and LinkedIn Ads all keep deleted/disabled conversions visible in their APIs (they tombstone rather than truly delete). Their name uniqueness is enforced across all statuses, including deleted.

If you previously created Attribi - Lead, deleted it in the platform UI, and then click Create again, Attribi will detect the tombstone and show:

"A previously-deleted Google Ads conversion action with name 'Attribi - Lead' is blocking the create. Open Google Ads → Tools → Conversions, find the deleted action, rename it (or fully delete + recreate), then try again."

This is intentional — re-binding to a deleted resource would silently lose your conversion data (the platform would accept uploads but never reflect them in reporting or bidding).

Fix: Open the platform's Conversions section, find the deleted item, either rename it to free up the name OR fully purge it. Then click Create again.

"Reconnect for Conversions API" chip on LinkedIn

Shown when your LinkedIn integration's stored OAuth scopes don't include rw_conversions. Possible reasons:

  • You connected LinkedIn before the rw_conversions scope was added (legacy connection)
  • LinkedIn's Conversions API product approval hasn't completed yet
  • Attribi's LINKEDIN_RW_CONVERSIONS_ENABLED env flag isn't set

Fix: Click the chip → re-authorize on LinkedIn → grant rw_conversions → chip disappears once granted_scopes contains it.

"Re-clicking Create shows 'Already exists'"

Expected. The Create button is idempotent — clicking it twice is safe. The second click finds the conversion you already created (matched by name + category) and re-binds to the same ID without creating a duplicate.

"I want different conversion values per stage"

The default values are zero-amount (defaultValue: 0). For stages where you have known revenue (e.g., closed-won deals), Attribi sends the actual deal amount per upload via the platform's per-event value field, which overrides the default.

A future feature (A6 — Smart funnel graduation) will let you set tiered defaults per stage so the platform's bidder weighs higher-funnel events more heavily.


What happens after Create / Activate

  1. The conversion appears on the platform side, named Attribi - {Stage}
  2. Attribi persists the conversion's ID in its database (so future uploads target the right resource)
  3. From the next time a lead is created or transitions through your funnel, Attribi will fire offline conversions to that conversion automatically
  4. Within ~24h you'll start seeing reporting data on the platform side
  5. After 15-30 conversions accumulate, Smart Bidding can use it as an optimization signal

Troubleshooting

"Failed to list Google Ads accounts" error

Likely an API version issue. Attribi keeps Google Ads API version current (currently v23 as of May 2026). If you see this, contact support — usually fixed within a deploy.

Create button is greyed out / not visible

  • For Lead/Qualified/Closed Won, the button appears once you've selected an ad account from the dropdown
  • For LinkedIn, the button is hidden if the rw_conversions scope isn't granted (Reconnect chip shows instead)

"Tier blocked" error with deep-link

Means the platform rejected the create due to a permission / tier issue:

  • Google Ads: developer token might not be approved for this customer
  • Microsoft Ads: rare; usually pixel-not-active errors
  • LinkedIn: caller's role on the ad account is below ACCOUNT_MANAGER

The deep-link in the error takes you to the right platform-side fix.


Questions? Hit reply on any onboarding email or contact support.


Need help? Contact us or sign in to your connections page for account-specific tooltips.