Facebook Ads
With HockeyStack you can seamlessly authenticate, fetch, and analyze ad performance metrics from Facebook Ads, Campaigns, and Lead Forms
Getting Started
Sign In: A Facebook login window will appear, sign in and proceed to granting permissions
Grant Permissions: Review the requested permissions, such as access to your ad accounts and campaigns. Click Allow to grant the necessary permissions.
Confirmation: After granting permissions, you'll be redirected back to the ad reporting platform, confirming the successful connection
What Data Gets Tracked as Metadata
The following fields are tracked and stored during the integration process:
Field
Description
account_id_hashed
A hashed version of the account ID for secure storage.
type
The type of tracked data, such as paid-ads
.
date
The date of the ad activity, formatted as YYYY-MM-DD
.
id
A unique identifier for each data row, generated as an MD5 hash.
metadata
A JSON object containing detailed metadata about the campaign and ad.
account_id
The original account ID associated with the ad.
network
The advertising network, such as Facebook Ads
.
campaign_id
The unique ID of the campaign.
adgroup_id
The unique ID of the ad group.
ad_id
The unique ID of the ad.
campaign_name
The name of the campaign.
adgroup_name
The name of the ad group.
ad_name
The name of the ad.
utm_source
The source of the traffic, such as facebook
.
utm_campaign
The campaign name, URL-encoded if necessary.
utm_medium
The medium of the traffic, such as paid
.
utm_content
Content-specific identifier for the campaign.
utm_term
The keyword associated with the campaign, if applicable.
impressions
The total number of impressions for the ad.
clicks
The total number of clicks for the ad.
cost
The total cost of the ad campaign in the specified currency.
currency
The currency in which the ad costs are measured (e.g., USD
).
High-Level Integration Flow
Validate Integration:
Ensure the
integration
object contains required fields likefacebookUserId
andaccessToken
.
Fetch Ad Accounts:
Retrieve ad accounts linked to the user’s
facebookUserId
usingfacebookApiRequest
.Handle token expiration or invalid tokens by marking the integration as expired.
Retrieve Currencies:
Fetch account currencies using
fetchAccountCurrencies
.Update stored currencies with the
updateCurrencies
function.
Process Ad Accounts:
Iterate through all ad accounts in the integration object.
Skip accounts marked as
paused
to optimize processing.
Fetch Insights and Ads:
Fetch ad insights (e.g., impressions, clicks, and spend) for a specific date range.
Retrieve associated ad data and format it for storage.
Process Lead Forms:
Identify and process any lead forms linked to ads using
fetchLeads
.Create lead actions from submissions and store them.
Tracking Lead Forms
The integration tracks Facebook lead form submissions and creates a "Facebook Lead Form Submit" action that can be used as part of Goal building
Action Properties Tracked:
Field
Description
facebook_lead_id
Unique identifier for the Facebook lead.
facebook_form_id
Identifier for the lead form submitted.
facebook_campaign_name
Name of the campaign associated with the lead.
facebook_campaign_id
Unique ID of the campaign.
facebook_adgroup_name
Name of the ad group associated with the lead.
facebook_adgroup_id
Unique ID of the ad group.
facebook_ad_name
Name of the ad generating the lead.
facebook_ad_id
Unique ID of the ad.
facebook_creative_name
Name of the creative asset used in the ad.
facebook_creative_id
Unique ID of the creative asset.
utm_source
Traffic source, defaulting to facebook
.
utm_medium
Traffic medium, defaulting to paid
.
utm_campaign
Encoded campaign name for tracking.
submitted_at
Timestamp when the lead form was submitted.
Company Properties Tracked:
Field
Description
company_name
The name of the company, if provided.
Other Properties Tracked:
Field
Description
userId
Email address of the user, derived from the lead form.
identity
Same as userId
, used for identifying the user.
session_start_date
Timestamp of when the lead form submission occurred.
actionDate
JavaScript Date
object representation of the lead submission time.
actionType
Always set to custom
for lead forms.
actionName
Always set to Facebook Lead Form Submit
.
shared
Additional metadata including submission ID and associated properties.
Notes and Caveats
Token Expiration:
Handle authentication errors (codes
190
and102
) by marking the integration as expired and prompting re-authentication.
Rate Limits:
For rate limit errors (
error code 17
), retry up to 3 times with exponential backoff.
Large Data Requests:
Split date ranges or reduce data volume for errors related to excessive data (
error code 1
).
Default Processing Period:
The integration processes the last 28 days by default, with adjustments for specific accounts as needed.
Batch Limits:
Data is processed in batches of 1000 records to optimize performance.
Campaign Name Tracking:
Track and handle changes in campaign names to ensure data consistency.
Last updated