Facebook Enhanced Conversion Integration
Step 1: Generate Access Token
Work with the client to obtain a facebook access token in order for us to send conversion requests via API.
Within the Facebook Business Manager, navigate to Events Manager and follow these steps:
Select the Pixel that we would like to send offline conversions to
Select the Settings tab
Find the Conversions API section and click on the Generate access token link under Set up manually, and follow the instructions pop-up
Note: The Generate access token link is only visible to users with developer privileges for the business. The link is hidden from other users.
**IMPORTANT** Once the token is generated, be sure to keep a copy of it as you will not be able to see it again, the token is only available for 60 days and the token will need to be replaced with a new one at the end of 60 days. We will automate this in the future.
Step 2: Integrate within Pingtree
There are multiple ways to fire a conversion, ultimately it is up to the client on what they consider a conversion. Here are a few examples:
Form Submission: A client may want a ton of form submission, which means we would want to set up a postback within the source level on form submissions in order for their tiktok ads to target more potential leads that will likely submit a form.
Form Sold: A client may want to target their ads towards traffic that will potentially be sold to one of their buyers within Pingtree, we can set this up through Distribution -> Posting API
Offer Wall Click: A client may want to target leads that are likely to click on a offer wall, we can set this up through Source -> Posting API -> Filter by Events
Offer Wall Conversion: A client may want to target leads that are likely to click on a offer wall and also complete the flow process on the external site, we can set this up through Source -> Posting API -> Filter by Events
Standard events
Website action | Description | Meta Standard event code |
Add payment info | The addition of customer payment information during a checkout process. For example, a person clicks on a button to save their billing information. | fbq('track', 'AddPaymentInfo'); |
Add to cart | The addition of an item to a shopping cart or basket. For example, clicking an Add to Cart button on a website. | fbq('track', 'AddToCart'); |
Add to wishlist | The addition of items to a wishlist. For example, clicking an Add to Wishlist button on a website. | fbq('track', 'AddToWishlist'); |
Complete registration | A submission of information by a customer in exchange for a service provided by your business. For example, signing up for an email subscription. | fbq('track', 'CompleteRegistration'); |
Contact | A telephone, SMS, email, chat or other type of contact between a customer and your business. | fbq('track', 'Contact'); |
Customize product | The customization of products through a configuration tool or other application your business owns. | fbq('track', 'CustomizeProduct'); |
Donate | The donation of funds to your organization or cause. | fbq('track', 'Donate'); |
Find location | When a person finds one of your locations via web, with an intention to visit. For example, searching for a product and finding it at one of your local stores. | fbq('track', 'FindLocation'); |
Initiate checkout | The start of a checkout process. For example, clicking a Checkout button. | fbq('track', 'InitiateCheckout'); |
Lead | A submission of information by a customer with the understanding that they may be contacted at a later date by your business. For example, submitting a form or signing up for a trial. | fbq('track', 'Lead'); |
Purchase | The completion of a purchase, usually signified by receiving order or purchase confirmation, or a transaction receipt. For example, landing on a Thank You or confirmation page. | fbq('track', 'Purchase', {value: 0.00, currency: 'USD'}); |
Schedule | The booking of an appointment to visit one of your locations. | fbq('track', 'Schedule'); |
Search | A search performed on your website, app or other property. For example, product or travel searches. | fbq('track', 'Search'); |
Start trial | The start of a free trial of a product or service you offer. For example, trial subscription. | fbq('track', 'StartTrial', {value: '0.00', currency: 'USD', predicted_ltv: '0.00'}); |
Submit application | The submission of an application for a product, service or program you offer. For example, a credit card, educational program or job. | fbq('track', 'SubmitApplication'); |
Subscribe | The start of a paid subscription for a product or service you offer. | fbq('track', 'Subscribe', {value: '0.00', currency: 'USD', predicted_ltv: '0.00'}); |
View content | A visit to a web page you care about. For example, a product or landing page. View content tells you if someone visits a web page's URL, but not what they do or see on that web page. | fbq('track', 'ViewContent'); |
Note: The page view event is included as part of your pixel base code. Page view tells you when someone lands on a web page with the pixel base code installed.
Replace {PIXEL_ID} with your actual pixel id..
Headers:
Authorization = Bearer {ACCESS_TOKEN}
Replace {ACCESS_TOKEN} with your actual access token.
Lead Fields:
Email = data.0.user_data.em // data transformer -> sha-256 hash
mobile = data.0.user_data.ph // data transformer -> sha-256 hash
revenue = data.0.custom_data.value
user_agent = data.0.user.user_agent
utc_timestamp = data.0.event_time
Static Fields:
data.0.action_source = web
data.0.event_name = Facebook Event Name (ex. CompleteRegistration)
data.0.custom_data.currency = USD
Facebook Macros
Description | Facebook Parameter | Pingtree Parameter |
Campaign Name | {{campaign.name}} | utm_campaign |
Ad Group Name | {{adset.name}} | utm_adgroup |
Ad ID | {{ad.id}} | MAID |
Campaign ID | {{campaign.id}} | MCID |
Ad Group ID | {{adset.id}} | MGID |
Step 3: Determine Postback Type
There are two postback types to choose from. These signify the triggers for when the postback actually fires back to Facebook.
Form Data:
Selecting this postback type will trigger the postback anytime a lead submits the form, regardless of any further outcome.
Event Data:
Event Data allows you to use Pingtree events (both system events and custom events) as the trigger for when this postback fires.
Example: You can use Pingtree's "Base Form Sold" system event as the trigger. Any time a lead is "Sold" or successfully delivered to an endpoint, this postback will fire.
Using Event Data postback will also allow you to configure multiple Pingtree events and map them to various Facebook events all through a single postback.
Tiktok Enhanced Conversion Integration
There will be cases where the client would like to optimize their tiktok ads to a specific event that does not occur on the actual form, but instead offline, or they may want to only fire specific events depending on a specific buyer rather than all available buyers in their campaign.
Step 1: Generate Access Token
In the TikTok: Ads Manager, after you have completed Step #1, open your pixel and click the Settings tab > Generate Access Token.
Step 2: Integrate within Pingtree
There are multiple ways to fire a conversion, ultimately it is up to the client on what they consider a conversion. Here are a few examples:
Form Submission: A client may want a ton of form submission, which means we would want to set up a postback within the source level on form submissions in order for their TikTok ads to target more potential leads that will likely submit a form.
Form Sold: A client may want to target their ads towards traffic that will potentially be sold to one of their buyers within Pingtree, we can set this up through Distribution -> Posting API
Offer Wall Click: A client may want to target leads that are likely to click on a offer wall, we can set this up through Source -> Posting API -> Filter by Events
Offer Wall Conversion: A client may want to target leads that are likely to click on a offer wall and also complete the flow process on the external site, we can set this up through Source -> Posting API -> Filter by Events
Headers:
Access-Token = Value from Step 1
Lead Fields:
Email = data.0.user.email
Mobile = data.0.user.phone
Transaction_id = data.0.event_id
Ip = data.0.user.ip
Revenue = data.0.properties.value
User_agent = data.0.user.user_agent
Ttclid = data.0.user.ttclid
Utc_timestamp = data.0.event_time
Custom Fields:
event_source = web
data.0.event = Tiktok Event Name (ex. CompleteRegistration)
data.0.properties.currency = USD
data.0.properties.content_type = product
Description | TikTok Parameter | Pingtree Parameter |
Campaign Name | {{__CAMPAIGN_NAME__}} | utm_campaign |
Ad Group Name | {{__AID_NAME__}} | utm_adgroup |
Ad Group ID | {{__AID__}} | MGID |
Campaign ID | {{__CAMPAIGN_ID__}} | MCID |
Ad ID | {{__CID__}} | MAID |
Ad Name | {{__CID_NAME__}} | utm_creative |
Google Ads Integration
If you’re using a custom source / marketing partner in Pingtree to send traffic from Google Ads to your offer, we can setup postbacks to send data depending on events:
For example if you want to send google ads all the form submits, you can select ‘Form Data’, if you want to send in Offer Wall Conversions, then you can select ‘Event Data’ and select the event:
You can select multiple different events and associate the events with different actions that you may want to collect and store in Google Ads
Here is an example of an CSV: https://docs.google.com/spreadsheets/d/1N6X9ddRQfdLDcAmCC7GWnaZSI0l09UKazk-n3Sc-04c/edit?usp=sharing
The sheet contains:
Google Click ID: We collect this and is stored as GClid
Conversion Name: This will need to be a static field, if you look at my event mapping screenshot you can see that I associated Offer Wall Conversion (500) with offerwall_conversion. This must be the conversion name that you have setup in google ads
Conversion Time: We have the ability to store and send out the current time on the timestamp into UNIX Format. Which will need to be used to convert to the timestamp of your choice within Zapier
Conversion Value: We are storing this in revenue
Conversion Currency: This will need to be a static custom field
Now that you have a live spreadsheet that collects live data from Pingtree, you can set up another zap step in your current zap workflow to send any new records from the spreadsheet back into Google Ads!