Skip to main content

Meta Ads

info

API Documentation: Meta Ads Insights API documentation

High-Level Information:

The Meta Ads Insights and Graph API allow you to access detailed data related to your advertising campaigns on the Meta platform (Facebook, Instagram, and other Meta properties)

Source Setup Guide​

Step 1​

connect in the Edit Source form to the left.

Step 2​

Follow the authentication flow (OAuth) in Facebook to grant Extract the required permissions.

Step 3​

Ensure that your email and profile picture are visible, and verify that the source status is Connected.

Step 4 (optional) Add Custom reports​

When creating a custom report, you can configure the following options:

  1. Report Name
  2. Breakdowns: Define how the results will be broken down. Certain combinations are available when using more than one breakdown. For details, refer to the Combining Breakdowns section.
  3. Action Breakdowns: Specify how to break down action results. Multiple breakdowns are supported, with the default value being ["action_type"].
  4. Fields: Choose the metrics to include in your report.
  5. Time Breakdown
  6. Action Report Time: Sets the time frame for action statistics in the report.
  7. Action Attribution Windows: Define the attribution window for actions.

For more information, visit the Meta Ads Insights API documentation.

Connection Setup Guide​

Once you conneted Meta Ads to a destination, you will also need to configure:

  • Connection Pull Schedule: Determines how frequently data is extracted from the source.
  • Backfill (Days): Specifies the duration for which historical data will be retrieved during each connection run.
  • Accounts Whitelist: Select specific ad accounts to sync, or all of them.
  • Destination specific settings: different settings such as "Dataset Name" or "Target Schema" (depanding on your destination)
  • Schema Migration Policy: Controls how Extract will handle schema changes from the sourcee source.

Configuration​

Provide the following configuration values when setting up the Meta Ads source:

  • Access Token: A Meta (Facebook) Graph API access token with permissions to read Ads data for the ad accounts you want to sync.
  • Ad Account IDs: One or more ad account IDs to pull data from (for example, act_1234567890). If you manage multiple accounts, include each account you want to sync.
  • Start Date: The earliest date to begin syncing data from. Data before this date will not be requested.

Notes:

  • The connector reads data via the Meta Graph API and will paginate through results where applicable.
  • For Insights-style reporting, the connector may request data in date batches. If you request a very large date range or high-cardinality breakdowns, Meta may return errors indicating the request is too large; in that case, reduce the requested scope (for example, narrow the date range or selected breakdowns) and retry.

Connector Information​

Schema ERD​

Explore the interactive entity relationship diagram for Meta Ads.

Open page

Data Streams​

account_recommendations​

Loading ....

action_canvas_component​

Loading ....
Loading ....

action_conversion_device​

Loading ....

action_product_id​

Loading ....

action_reactions​

Loading ....

action_video_sound​

Loading ....

action_video_view_type​

Loading ....

ad_account​

Loading ....

ad_action_canvas_component​

Loading ....
Loading ....

ad_action_conversion_device​

Loading ....

ad_action_reactions​

Loading ....

ad_action_video_sound​

Loading ....

ad_action_video_view_type​

Loading ....

ad_activity​

Loading ....

ad_campaign_frequency_control​

Loading ....

ad_campaign_issues_info​

Loading ....

ad_conversion_specs​

Loading ....

ad_creative_labels​

Loading ....

ad_creative​

Loading ....

ad_delivery_platform​

Loading ....

ad_image​

Loading ....

ad_insights​

Loading ....

ad_labels​

Loading ....

ad_recommendation​

Loading ....

ad_study_cells​

Loading ....

ad_study_objectives​

Loading ....

ad_study​

Loading ....

ad_tracking_specs​

Loading ....

ad_video​

Loading ....
Loading ....

adgroup_issues_info​

Loading ....

adset_action_canvas_component​

Loading ....
Loading ....

adset_action_conversion_device​

Loading ....

adset_action_reactions​

Loading ....

adset_action_video_sound​

Loading ....

adset_action_video_view_type​

Loading ....

adset_labels​

Loading ....

adset_targeting_optimization_types​

Loading ....

adset​

Loading ....

basic_ad_set​

Loading ....

basic_ad​

