Freshpaint
HomeLogin
  • Documentation
    • What is Freshpaint?
    • ⚕️HIPAA Mode
    • 🏗️Building Out Your Account
    • 🌐Overview of Features
    • Guides
      • 📡Add Autotrack to your website to collect data from your users
        • Installing the Freshpaint Javascript SDK
        • Installing the Freshpaint SDK with a Content Security Policy (CSP)
        • Installing the Freshpaint Javascript SDK with Server-Side Rendering (SSR) + React
        • Autocapture + React
        • Configuring a Destination
        • Labeling User Actions
        • How do I install Freshpaint with Typescript?
      • 🔁Send historical data to any destination with Time Machine
      • Next.js Quickstart Guide
      • Android Quickstart Guide
        • Installing the Freshpaint Android SDK
        • Configuring a Destination
        • Instrumenting Your App
      • iOS Quickstart Guide
        • Installing the Freshpaint iOS SDK
        • Configuring a Destination
        • Instrumenting Your App
      • React Native Quickstart Guide
        • Installing the Freshpaint React Native SDK
        • Configuring a Destination
        • Labeling User Actions
        • Configuring Property Capture
    • Setting up Properties
    • Setting up Your Destinations
      • Enabling and Disabling a Destination
      • Deleting a Destination
    • Setting up Your Events
    • User Identification
      • Designated Identify Properties
    • Maps
    • Analytics (Beta)
      • Web Analytics Dashboard
      • Campaigns
      • Service Lines
      • Data Glossary
    • Translations
    • Web Tracker Monitoring
      • Tracker Resolution Types
      • Historical Scans
  • Integrations
    • Destinations
      • Demand Side Platforms (DSPs)
        • Basis
          • Basis Quick Start Guide
          • Basis Reference
        • Google Campaign Manager 360
        • StackAdapt
          • StackAdapt Quick Start Guide
          • StackAdapt Reference
        • theTradeDesk
          • theTradeDesk Quick Start Guide
          • theTradeDesk Reference
          • theTradeDesk with CM360 Configuration Guide
        • Viant
          • Viant Quick Start Guide
          • Viant Reference
      • Direct Response Ads
        • Facebook Conversions API
          • Facebook Conversions API Quick Start Guide
          • Facebook Conversions API Reference
        • Google Ads Conversion API
          • Google Ads Conversion API Quick Start Guide
          • Google Ads Conversions API Reference
        • Google Ads
          • Google Ads Quick Start Guide
          • Google Ads Reference
        • LinkedIn Ads
          • LinkedIn Ads Quick Start Guide
          • LinkedIn Ads Reference
        • Microsoft Ads (formerly Bing Ads)
          • Microsoft Ads Quick Start Guide
          • Microsoft Ads Reference
          • Microsoft Ads Multi-Config Reference
        • Pinterest Ads (Beta)
          • Pinterest Ads Quick Start Guide
          • Pinterest Ads Reference
        • Pinterest Tag
        • Reddit Ads
          • Reddit Ads Quick Start Guide
          • Reddit Ads Reference
        • TikTok Ads
        • Twitter Ads
      • Data Activation
        • ActiveCampaign
          • ActiveCampaign Quick Start Guide
          • ActiveCampaign Reference
        • Amplitude
          • Amplitude Quick Start Guide
          • Amplitude Reference
        • Braze (formerly Appboy)
          • Braze Quick Start Guide
          • Braze Reference
        • Customer.io
          • Customer.io Quick Start Guide
          • Customer.io Reference
        • Freshsales
        • Google Analytics 4 Proxy
          • Google Analytics 4 Proxy Quick Start Guide
          • Google Analytics 4 Proxy Reference
          • Google Analytics 4 Proxy Advanced Tracking Configurations
        • Google Analytics 4 Server-Side
          • Google Analytics 4 Server-Side Quick Start Guide
          • Google Analytics 4 Server-Side Reference
        • Heap
        • Hotjar
        • HubSpot Cloud
        • HubSpot Web
        • impact.com
          • Impact.com Quick Start Guide
          • Impact.com Reference
        • Intercom
          • Intercom Quick Start Guide
          • Intercom Reference
        • Iterable
          • Iterable Quick Start Guide
          • Iterable Reference
        • June
        • Klaviyo
        • Mixpanel
          • Mixpanel Quick Start Guide
          • Mixpanel Reference
        • OneSignal
          • OneSignal Quick Start Guide
          • OneSignal Reference
        • Sendinblue
        • Sentry
        • Vero Cloud
        • Webengage
        • Webhooks
        • Woopra
        • Zendesk
      • Data Warehouses
        • Azure Warehouse Setup
        • BigQuery Warehouse Setup
        • Databricks Warehouse Setup
        • Postgres Warehouse Setup
        • Redshift Warehouse Setup
        • S3 Warehouse Setup
        • Snowflake Warehouse Setup
      • Consent Management
        • Osano
        • OneTrust
        • Custom Consent Manager
    • Sources
      • Web
        • Autotrack
        • Precision Tracking
      • CallRail
      • Invoca
      • Customer.io
      • Intercom
      • Mailchimp
      • React Native
      • SendGrid
      • Sendinblue
      • Server-Side
      • iOS
    • 🔷Google Tag Manager integration
      • Google Tag Manager migration
      • Quick Start Guide
    • 📺Freshpaint Video Platform
    • 🖼️Impression Pixel
  • Admin Panel
    • Event Library
      • Event Library Bulk Actions
      • Event Definition Filters
      • Event Tester
      • 🔁Time Machine
      • Visual Tagger
      • Advanced Options
        • Tag Manager
        • Disabling Target Text Capture
        • Cross Domain Tracking
    • Projects & Environments
    • Teams
      • Role-Based Access Control (RBAC)
    • Transformations
      • Standard Events
      • Modify Data
      • Modify User Data
      • SQL Transformations
    • 📈Destination Monitoring
    • 🔎Investigate: Testing and Debugging
      • Live View
      • Event Verification
  • Reference
    • Developer Docs
      • Freshpaint Web SDK Reference
      • Freshpaint Web SDK Options
      • Freshpaint React Native SDK Reference
      • Freshpaint iOS SDK Reference
      • Freshpaint Android SDK Reference
      • HTTP API
    • Frequently Asked Questions
      • How do I circumvent ad blockers?
      • Can Freshpaint track users across domains?
      • Can I install Freshpaint on a Chrome extension?
      • What properties are captured with my events?
      • How Do I Switchover From Segment?
      • How Do I Switch From Native Google Analytics to the Freshpaint Google Analytics Destination?
      • Where do I find my Environment ID?
      • Is Freshpaint GDPR & CCPA Compliant?
      • Can I use transformations to anonymize data for client-side destinations?
      • How do I QA or debug my data?
      • Why Do My Numbers Differ Across Different Tools?
      • Billing: How Does Freshpaint Determine MTUs?
      • Can I Use Freshpaint on Multiple Sites?
      • How Can I Export Data From Freshpaint?
      • How Does Freshpaint Identify Users?
      • How Many Events Should I Create?
      • What Should I Name My Events?
      • How do I track scroll depth?
      • What Data Does Freshpaint Collect?
        • Data Collected on Web
        • Data Collected on React Native
      • Does Freshpaint's Autotrack slow my site down?
      • Running Freshpaint with a Proxy
      • Should my Environment ID be treated as a sensitive key?
      • How Does Freshpaint Determine Session Count?
      • What is the difference between client-side and server-side connection mode?
      • What is a Proxy Integration?
      • Where can I view Freshpaint’s Status?
      • Does Freshpaint provide HIPAA audit logs?
      • Freshpaint Cookie Too Large
      • How does Freshpaint compare to server-side Google Tag Manager?
      • If a user re-installs my app, will Freshpaint generate a new device ID?
      • Why doesn't Freshpaint need a BAA before sending data to Google Ads and Facebook Ads?
      • What Implementation Services Does Freshpaint Offer?
      • Single Sign On (SSO) Setup
