Facebook Ads: Tips and best practices#
Rate limiting#
For information on rate limiting, 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.
Important
results_by_adverity is calculated from a fixed list of campaign
objectives. For a campaign whose objective is not in the list below,
including the newer outcome-based objectives, the metric returns 0
rather than an empty value. A 0 in this column therefore does not always
mean the campaign produced no results.
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.
Meta finalizes insights data 28 days after it is generated. Values inside that window can still change as conversions are attributed, and values outside it do not change again. A rolling 30-day fetch therefore covers the period in which your data can still be restated.
Note
Adverity collects each fetch as a full refresh of the date range you request, and Meta does not mark which values are still provisional. Re-fetching a recent date range returns different values when Meta has revised them, which is expected rather than a data discrepancy.
Authentication recommendations#
Include all Facebook Ad accounts under one user. Fetch all accounts in one datastream for optimal performance.
Recommended local data retention: Split fetch into daily extracts 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.
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
Marketing Mix Modeling (MMM) breakdown#
Use the marketing_mix_modeling breakdown to collect Facebook Ads data structured for Marketing Mix Modeling. It segments spend and impressions across the geographic, device, placement, and creative dimensions that MMM methodologies require.
To enable it, set Breakdowns to marketing_mix_modeling in your datastream settings. Do not select any additional breakdowns, as this breakdown is not compatible with others.
Available fields include:
spend,impressionsdate_start,date_stopcountry,region,dmadevice_platform,publisher_platform,platform_positioncreative_media_type,objectivecampaign_id,campaign_name,adset_id,adset_name,account_id,account_name,account_currency
Use daily granularity and fetch the last 28–30 days to account for attribution windows.
Collecting designated market area data#
Meta replaced the dma breakdown with comscore_market. Adverity
migrated existing datastreams to the new breakdown automatically.
Your data extract contains both a comscore_market column and a dma
column holding the same values. The dma column is kept so that existing
Data Mapping and destination configurations continue to work. Use
comscore_market for new configurations.