Loading ....

basic_all_levels​

Loading ....

basic_campaign​

Loading ....

business_invoice​

Loading ....

campaign_action_canvas_component​

Loading ....
Loading ....

campaign_action_conversion_device​

Loading ....

campaign_action_reactions​

Loading ....

campaign_action_video_sound​

Loading ....

campaign_action_video_view_type​

Loading ....

campaign_ad_study​

Loading ....

campaign_labels​

Loading ....

campaign​

Loading ....

custom_audience​

Loading ....

custom_conversion​

Loading ....

delivery_device​

Loading ....

delivery_platform_and_device​

Loading ....

delivery_platform​

Loading ....

delivery_purchase_roas​

Loading ....

demographics_age_and_gender​

Loading ....

demographics_age​

Loading ....

demographics_country​

Loading ....

demographics_dma_region​

Loading ....

demographics_gender​

Loading ....

demographics_region​

Loading ....

label​

Loading ....

reservation​

Loading ....

video_thumbnail​

Loading ....

Metadata​

ad_account​

Loading ....

ad​

Loading ....

ad_campaign_frequency_control​

Loading ....

ad_campaign_issues_info​

Loading ....

ad_conversion_specs​

Loading ....

ad_creative​

Loading ....

ad_creative_labels​

Loading ....

ad_image​

Loading ....

ad_labels​

Loading ....

ad_recommendation​

Loading ....

ad_study​

Loading ....

ad_tracking_specs​

Loading ....

ad_video​

Loading ....

adgroup_issues_info​

Loading ....

adset​

Loading ....

adset_labels​

Loading ....

adset_targeting_optimization_types​

Loading ....

campaign​

Loading ....

campaign_labels​

Loading ....

custom_audience​

Loading ....

custom_conversion​

Loading ....

label​

Loading ....

reservation​

Loading ....

video_thumbnail​

Loading ....

Pre Build Reports​

action_canvas_component​

Loading ....
Loading ....

action_product_id​

Loading ....

action_reactions​

Loading ....

action_video_sound​

Loading ....

action_video_view_type​

Loading ....

ad_insights​

Loading ....

basic_ad​

Loading ....

basic_ad_set​

Loading ....

basic_all_levels​

Loading ....

basic_campaign​

Loading ....

delivery_device​

Loading ....

delivery_platform​

Loading ....

delivery_platform_and_device​

Loading ....

delivery_purchase_roas​

Loading ....

demographics_age​

Loading ....

demographics_age_and_gender​

Loading ....

demographics_country​

Loading ....

demographics_dma_region​

Loading ....

demographics_dma_region​

Loading ....

demographics_region​

Loading ....

ad_activity​

Loading ....

Notes​

  • Events with an event_time older than 7 days are skipped and not sent to Meta Conversions API.
  • You must provide at least one user_data.* field. user_data.* fields with null values are ignored; if all provided user_data.* fields are null, the event is rejected.
  • user_data.fbclid is automatically converted into Meta’s fbc format before sending.
  • Any null fields are stripped from the final payload before it is sent.
  • For Purchase events, additional validation is applied to ensure required purchase fields are present before the event is sent.

Troubleshooting​

Events are skipped because they are older than 7 days​

If an event’s event_time is more than 7 days in the past, the connector skips it and does not send it to Meta.

Fix: Ensure event_time is an RFC3339 timestamp and is within the last 7 days.


Invalid event, you must provide at least one user_data.* fields​

This error occurs when the event does not include any user_data.* fields.

Fix: Include at least one user_data.* field (for example, user_data.em, user_data.ph, user_data.client_ip_address, etc.).


Invalid event, you must provide at least one non-null user_data.* field​

This error occurs when user_data.* fields are present, but all of them are null. The connector ignores null user_data.* values, and then fails validation if no non-null user data remains.

Fix: Provide at least one user_data.* field with a non-null value.


Purchase events fail validation​

For event_name: "Purchase", Meta requires specific purchase fields. The connector validates purchase events and will fail the run if required purchase fields are missing.

Fix: Ensure your Purchase events include the required purchase fields in custom_data (for example, custom_data.currency and custom_data.value) and that they are not null.