Advertising
Meta Ads schema
SightShark syncs Meta Ads into a data warehouse you own. It creates 15 tables holding 280 fields, refreshed daily. Account, campaign, ad set, ad and creative history, plus insights broken out by platform, device, age, gender and region.
15 tables / 280 fields / Tables from the production sync
Tables and fields
Every table this connector creates, and every field in it, named as you will query it.
report_basic_all_levels
23 fields
- account_id
- account_name
- actions
- ad_id
- ad_name
- adset_id
- adset_name
- campaign_id
- campaign_name
- clicks
- cost_per_action_type
- cost_per_inline_link_click
- cpc
- cpm
- ctr
- date_start
- date_stop
- frequency
- impressions
- inline_link_click_ctr
- inline_link_clicks
- reach
- spend
report_delivery_platform_and_device
19 fields
- account_id
- actions
- ad_id
- clicks
- cost_per_action_type
- cost_per_inline_link_click
- cpc
- cpm
- ctr
- date_start
- date_stop
- device_platform
- frequency
- impressions
- inline_link_click_ctr
- inline_link_clicks
- publisher_platform
- reach
- spend
report_demographics_age_and_gender
19 fields
- account_id
- actions
- ad_id
- age
- clicks
- cost_per_action_type
- cost_per_inline_link_click
- cpc
- cpm
- ctr
- date_start
- date_stop
- frequency
- gender
- impressions
- inline_link_click_ctr
- inline_link_clicks
- reach
- spend
snapshots_campaign_history
22 fields
- account_id
- budget_remaining
- buying_type
- configured_status
- created_time
- daily_budget
- effective_status
- id
- lifetime_budget
- name
- objective
- pacing_type
- promoted_object
- special_ad_categories
- special_ad_category
- special_ad_category_country
- spend_cap
- start_time
- status
- stop_time
- updated_time
- snapshot_time
snapshots_ad_set_history
25 fields
- account_id
- adset_id
- bid_amount
- bid_strategy
- billing_event
- budget_remaining
- campaign_id
- configured_status
- created_time
- daily_budget
- daily_spend_cap
- destination_type
- effective_status
- end_time
- id
- is_dynamic_creative
- lifetime_budget
- name
- optimization_goal
- promoted_object
- start_time
- status
- targeting
- updated_time
- snapshot_time
snapshots_creative_history
18 fields
- account_id
- body
- call_to_action_type
- effective_object_story_id
- id
- image_hash
- image_url
- name
- object_id
- object_story_id
- object_story_spec
- object_type
- status
- thumbnail_url
- title
- url_tags
- video_id
- snapshot_time
snapshots_account_history
35 fields
- account_id
- account_status
- age
- amount_spent
- balance
- business_city
- business_country_code
- business_name
- business_state
- business_street
- business_street2
- business_zip
- capabilities
- created_time
- currency
- disable_reason
- end_advertiser
- end_advertiser_name
- funding_source
- funding_source_details
- id
- is_personal
- is_prepay_account
- media_agency
- min_daily_budget
- name
- owner
- partner
- spend_cap
- timezone_id
- timezone_name
- timezone_offset_hours_utc
- tos_accepted
- user_tasks
- snapshot_time
snapshots_ad_history
16 fields
- account_id
- adset_id
- bid_amount
- campaign_id
- configured_status
- conversion_domain
- created_time
- creative
- effective_status
- id
- last_updated_by_app_id
- name
- preview_shareable_link
- status
- updated_time
- snapshot_time
snapshots_ad_image_history
15 fields
- account_id
- created_time
- hash
- height
- id
- name
- original_height
- original_width
- permalink_url
- status
- updated_time
- url
- url_128
- width
- snapshot_time
snapshots_ad_video_history
16 fields
- account_id
- content_category
- created_time
- description
- embeddable
- id
- length
- live_status
- permalink_url
- picture
- published
- title
- universal_video_id
- updated_time
- views
- snapshot_time
snapshots_ad_video_thumbnail
10 fields
- account_id
- height
- id
- is_preferred
- name
- scale
- url
- video_id
- width
- snapshot_time
snapshots_reach_frequency
8 fields
- account_id
- country_code
- id
- max_campaign_duration
- max_days_to_finish
- min_campaign_duration
- min_reach_limits
- snapshot_time
report_delivery_platform
18 fields
- account_id
- actions
- ad_id
- clicks
- cost_per_action_type
- cost_per_inline_link_click
- cpc
- cpm
- ctr
- date_start
- date_stop
- frequency
- impressions
- inline_link_click_ctr
- inline_link_clicks
- publisher_platform
- reach
- spend
report_demographics_country
18 fields
- account_id
- actions
- ad_id
- clicks
- cost_per_action_type
- cost_per_inline_link_click
- country
- cpc
- cpm
- ctr
- date_start
- date_stop
- frequency
- impressions
- inline_link_click_ctr
- inline_link_clicks
- reach
- spend
report_demographics_region
18 fields
- account_id
- actions
- ad_id
- clicks
- cost_per_action_type
- cost_per_inline_link_click
- cpc
- cpm
- ctr
- date_start
- date_stop
- frequency
- impressions
- inline_link_click_ctr
- inline_link_clicks
- reach
- region
- spend
Where it lands
Into a warehouse you already own, in a region you pick. The modelling runs inside that project, so nothing leaves your cloud to be transformed and we keep no copy of your history.
- Google BigQuery
- Snowflake
- Databricks
- AWS Redshift
- Azure Synapse
Every ad platform names the same number differently and reports it in its own currency and its own time zone. Put two of them in one report without reconciling that and the totals disagree.
Questions people ask
What tables does SightShark create from Meta Ads?
15 tables, including report_basic_all_levels, report_delivery_platform_and_device, report_demographics_age_and_gender. report_basic_all_levels is one row per ad, per day. Every one is listed on this page, with its fields.
Which Meta Ads fields can I get?
All 280 listed fields are on this page, table by table, named as they appear in your warehouse.
How often does Meta Ads data refresh?
Daily. A sync adds to the tables rather than replacing them, so when a platform restates a figure for a day that has already closed, both the original number and the correction stay on record.
Can I join Meta Ads data to my other platforms?
Yes. Every metric is modelled to one name, one type, one grain and one currency, so a query across Meta Ads and another source needs no reconciling of field names first.
Related connectors
Reporting on this data
- 5 min read
Meta's engage-through attribution, explained for client reports.
Fewer conversions in Ads Manager does not always mean fewer sales. Sometimes it means a narrower definition.
Read it - 7 min read
Why ad platform numbers never match on the same campaign.
They are not measuring the same thing. Once you know what each one counts, the gap stops being a mystery.
Read it - 6 min read
Server-side vs client-side tracking, and what changes in client reports.
More conversions, a break in your trend line, and a new way to count one sale twice.
Read it
Get started
Want Meta Ads in your own warehouse?
A call with someone who can answer the schema questions.