Powered by GitBook
On this page
  • Destination Info
  • Events
  • Standard Facebook Events
  • Required Server Event Parameters
  • Additional Parameters
  • Configuration Options
  • Transformations
  • Options for Configuring Facebook Destinations
  • Use Only Facebook Conversions API
  • Use both Pixel and Conversions API to send the same events
  • Use both Pixel and Conversions API to send different events
  • Validation
  • View-Through Conversions and Retargeting

Was this helpful?

  1. Integrations
  2. Destinations
  3. Direct Response Ads
  4. Facebook Conversions API

Facebook Conversions API Reference

PreviousFacebook Conversions API Quick Start GuideNextGoogle Ads Conversion API

Last updated 6 months ago

Was this helpful?

Destination Info

  • Accepts calls

  • Supports

  • Supports forwarding from the

  • Refer to this destination as Facebook Conversions API in the

    • If you've configured multiple Pixel IDs, you can choose a specific one by suffixing the Pixel ID, such as: Facebook Conversions API::0123456789012345. You can retrieve this value from the Facebook Conversions API configuration page for the Pixel ID of interest.

When no suffix is specified, all configured Pixel IDs are selected for inclusion / exclusion.

  • Connection Modes:

Client-side
Server-side

Web

Mobile

Server

This is a reference document for the Facebook Conversions API destination. For information on how to set up this integration, see the.

