VoidhashDocs
DevelopersHelp centerGuidesAPI reference
Dashboard
Help center
Get started
Get access to Studio
Find your way around Studio
Glossary
Files and bots
Files and boards
Bots
Analytics
Analytics overview
Reports
Chart reference
Metric definitions
Insights and dashboards
Query with VoidQL
Alerts
Check your data
Ads
Ad measurement
Connect Meta Ads
Send purchases to Meta
Ads reports
People
Find and help a person
Refunds and cancellations
Products
Set up products and perks
Paywalls
Design a paywall
Prices and buttons
Design for every device
Onboarding flows
Translate a paywall
Fonts and images
Paywall components
Build and deploy
Paywall locations
A/B testing
Feature flags
A/B tests
Automations
Automations
Push notifications
Settings
Payment providers
Manage projects and teams
Members and roles
SSO and directory sync
Notices
Plans and billing
Audit log
Your account
Help
FAQ
Troubleshooting

Send purchases to Meta

Report purchases to Meta's Conversions API from Voidhash, for people who agreed to it.

Voidhash can send your production purchases to Meta's Conversions API, so Meta counts purchases its pixel and app tracking miss, such as renewals and purchases on another device, and optimizes your campaigns for people who buy. Sending is off until you turn it on, and it uses its own token, separate from the ad account's.

What Meta receives

For each production purchase of a person who agreed to it, Voidhash sends a Purchase event with its time, amount and currency, plus what Meta needs to recognize the person: their email and user ID in hashed form, and the Meta click details from the ad that brought them in.

Voidhash doesn't send:

  • purchases of people Meta can't recognize: no email and no Meta click details;
  • free trials, refunded purchases, and purchases of people whose data is being deleted;
  • purchases from the sandbox or test environments.

Meta counts each purchase once, even if it arrives twice. If your website or app also sends purchases to Meta, they count twice; send them one way only.

Ask for agreement

Agreeing to analytics doesn't cover sharing purchases with ad platforms. Your app has to ask separately and record the answer; your developers add this with the SDK's ad data sharing setting, for example on the web (developer docs). Only purchases of people who said yes are sent.

  • Someone who later says no stops being sent from then on. What Meta already received stays with Meta, even after you delete the person's data.
  • Changing the answer back to yes within 5 minutes of saying no has no effect.

On iOS, sending someone's purchases to Meta can count as tracking under Apple's rules. Check with your team whether your app needs App Tracking Transparency permission first.

Set it up

Get a dataset and token

In Meta's Events Manager, select your dataset (pixel) and copy its ID. Under its Settings, in Conversions API, generate an access token.

Enter them in Studio

Open Settings → Ad platforms → Meta and click the Measurement tab. Meta opens from Ad platforms only once an ad account is connected. Enter the Dataset id and Access token, turn on Send purchases to Meta (it stays off until both are in), and click Save. The token is stored encrypted and never shown again.

Meta settings at the Measurement tab, where the Conversions API dataset and token goDataset id and Access token go on the Measurement tab

Test with a test event code

Copy the code from the Test events tab in Events Manager into Test event code. Meta lists what arrives under that tab and doesn't count it. Make a real production purchase, wait about 20 minutes until it shows in Events Manager, then remove the code. Purchases sent as tests aren't sent again.

Changing these settings needs an admin or the owner.

When purchases arrive

A purchase usually reaches Meta within 20 minutes. Voidhash sends every 15 minutes, after giving each purchase a few minutes to settle.

  • Turning it on sends purchases made from then on, not earlier ones.
  • Turning it off and on again drops what hadn't been sent yet.
  • Purchases waiting for a price wait up to an hour for the store to confirm the price, then are skipped. Many skips mean the store's notifications don't reach Voidhash; ask an admin to check the store's notifications in Payment providers.

When it fails

Measurement shows when Meta last took purchases and the last error, and warns when sending hasn't run for over an hour. Voidhash keeps retrying every 15 minutes and resumes where it stopped once you fix the cause, for example with a new token. Meta doesn't accept purchases older than 7 days, so anything that waited longer is skipped.

When Meta refuses a purchase as invalid, Voidhash skips it and shows Meta's reason. After 10 refusals in a row, Voidhash pauses sending until you fix the setup, so the remaining purchases aren't skipped. While a test event code is set, any refusal pauses sending.

Install referrer key

Android installs from Meta ads carry a coded note naming the ad. To read it, copy the Install Referrer Decryption Key from your app's settings in Meta for Developers and enter it as the Decryption key under Install referrer on the Measurement tab. Without it, installs from Meta ads count without their ad. Measurement warns if the key later fails to work.

If something's off

  • Nothing reaches Meta: check Send purchases to Meta is on and the token is valid; the Measurement tab shows the last error.
  • Meta counts purchases twice: your website or app also sends them; send them one way only.
  • Measurement says purchases could not be sent: it lists why, such as people who didn't agree to sharing or whom Meta can't recognize. See What Meta receives.
  • Delivery says purchases were skipped: they waited past Meta's 7 days, Meta refused them, or they had no price after an hour. See When it fails.

Next steps

  • Connect Meta Ads
  • Ads reports
  • Ad measurement

Still stuck? Check Troubleshooting, ask us on Discord, or email support@voidhash.com on a paid plan.

Something wrong or missing on this page? Tell us by email or on Discord.

PreviousConnect Meta AdsNextAds reports

On this page

What Meta receivesAsk for agreementSet it upGet a dataset and tokenEnter them in StudioTest with a test event codeWhen purchases arriveWhen it failsInstall referrer keyIf something's offNext steps