Skip to main content
The Meta Conversions API (CAPI) Connector sends conversion events from Narrative directly to Meta’s Conversions API, improving Facebook and Instagram ad attribution and campaign performance.

Overview

The connector routes conversion data — purchases, leads, checkouts, and more — from any dataset in Narrative to a Meta Ads dataset. Events are matched against Meta user accounts using hashed customer information, enabling Meta to attribute conversions back to ad campaigns and optimize delivery. This connector supports:
  • Offline conversions (e.g., in-store purchases, phone orders)
  • Online conversions (e.g., website purchases, lead submissions)
  • App events
Events are batched and delivered on a schedule you configure. PII fields are SHA-256 hashed before transmission in accordance with Meta’s requirements.

Prerequisites

  • A Meta Ads account with an active dataset (formerly “pixel”). Your dataset ID is the numeric ID found in Meta Events Manager.
  • A Narrative dataset containing the conversion data you want to send.

Sending conversion events

Delivering conversion events to Meta involves three steps: creating a connector profile, preparing your dataset, and adding a connection.

Step 1: Create a connector profile

1

Navigate to the connector

In Narrative, go to Connectors and select Meta Connector.
2

Authenticate with Meta

Click Connect and sign in with your Meta account. During the OAuth flow, you will be prompted to:
  1. Select your business portfolio — Choose the Meta business portfolio that owns the ad accounts you want to deliver events to.
  2. Grant ad account access — Select the ad accounts that Narrative should be able to access. You must grant access to at least one ad account.
Make sure the ad accounts you select have an active dataset (pixel) configured in Meta Events Manager.
3

Select your ad account

Choose the ad account where conversion events should be delivered.

Step 2: Create your dataset

Your dataset must be mapped to the meta_conversion_event Rosetta Stone attribute. The recommended approach is to map your source data to this attribute and then materialize it using Data Studio or NQL.
The connector profile requires your dataset to include meta_conversion_event and at least one supported user identifier for user matching. Meta uses these identifiers to match conversion events to user accounts. Any dataset that contains the required attributes in the correct schema is eligible for delivery.
See the attribute schema below for the full list of event fields, and Supported user identifiers for the identity attributes your dataset must include.

Step 3: Add a connection

1

Open your connector profile

Navigate to the Meta connector profile you created in Step 1.
2

Add a new connection

Click Add Connection and select Deliver Conversion Events as the connection type.
3

Configure delivery options

  • Deliver all data — Toggle on to deliver all data currently in the dataset. If off, only new data written after the connection is created will be delivered.
  • Test Event Code (optional) — Enter a test event code from Meta Events Manager. When provided, events are sent as test events and appear in Meta’s Test Events tab instead of being processed as real conversions. Use this to validate your setup before going live.
4

Connect

Click Connect to activate. Events will begin delivering on the next scheduled run.

The meta_conversion_event attribute

The meta_conversion_event attribute is Narrative’s standardized Rosetta Stone schema for conversion events sent to Meta. When you map your dataset columns to this attribute, Narrative handles transformation, hashing, batching, and delivery to Meta’s API.

Top-level fields

Narrative FieldMeta CAPI FieldTypeRequiredDescription
meta_dataset_id(routing)longYesThe Meta Ads dataset/pixel ID to deliver events to.
event_idevent_idstringYesUnique string for deduplication. Use an order number, transaction ID, or random string.
event_nameevent_namestring (enum)YesThe type of conversion event. See Event names.
event_timestampevent_timetimestamptzYesTimestamp when the event occurred.
sourceaction_sourcestring (enum)YesWhere the conversion occurred. See Action sources.
source_urlevent_source_urlstringNoThe browser URL where the event occurred. Required for website events.
opt_outopt_outbooleanNoIf true, the event is used for attribution only, not delivery optimization.
data_processing_optionsdata_processing_optionsstring[]NoUse ["LDU"] to enable Limited Data Use for non-consented users.
data_processing_options_countrydata_processing_options_countrylongNoRequired if LDU is set. 1 = USA, 0 = geolocate.
data_processing_options_statedata_processing_options_statelongNoRequired if LDU is set without an IP address. 1000 = California, 0 = geolocate.

Custom data fields

