pixellint

Meta Pixel and Google Ads need separate conversion contracts

Short answer

The same completed order can trigger a Meta Purchase event and a Google Ads conversion action. They are separate requests sent to separate destinations. Meta's browser event uses a Pixel ID and an event name such as Purchase. A Google Ads website conversion uses a conversion ID and action label. One tag firing does not show that the other platform received the sale.

Validate a pixel Open the rulepack

Start with one confirmed order event

Choose a backend-confirmed order or a stable purchase event in your data layer. Attach the same order ID, actual value, and ISO currency to both vendor integrations. Fire after the purchase succeeds, not on the landing page or every time a shopper reloads a confirmation route. The platforms may report different attributed totals because they saw different ad interactions and apply their own settings. The source transaction count should still be clear.

A shared site event does not mean a shared vendor payload. Send the fields each destination expects. In Meta, the standard event name Purchase is case-sensitive in your implementation. In Google Ads, the conversion action label points the event at a specific action. A GA4 purchase event is a third destination unless you explicitly create a Google Ads conversion from Analytics.

Compare the browser calls

Meta's browser library calls fbq('track', 'Purchase', ...) with value and currency. Its network hit is associated with the numeric Pixel ID and the Purchase event. Google Ads can use the Google tag's gtag('event', 'conversion', ...) command with send_to set to the Ads conversion ID and label, plus value, currency, and transaction_id. GTM can emit the same Ads conversion through its native tag instead of writing gtag code yourself.

Do not paste a Meta Pixel ID into a Google Ads send_to value. Do not put a Google Ads conversion label into Meta's event name. The vendor tags can share a data-layer purchase trigger, but each vendor's final request must be inspected separately. A tag manager preview showing two fired tags is only the first check.

fbq('track', 'Purchase', { value: 79.00, currency: 'USD' }, { eventID: 'order-123' });
gtag('event', 'conversion', {
  send_to: 'AW-123456789/ExampleLabel',
  value: 79.00,
  currency: 'USD',
  transaction_id: 'order-123'
});

Click identifiers and duplicate protection differ

Meta matching may use browser values such as _fbp and _fbc, with _fbc derived from a landing fbclid when one exists. A Google Ads click can carry gclid; Google tag and conversion linker setup help preserve click information for later conversion measurement. Neither platform can recover a click ID your redirect chain stripped before the landing page.

Meta's Pixel plus Conversions API path needs the same event name and event ID on browser and server copies of one order. Google Ads website conversion tags can use transaction_id to reduce duplicate reporting for the same conversion action. Those fields serve different vendor contracts. Reusing your real order ID as the input is sensible, but the parameter names and scope differ.

Check what will influence bidding

A valid Google Ads request can still land on a conversion action marked Secondary, which normally appears in All conversions rather than the main Conversions column and does not drive standard goal bidding. Confirm the action label, goal, primary or secondary setting, counting method, and conversion window. For purchase actions, Every often matches the intent to count each sale; for leads, One can be useful when repeat submissions should not multiply credit.

In Meta, confirm the Pixel ID or dataset, Purchase event, value, currency, and diagnostic status in Events Manager. A browser request alone does not establish that Meta attributed the purchase to an ad. Do not add the Meta and Google Ads dashboard totals together as unique orders: one order can be credited by both platforms.

Run a two-column QA pass

For a single test order, record the order ID and exact checkout time. In Network, capture the Meta event and Google Ads conversion request. Verify destination IDs, event or label, value, currency, and order ID. In the corresponding vendor interface, check event receipt and warnings. Finally compare the backend order ledger to raw observed test events, then compare platform attribution only after each pipe is sound.

Pixellint can inspect a captured Meta pixel URL, a Google Ads conversion URL, or a supported server payload for contract errors. Use its vendor-specific rulepacks. It cannot see a missing request in a HAR you did not capture or resolve an Ads goal setting inside your account.

Questions

Does Meta Pixel replace Google Ads conversion tracking?

No. Each platform needs its own event source or an explicit supported integration. A Meta Purchase hit is not a Google Ads conversion action.

Can both tags fire on one purchase?

Yes. Use the same confirmed order event, then inspect each vendor request and keep the order ID consistent.

Sources

Check the artifact

Paste the pixel URL or JSON body into the playground. Same engine as pixellint validate. Artifacts you test may be stored; see privacy.