Facebook Ads: Tips and best practices#
Rate limiting#
For information on rate limiting, see the Facebook documentation.
Configuring advanced data collection options for Facebook Ads#
This section explains the advanced configuration options for your Facebook Ads datastream. You can adjust these settings in the Configuration step of the datastream creation wizard.
In the General section of the page, adjust the following settings:
Breakdowns#
Select how collected data is broken down in the data extract. For example, select age to view a breakdown of the age groups interacting with your ad campaigns.
Levels of granularity include: - Account - Campaign - Ad set - Ad
Further breakdowns include age, gender, country, publisher platform. These breakdowns are not all compatible with each other.
Action breakdowns#
Select how collected data is broken down in the data extract in terms of actions on a campaign. For example, select action_reaction to view a breakdown by the number of reactions each campaign received.
Select actions (in fields) and action_type (in action breakdowns) for additional metrics.
Granularity#
Select the time unit in which you want to collect data. Choose one of the following options:
Total
Monthly
Daily
Custom
Recommended setting: Time increment custom > number of days = 1 (unless you are fetching reach).
In the Media Screenshots section of the page, adjust the following settings:
Save media screenshots#
To take screenshots of your ads, select this checkbox and populate Ad Preview fields below.
The screenshots are saved in the same storage as the Facebook Ads data extracts. For more information, see Setting up Storage for data extracts. The screenshots are stored until you delete them manually from the storage, or delete the Facebook Ads datastream.
Ad preview fields#
To take screenshots of your ads, select at least one field that will contain the link to the screenshot.
(Recommended) Select ad_preview_default_url to generate a screenshot. For image thumbnails, use ad_preview_url.
To view advanced Facebook Ads datastream settings, click Show advanced settings and adjust the following settings:
Action attribution windows#
An attribution window is the time period between a user clicking on or viewing an ad, and performing an action (such as a purchase or download) as a result of the ad click or view. In Action attribution window, select the time period for which to collect attribution data.
For each action selected in the Action breakdowns field, a column will be placed next to the action column in the data extract, displaying the number of actions that occurred within the selected action attribution window.
Pivot action fields#
Select this checkbox to display action fields as rows instead of columns in the data extract. Each action is broken down by row, with the columns action_type and action_values. This setting only is only effective if you select an action in the Action breakdowns field.
Translate custom conversions#
Select this checkbox to collect the names for custom conversions.
Force action fields#
Select this checkbox to create a column for each possible action field for the action_type breakdown in the data extract, even if the action field is empty. By default, Facebook does not return empty values. This feature resolves destination issues where certain destinations may require a set number of columns to be loaded. For more information on action fields, see the Facebook documentation.
Include future campaigns#
Select this checkbox to collect data on campaigns that have not run yet.
Adset targeting fields#
Select the adset targeting fields to include in your data extract. Each selected adset targeting field will be displayed as a separate column in the data extract.
By default, the adset targeting fields are contained in a single JSON string. Adset targeting fields defines which fields from this JSON string will be included in the fetched data.
Product ID limit#
Enter the maximum number of product IDs to be returned for each ad set for the product_id breakdown. For example, a carousel ad campaign may have up to five products included in the ad, each with its own product ID.
Custom Filter#
To filter the data to collect from Facebook Ads, provide a set of filters in JSON format. For example, to find data with the ID 123, enter the following:
[{"field": "id", "operator": "EQUAL", "value": "123"}]
For more information on the parameters that can be filtered, see the Facebook documentation.
Obtaining the campaign results metric#
The results_by_adverity metric shows you how well a campaign performed, calculated based on campaign objectives and metrics.
To add the results_by_adverity metric to your datastream, follow these steps:
Go to the Datastreams page.
Open the Facebook Ads datastream by clicking on its name.
In the top navigation panel, click Settings.
In the Fields section, write results_by_adverity and select the value from the drop-down list.
Click Save.
In the top right corner, click Fetch now.
Choose the time period for which data is collected.
Click Fetch.
The results metric provided by Facebook cannot be fetched from the Facebook Ads connector because it is only available in the Facebook Ads user interface and cannot be retrieved using the API.
Adverity calculates the results metric through a different metric called results_by_adverity. Therefore, the results metric in Facebook Ads may differ from the results_by_adverity metric in Adverity.
For more information on results, see the Facebook documentation: - Results - View results on your Facebook ad in Ads Manager
List of all campaign objectives and metrics used for calculating the results_by_adverity metric:
Campaign objective |
Metric used for calculation |
---|---|
App installs |
actions.omni_app_install |
Brands awareness |
estimated_ad_recallers |
Conversions |
conversions |
Event responses |
actions.rsvp |
Lead generation |
actions.lead |
Link clicks |
actions.link_clicks |
Local awareness |
clicks |
Messages |
onsite_conversion.messaging_conversation_started |
Offer claims |
action.receive_offer |
Page likes |
actions.like |
Post engagement |
actions.post_engagement |
Product catalog sales |
actions.purchase |
Reach |
reach |
Store visits |
store_visit_actions |
Video views |
video_30_sec_watched_actions |
Facebook Ads store visits#
The store visits objective allows you to create Facebook ad campaigns to increase sales at physical stores.
Note: The store visits optimization (called store traffic as well) is currently only available to users on the Facebook allow list. Contact your Facebook representative for access. For more information, see Facebook documentation.
Previewing an image#
To be able to preview an image, you need to collect ad_preview_default_url
dimension.
Understanding revenue and conversion fields#
The revenue field most commonly used are action_values.omni_purchase and actions.purchases_offsite_values.
Conversions are under action_type. Use actions.offsite_conversions (old fields are conversions and conversion value which are no longer used).
There are a few options for link clicks - check which one your client requires: inline_link_clicks, actions.link_click (most common).
The most common field used for engagements is actions.post_engagement but some customers calculate their own engagement and engagement rates based on a combination of likes, shares, comments, link clicks etc.
Optimizing Force action fields#
Turn on Force action fields to map the metrics you require. Then turn off again to optimize performance.
Fetch the highest level of granularity required, to optimize performance. I.e Campaign level.
When time increment is set to total the fetch dates are based on the start date of the campaign rather than the selected date range.
Recommended scheduling#
The most common schedule is to fetch everyday, the last 30 days. This will take into account attribution windows.
Authentication recommendations#
Include all Facebook Ad accounts under one user. Fetch all accounts in one datastream for optimal performance.
Recommended local data retention: unique by day using date_start. The exception would be YTD reach which you’d use date_end.
Recommended overwrite: date range date_start. The exception would be YTD reach which you’d use date_end.
Custom filtering usage#
A custom filter will filter the results from within the API call itself. This is most commonly used for customizing reach for a specific breakdown.
If you need to filter data the most common method is to fetch all data then filter using an enrichment.
Troubleshooting conversions#
Select actions (in fields) and action_type (in action breakdowns). Conversions will come through under actions.offsite_conversions.
If this field isn’t coming through in your extracts then conversions are zero. You should force action fields and fetch a larger time range.
Connector limitations#
37 months of historical data available
Actions > 0 will be fetched; to circumvent this select Force action fields in datastream settings. It’s best practice to map your required fields then turn off to optimize performance
Time increment options limit the options you have for fetching reach. You can fetch a custom number of days, monthly or total (for lifetime)
Not all breakdowns are compatible with each other
Setup optimization checks#
Force action fields is turned off after field mapping
Reach is mapped to descriptive schema (e.g., reach_campaign_lifetime)
Highest level of granularity required is selected for optimal performance