Additional event data used by Meta for attribution and optimization. Some fields are required depending on event type.
Narrative FieldMeta CAPI FieldTypeRequired ForDescription
custom_data.valuecustom_data.valuedoublepurchaseMonetary value of the conversion
custom_data.currencycustom_data.currencystringpurchaseISO 4217 currency code (e.g., USD)
custom_data.order_idcustom_data.order_idstringOffline eventsTransaction or order ID for offline event deduplication
custom_data.predicted_ltvcustom_data.predicted_ltvdoublePredicted lifetime value of the conversion
custom_data.content_idscustom_data.content_idsstring[]Product SKUs or content IDs
custom_data.content_typecustom_data.content_typestringproduct or product_group
custom_data.contentscustom_data.contentsobject[]Array of product objects. Each requires id (string) and quantity (long). Optional: item_price (double), delivery_category (curbside, home_delivery, in_store)
custom_data.num_itemscustom_data.num_itemslongNumber of items. Use only with initiate_checkout
custom_data.search_stringcustom_data.search_stringstringSearch query. Use only with search events
custom_data.delivery_categorycustom_data.delivery_categorystringDelivery type for purchase events: curbside, home_delivery, or in_store
custom_data.item_numbercustom_data.item_numberstringIdentifier to distinguish multiple events within the same order

Store data fields

For physical store conversions only.
Narrative FieldMeta CAPI FieldTypeDescription
store_data.brand_page_idstore_data.brand_page_idlongFacebook Page ID of the brand
store_data.store_codestore_data.store_codestringUnique alphanumeric store identifier (max 64 characters)
store_data.store_page_idstore_data.store_page_idlongFacebook Page ID of the store

Supported user identifiers

In addition to the meta_conversion_event attribute, your dataset must include at least one of the following Rosetta Stone identifier attributes. Meta uses these to match conversion events to user accounts. All PII values are SHA-256 hashed by Narrative before transmission. Providing more identifier types improves Meta’s match quality.
Identifier AttributeDescription
sha256_hashed_emailSHA-256 hashed email address
hashed_emailHashed email address (any supported hash)
e164_phone_numberPhone number in E.164 format
telephone_numberPhone number
person_name + iso_3166_1_country + postal_addressFull name, country, and postal address (all three required together)
android_advertising_idAndroid advertising ID (GAID)
apple_idfaApple Identifier for Advertisers (IDFA)
mobile_id_unique_identifierMobile advertising ID
unique_idAny unique user identifier
narrative_idNarrative platform identity

Reference

Event names

The event_name field accepts the following values. Custom event names are not supported.
ValueMeta Standard Event
add_payment_infoAddPaymentInfo
add_to_cartAddToCart
add_to_wishlistAddToWishlist
complete_registrationCompleteRegistration
contactContact
customize_productCustomizeProduct
donateDonate
find_locationFindLocation
initiate_checkoutInitiateCheckout
leadLead
otherOther
purchasePurchase
scheduleSchedule
searchSearch
start_trialStartTrial
submit_applicationSubmitApplication
subscribeSubscribe
view_contentViewContent

Action sources

ValueUse When
physical_storeConversion happened in a brick-and-mortar location. Required for all offline events.
websiteConversion happened on a website. Requires source_url.
appConversion happened in a mobile app.
emailConversion originated from an email campaign.
phone_callConversion happened over the phone.
chatConversion happened via chat.
business_messagingConversion via business messaging (e.g., WhatsApp).
system_generatedAutomated or system-generated event.
otherAny other source.

Event age limits

Meta enforces limits on how old events can be when received:
  • Offline events (physical_store): up to 90 days old
  • All other event types: must be less than 7 days old
Events outside these windows will be rejected by Meta.

Deduplication

Meta uses custom_data.order_id to deduplicate offline conversion events. For web and app events, event_id is used. Ensure these values are stable and consistent if you are sending the same events from multiple sources (e.g., both a pixel and CAPI).

Data privacy

Narrative hashes all customer information fields (email, phone, name, etc.) using SHA-256 before transmission. Raw PII is never sent to Meta. For users who have not consented to data sharing, set data_processing_options to ["LDU"] and provide the appropriate data_processing_options_country and data_processing_options_state values to enable Meta’s Limited Data Use mode.