Events

When you send an event to Facebook from Freshpaint, Freshpaint will create an event in Facebook by hitting Facebook's endpoint at:

Standard Facebook Events

See below for a complete list of Facebook standard events, the Freshpaint event definitions they are mapped to, and the available properties that can be sent in with each event. All properties are optional unless otherwise noted as "Required".

Facebook Event
Freshpaint Event Definition
Available Facebook Properties

AddToCart

AddToCart

content_ids, content_name, content_type, contents, currency, value

product added

added product

AddToWishlist

AddToWishlist

content_name, content_category, content_ids, contents, currency, value

AddPaymentInfo

AddPaymentInfo

content_category, content_ids, contents, currency, value

CustomizeProduct

CustomizeProduct

``

Contact

Contact

CompleteRegistration

CompleteRegistration

content_name, currency, status, value

Donate

Donate

InitiateCheckout

InitiateCheckout

content_category, content_ids, contents, currency, num_items, value

checkout started

started checkout

Lead

Lead

content_category, content_name, currency, value

Purchase

Purchase

Required: value, currency Optional: content_ids, content_name, content_type, contents, num_items

Schedule

Schedule

Search

Search

content_category, content_ids, contents, currency, search_string, value

products searched

searched products

StartTrial

StartTrial

value, currency, predicted_ltv

SubmitApplication

SubmitApplication

Subscribe

Subscribe

value, currency, predicted_ltv

ViewContent

ViewContent

content_ids, content_category, content_name, content_type, contents, currency, value

product list viewed

viewed product list

product category viewed

viewed product category

product viewed

viewed product

Facebook Events are case-sensitive

Any of the space-delimited names above are case-insensitive and may be alternatively delimited by an underscore or no separation. For example, "product added" can also be expressed as:

  • Product_added

  • productAdded

These non-Facebook-specific names can be useful when sending to multiple destinations, such as Facebook Conversion API and TikTok Ads, without requiring a Rename Transformation for one or both destinations.

Required Server Event Parameters

Parameters are JSON-formatted objects that you can include when tracking standard and custom events. They allow you to provide additional information about your users and their actions.

Event Source URL

Action Source

action_source is set to "website" by default for server-side events. action_source should be included under properties on track events.

Action source value
Description

website

Conversion was made on your website.

app

email

Conversion happened over email.

phone_call

Conversion was made over the phone.

chat

Conversion was made via a messaging app, SMS, or online messaging feature.

physical_store

Conversion was made in person at your physical store.

system_generated

Conversion happened automatically, for example, a subscription renewal that’s set on auto-pay each month.

other

Conversion happened in a way that is not listed.

Client User Agent

client_user_agent is automatically set from the built-in $user_agent property, or by including the user_agent property on track events. The value should be the user agent of the browser where the event occurred.

Additional Parameters

User Traits

User traits you can include as event properties to improve match rate include:

  • email

  • phone

  • last_name

  • first_name

  • ip_address(is automatically set from built-in $ip property, or from ip_address property)

  • user_agent

  • state

  • city

  • zip

  • country

  • dob

  • gender

  • email

  • phone

  • last_name

  • first_name

  • state

  • city

  • zip

  • country

  • dob

  • gender

