Meta

Send conversions to the Meta Conversions API.

Pivolio delivers to the Meta Conversions API at POST https://graph.facebook.com/v21.0/{pixel_id}/events, using hashed customer data plus the browser identifiers Meta needs to match a conversion back to an ad.

Get your credentials

These steps are directional — Meta reorganizes Business settings regularly, so match the concepts rather than hunting for exact labels.

1

Find your pixel ID

In Meta’s Events Manager, select the pixel (dataset) you want conversions attached to. Its numeric ID is shown alongside the name. Use the same pixel your browser tag already uses — sending server events to a different pixel splits your reporting in half.

2

Create a system user

In Business settings, under the users section, create a system user for Pivolio. A system user belongs to the business rather than to a person, so its token keeps working after the employee who made it leaves.

3

Assign the pixel to it

Grant the system user access to that pixel as an asset. A token from a system user with no access to the pixel authenticates fine and then fails on every event.

4

Generate a token

Generate an access token for the system user, scoped to the app you use for ads, and include the ads_management permission. Copy it immediately — Meta shows it once.

5

Connect in Pivolio

Open Destinations → Meta, paste the pixel ID and token, and let Pivolio verify before enabling.

Credential fields

The numeric Meta pixel (dataset) ID that conversions are posted to. Required. It forms part of the request URL, so a wrong value produces a 4xx rather than a quiet no-op.

The system-user access token, with ads_management. Required. Stored encrypted and never returned — to rotate it, paste the new token over the old one.

Optional, and used only during verification — it is never stored. Supply it if you want the verification event to show up in the Test events tab in Events Manager.

The reason test_event_code is deliberately not persisted: Meta routes any event carrying a test code into the Test Events view instead of counting it as a real conversion. A code saved once would silently divert your entire production conversion stream — the kind of failure that looks like “Meta stopped attributing” for weeks.

Event mapping

Meta ships these defaults. Anything not listed is skipped unless you add a custom mapping.

Pivolio eventMeta event
page_viewPageView
view_contentViewContent
add_to_cartAddToCart
add_to_wishlistAddToWishlist
initiate_checkoutInitiateCheckout
add_payment_infoAddPaymentInfo
order_completed, purchasePurchase
lead_submitted, leadLead
complete_registration, sign_upCompleteRegistration
searchSearch
contactContact
find_locationFindLocation
scheduleSchedule
start_trialStartTrial
subscribeSubscribe
submit_applicationSubmitApplication
donateDonate

Identifiers Pivolio sends

Email, phone, name, city, state, zip and country are normalized and SHA-256 hashed server-side before they leave. Send raw values — hashing them yourself produces different digests than Meta expects and quietly collapses your match rate.

Two Meta-specific details are worth knowing:

  • _fbc is derived from fbclid. If the browser cookie _fbc is absent but the landing page carried an fbclid, Pivolio constructs the click cookie as fb.1.{event_time_ms}.{fbclid}. This recovers matches on visitors whose browser blocked the Meta pixel from writing its own cookie.
  • external_id is hashed byte-for-byte, with no lowercasing or trimming — that is what Meta’s spec requires, and it differs from every other field.