Freshpaint will automatically hash the values sent with any of these properties when sending them to Facebook.

Facebook's fbp and fbc Parameters

You should ensure thefbcparameter, at minimum, is sent whenever possible.

The fbc parameter is automatically derived and sent by Freshpaint when the fbclid query parameter is available (captured by Freshpaint as $fbclid). If in HIPAA mode, you must have the Recommended property $fbclid Allowlisted for this to work. You may explicitly send fbc if desired, in which case it will be sent, overriding the $fbclid-derived value if any (provided that it's Allowlisted, if in HIPAA mode).

Configuration Options

Transformations

Converting Freshpaint Events Into Facebook Standard Events

In the example below, we are going to transform an existing "Test Event" into one of Facebook's standard Purchase events.

Then, select the "Purchase" event from the list of standard mappings and click "Save" to go to the following step:

In the case of the Purchase event, your existing Freshpaint event will need the following event properties:

  • value (amount of the conversion)

  • currency (USD, CAD, etc)

In the case of the InitiateCheckout event, your existing Freshpaint event will also need the following event property:

  • num_items (number of items)

For this transformation, you'll see that the event will be sent to Facebook named as "Purchase" while converting the value property type into a number and sending the currency property value in all uppercase characters as required by Facebook.

If a currency property isn't sent with your conversion event and all of your conversions are in a single currency type such as USD, you can add a new transformation rule to send USD as a constant property for your conversion event:

As new instances of "Test Event" occur, the transformation would then send them to the Facebook Conversions API destination as standard Purchase events.

If a currency property isn't sent with your conversion event and all of your conversions are in a single currency type such as USD, you can add a new transformation rule to send USD as a constant property for your conversion event:

As new instances of "Test Event" occur, the transformation would then send them to the Facebook Conversions API destination as standard Purchase events.

Note: events may take a few minutes to populate in this view.

Options for Configuring Facebook Destinations

You can choose from the following implementation options:

If you are a HIPAA customer, you should use only Facebook Conversions API

Use Only Facebook Conversions API

This approach is best if you don't want to load the Facebook Pixel on your site, or if you want more control over what gets sent to Facebook.

HIPAA customers should use this approach to remain HIPAA complaint

Matching

When you send user actions to Facebook, Facebook will attempt to match those actions to a particular Facebook user. When using just the Facebook Conversions API without including many properties normally collected in the browser, the match rate will likely be lower than if they were included.

Deduplication

In this approach, events are only sent from the server, so no deduplication is necessary.

Use both Pixel and Conversions API to send the same events

By sending the same events from both the browser via the Pixel and the server via the Conversions API, you can improve the accuracy of browser events by providing redundancy. Events that previously would've been lost (e.g. due to the browser Pixel being blocked or network errors) can still be captured using the Conversions API.

Matching

When you send user actions to Facebook, Facebook will attempt to match those actions to a particular Facebook user. For matching in this configuration to work best, the same external_id should be sent from both the browser and server.

Deduplication

When the same event is sent from both the browser and the server, the events must be deduplicated to avoid having the same event counted twice. For events to be deduplicated, event names must be the same, and the server event from the Conversions API must arrive after the client event from the Pixel. In this case, the server event is discarded.

If the server events is received first, no deduplication occurs. The server event must arrive after the client event in order to deduplicate.

Use both Pixel and Conversions API to send different events

In this configuration, you will send some browser events through the Pixel and some server events to the Conversions API. This approach is best when you have events that can't be captured in the browser, such as a separate payment system. This approach is also ideal when you want to include sensitive data that shouldn't be sent to the browser.

Matching

When you send user actions to Facebook, Facebook will attempt to match those actions to a particular Facebook user. For matching in this configuration to work best, the same external_id should be sent from both the browser and server.

Deduplication

In this approach, different events are sent from the browser and the server, so no deduplication is necessary.

Validation

Then, you can send the test event code from your browser console like so:

  • freshpaint.track("Test Event", {test_event_code: 'TEST60659'}) OR

  • freshpaint.addEventProperties({test_event_code: 'TEST60659'})

View-Through Conversions and Retargeting

If user traits are not provided, then view-through conversions and retargeting are not possible.

If your Freshpaint account is set up in , the URL will be redacted by default because it may contain PHI. For example, if the URL of the event is https://example.com/heart-conditions#treatments?user=alice then Freshpaint will send https://example.com/url-redacted-by-freshpaint. To send the complete URL to facebook, add the Built-in URL ($current_url) property to your HIPAA allowlist.

Facebook requires every event sent to the Conversions API to have an action_source parameter describing where the event came from. If action_source is "website" (the default value), then the Built-in User Agent($user_agent) / user_agent is required to be Allowlisted, if in HIPAA mode. The URL must also be sent in some form - as noted above, Freshpaint will always send a value for URL. These correspond to the client_user_agent and event_source_url properties described in .

Conversion was made on an application(Android, iOS, Windows). See Facebook conversions app data .

When you send user actions to Facebook, Facebook will attempt to match those actions to a particular Facebook user. In most cases, you'll want to send additional user traits and to improve the number of the events that are matched to a Facebook user. See on all of the parameters that Facebook Conversions API accepts. The Freshpaint integration also supports the values seen in .

Facebook requires the following to be hashed:

Read on how match quality for events helps deliver ads to people who are more likely to take the action you care about, and attribute those actions back to your ads.

The fbp parameter is automatically generated and sent by Freshpaint. This generated value can be overridden if you send the value with the event (Allowlisting applies here in HIPAA mode). See for more information.

Freshpaint events can be converted into one of Facebook's . A popular use case would be to convert an existing conversion event into Facebook's Purchase event. The Conversions API creates a connection between your first-party customer data and the Meta systems that optimize ad targeting and help measure the results of your advertising efforts.

To get started, create a new and select . Next, select the existing Freshpaint event you want to transform and the destination you want to send it to:

Some of Facebook's requires a certain set of properties.

Finally, visit your and navigate to the Overview tab and confirm the Purchase event is in the list:

There are a few different ways to implement conversion tracking with Freshpaint's Facebook Conversions API integration. You can use it to complement tracking with your , or you can use it as a standalone integration. The option that's best for you depends on your specific goals with the Facebook Conversions API.

The match rate can be improved by including .

This can be done by enabling the "Use User Id or Anonymous Id as External Id" setting in the Facebook Pixel destination. Enabling this setting will direct Freshpaint to use the User ID for identified users or Anonymous ID for anonymous users as Facebook's both on the browser for the Pixel and for the server/Conversions API, enabling Facebook to better match users.

You can also improve the match rate by including some to your events.

For Facebook to deduplicate events correctly, the recommended "Use UserId or Anonymous Id as External Id" setting must be enabled, OR the must be included in server-side events.

This can be done by enabling the "Use User Id or Anonymous Id as External Id" setting in the Facebook Pixel destination. Enabling this setting will direct Freshpaint to use the User ID for identified users or Anonymous ID for anonymous users as the both on the browser for the Pixel and for the server/Conversions API, enabling Facebook to better match users.

You can also improve the match rate by including some to your events.

To validate that your events are making it to Facebook, you can use Facebook's test_event_code property. To set up a test event code, see: .

View-through conversions and retargeting are possible for a user when the , such as email or IP address, match a user in Facebook.

Track
HIPAA mode
Google Tag Manager Integration
Integrations object
Quick Start guide
event API
https://graph.facebook.com/{API_VERSION}/{PIXEL_ID}/events?access_token={TOKEN}
.
HIPAA Mode
facebook's documentation
Facebook parameters
Facebook's documentation
conversion app data parameters
customer info parameters
Facebook's documentation
Facebook's documentation
standard events
Transformation
Standard Event
standard events
Facebook Events Manager account
Facebook Pixel
external_id
fbp parameter
external_id
https://www.facebook.com/business/help/1624255387706033?id=818859032317965
user traits provided
Use only Conversions API
Use both Pixel and Conversions API to send the same events
Use both Pixel and Conversions API to send different events
additional parameters
additional parameters
additional parameters
documentation