From 82909e59a854bb195b788b709fa9ace3ce27d96f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lanie=20Vistry?= Date: Wed, 1 Jul 2026 15:32:24 +0200 Subject: [PATCH 1/3] Added Comscore Market stream docs and deprecate DMA --- ...p-pendulum-to-3-2-0-and-attrs-to-26-1-0.md | 13 - .../2026/2026-06-22-facebook-v1-updates.md | 26 + .../v1/facebook-ads-v1-foreign-keys.yml | 88 ++ .../v1/facebook-ads-v1-tables.yml | 36 +- .../v1/json/ads_insights_comscore_market.json | 1252 +++++++++++++++++ .../facebook-ads/facebook-ads-latest.md | 17 + 6 files changed, 1418 insertions(+), 14 deletions(-) delete mode 100644 _changelog-files/2026/2026-06-22-facebook-v1-bump-pendulum-to-3-2-0-and-attrs-to-26-1-0.md create mode 100644 _changelog-files/2026/2026-06-22-facebook-v1-updates.md create mode 100644 _data/taps/schemas/facebook-ads/v1/json/ads_insights_comscore_market.json diff --git a/_changelog-files/2026/2026-06-22-facebook-v1-bump-pendulum-to-3-2-0-and-attrs-to-26-1-0.md b/_changelog-files/2026/2026-06-22-facebook-v1-bump-pendulum-to-3-2-0-and-attrs-to-26-1-0.md deleted file mode 100644 index f428ba1aa..000000000 --- a/_changelog-files/2026/2026-06-22-facebook-v1-bump-pendulum-to-3-2-0-and-attrs-to-26-1-0.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Facebook Ads (v1): Bump pendulum to 3.2.0 and attrs to 26.1.0" -content-type: "changelog-entry" -date: 2026-06-22 -entry-type: improvement -entry-category: integration -connection-id: facebook-ads -connection-version: 1 -pull-request: "https://github.com/singer-io/tap-facebook/pull/269" ---- -{{ site.data.changelog.metadata.single-integration | flatify }} - -We've improved our {{ this-connection.display_name }} (v{{ this-connection.this-version }}) integration to bump pendulum to 3.2.0 and attrs to 26.1.0. \ No newline at end of file diff --git a/_changelog-files/2026/2026-06-22-facebook-v1-updates.md b/_changelog-files/2026/2026-06-22-facebook-v1-updates.md new file mode 100644 index 000000000..65d360400 --- /dev/null +++ b/_changelog-files/2026/2026-06-22-facebook-v1-updates.md @@ -0,0 +1,26 @@ +--- +title: "Facebook Ads (v1): Integration updates" +content-type: "changelog-entry" +date: 2026-06-22 +entry-type: improvement +entry-category: integration +connection-id: facebook-ads +connection-version: 1 +pull-request: "https://github.com/singer-io/tap-facebook/pull/269" +--- +{{ site.data.changelog.metadata.single-integration | flatify }} + +We've improved our {{ this-connection.display_name }} (v{{ this-connection.this-version }}) integration with multiple updates. + +For v1.26.0: + +**New:** +- Added `ads_insights_comscore_market` table for market-level geographic insights. + +**Deprecated:** +- `ads_insights_dma` table deprecated due to Meta API changes (June 22, 2026). + +**Action required:** +- If using `ads_insights_dma`, switch to `ads_insights_comscore_market`. + +**Reference:** [Meta announcement](https://developers.facebook.com/blog/post/2026/03/13/transitioning-to-comscore-markets-for-automotive-model-ads) \ No newline at end of file diff --git a/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml index abffa1961..c0e181e7a 100644 --- a/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml +++ b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml @@ -20,6 +20,9 @@ keys: - table: ads_insights_dma keys: - account_id + - table: ads_insights_comscore_market + keys: + - account_id - table: ads_insights_platform_and_device keys: - account_id @@ -56,6 +59,9 @@ keys: - table: ads_insights_dma keys: - adset_id + - table: ads_insights_comscore_market + keys: + - adset_id - table: ads_insights_platform_and_device keys: - adset_id @@ -85,6 +91,9 @@ keys: - table: ads_insights_dma keys: - ad_id + - table: ads_insights_comscore_market + keys: + - ad_id - table: ads_insights_platform_and_device keys: - ad_id @@ -114,6 +123,9 @@ keys: - table: ads_insights_dma keys: - campaign_id + - table: ads_insights_comscore_market + keys: + - campaign_id - table: ads_insights_platform_and_device keys: - campaign_id @@ -593,6 +605,82 @@ tables: foreign-key: ads.data.id - key: campaign_id foreign-key: id +- table-name: ads_insights_comscore_market + join: + - table-name: adcreative + keys: + - key: account_id + foreign-key: account_id + - table-name: ads + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: id + - key: campaign_id + foreign-key: campaign_id + - table-name: ads_insights + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id + - table-name: ads_insights_age_and_gender + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id + - table-name: ads_insights_country + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id + - table-name: ads_insights_platform_and_device + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id + - table-name: ads_insights_region + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id + - table-name: adsets + keys: + - key: adset_id + foreign-key: id + - table-name: campaigns + keys: + - key: ad_id + foreign-key: ads.data.id + - key: campaign_id + foreign-key: id - table-name: ads_insights_platform_and_device join: - table-name: adcreative diff --git a/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-tables.yml b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-tables.yml index 7bd848a5d..38f0dbb65 100644 --- a/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-tables.yml +++ b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-tables.yml @@ -102,8 +102,11 @@ tables: - [`ads_insights_country`](#ads-insights-country) - Data segmented by country + - [`ads_insights_comscore_market`](#ads-insights-comscore-market) - Data segmented + by Comscore Market + - [`ads_insights_dma`](#ads-insights-dma) - Data segmented by DMA (Designated - Market Area) + Market Area). This table is deprecated. - [`ads_insights_platform_and_device`](#ads-insights-platform-and-device) - Data segmented by platform and device @@ -182,6 +185,10 @@ tables: Market Area). + **Deprecated**: As of June 22, 2026, Meta no longer supports DMA breakdowns. + Use [`ads_insights_comscore_market`](#ads-insights-comscore-market) instead. + + This table contains the same fields as the [`ads_insights`](#ads_insights) table, with the exception of `dma`. @@ -203,6 +210,33 @@ tables: - dma - date_start replication-key: date_start +- name: ads_insights_comscore_market + description: 'The `ads_insights_comscore_market` table contains entries for each + campaign/set/ad combination for each day, along with detailed statistics, segmented + by Comscore Market. + + + This table contains the same fields as the [`ads_insights`](#ads_insights) table, + with the exception of `comscore_market`. + + + **Note**: Data for deleted ads, adsets, and campaigns will not appear in this + table even if the **Include data from deleted campaigns, ads, and adsets** option + in the integration''s settings is enabled. + + ' + links: + doc-link: https://developers.facebook.com/docs/marketing-api/insights/fields/ + singer-schema: https://github.com/singer-io/tap-facebook/blob/master/tap_facebook/schemas/ads_insights_comscore_market.json + table-details: + replication-method: Key-based Incremental + primary-keys: + - ad_id + - adset_id + - campaign_id + - comscore_market + - date_start + replication-key: date_start - name: ads_insights_hourly_advertiser description: 'The `ads_insights_hourly_advertiser` table contains entries for each campaign/set/ad combination for each day, along with detailed statistics, segmented diff --git a/_data/taps/schemas/facebook-ads/v1/json/ads_insights_comscore_market.json b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_comscore_market.json new file mode 100644 index 000000000..f201722f0 --- /dev/null +++ b/_data/taps/schemas/facebook-ads/v1/json/ads_insights_comscore_market.json @@ -0,0 +1,1252 @@ +{ + "properties": { + "account_id": { + "type": [ + "null", + "string" + ] + }, + "account_name": { + "type": [ + "null", + "string" + ] + }, + "action_values": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "actions": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "ad_id": { + "type": [ + "null", + "string" + ] + }, + "ad_name": { + "type": [ + "null", + "string" + ] + }, + "adset_id": { + "type": [ + "null", + "string" + ] + }, + "adset_name": { + "type": [ + "null", + "string" + ] + }, + "campaign_id": { + "type": [ + "null", + "string" + ] + }, + "campaign_name": { + "type": [ + "null", + "string" + ] + }, + "canvas_avg_view_percent": { + "type": [ + "null", + "number" + ] + }, + "canvas_avg_view_time": { + "type": [ + "null", + "number" + ] + }, + "clicks": { + "type": [ + "null", + "integer" + ] + }, + "conversion_rate_ranking": { + "type": [ + "null", + "string" + ] + }, + "conversion_values": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "conversions": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "cost_per_action_type": { + "items": { + "properties": { + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "cost_per_inline_link_click": { + "type": [ + "null", + "number" + ] + }, + "cost_per_inline_post_engagement": { + "type": [ + "null", + "number" + ] + }, + "cost_per_unique_action_type": { + "items": { + "properties": { + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "string" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "cost_per_unique_click": { + "type": [ + "null", + "number" + ] + }, + "cost_per_unique_inline_link_click": { + "type": [ + "null", + "number" + ] + }, + "cpc": { + "type": [ + "null", + "number" + ] + }, + "cpm": { + "type": [ + "null", + "number" + ] + }, + "cpp": { + "type": [ + "null", + "number" + ] + }, + "ctr": { + "type": [ + "null", + "number" + ] + }, + "date_start": { + "type": [ + "null", + "date-time" + ] + }, + "date_stop": { + "type": [ + "null", + "date-time" + ] + }, + "comscore_market": { + "type": [ + "null", + "string" + ] + }, + "engagement_rate_ranking": { + "type": [ + "null", + "string" + ] + }, + "frequency": { + "type": [ + "null", + "number" + ] + }, + "impressions": { + "type": [ + "null", + "integer" + ] + }, + "inline_link_click_ctr": { + "type": [ + "null", + "number" + ] + }, + "inline_link_clicks": { + "type": [ + "null", + "integer" + ] + }, + "inline_post_engagement": { + "type": [ + "null", + "integer" + ] + }, + "objective": { + "type": [ + "null", + "string" + ] + }, + "outbound_clicks": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "quality_ranking": { + "type": [ + "null", + "string" + ] + }, + "reach": { + "type": [ + "null", + "integer" + ] + }, + "social_spend": { + "type": [ + "null", + "number" + ] + }, + "spend": { + "type": [ + "null", + "number" + ] + }, + "unique_actions": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "unique_clicks": { + "type": [ + "null", + "integer" + ] + }, + "unique_ctr": { + "type": [ + "null", + "number" + ] + }, + "unique_inline_link_click_ctr": { + "type": [ + "null", + "number" + ] + }, + "unique_inline_link_clicks": { + "type": [ + "null", + "integer" + ] + }, + "unique_link_clicks_ctr": { + "type": [ + "null", + "number" + ] + }, + "unique_outbound_clicks": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "video_30_sec_watched_actions": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "video_p100_watched_actions": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "video_p25_watched_actions": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "video_p50_watched_actions": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "video_p75_watched_actions": { + "items": { + "properties": { + "1d_click": { + "type": [ + "null", + "number" + ] + }, + "1d_view": { + "type": [ + "null", + "number" + ] + }, + "28d_click": { + "type": [ + "null", + "number" + ] + }, + "28d_view": { + "type": [ + "null", + "number" + ] + }, + "7d_click": { + "type": [ + "null", + "number" + ] + }, + "7d_view": { + "type": [ + "null", + "number" + ] + }, + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "video_play_curve_actions": { + "items": { + "properties": { + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "items": { + "type": [ + "null", + "integer" + ] + }, + "type": [ + "null", + "array" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + }, + "website_ctr": { + "items": { + "properties": { + "action_destination": { + "type": [ + "null", + "string" + ] + }, + "action_target_id": { + "type": [ + "null", + "string" + ] + }, + "action_type": { + "type": [ + "null", + "string" + ] + }, + "value": { + "type": [ + "null", + "number" + ] + } + }, + "type": [ + "null", + "object" + ] + }, + "type": [ + "null", + "array" + ] + } + }, + "type": [ + "null", + "object" + ] +} \ No newline at end of file diff --git a/_saas-integrations/facebook-ads/facebook-ads-latest.md b/_saas-integrations/facebook-ads/facebook-ads-latest.md index e718542e4..ef43ff496 100755 --- a/_saas-integrations/facebook-ads/facebook-ads-latest.md +++ b/_saas-integrations/facebook-ads/facebook-ads-latest.md @@ -188,6 +188,23 @@ schema-sections: - content: | There are two types of tables in Stitch’s {{ integration.display_name }} integration: Core Object and Insights. + **Note**: The `ads_insights_dma` table is deprecated because Meta removed DMA support on June 22, 2026. Use `ads_insights_comscore_market` for market-level geographic reporting. + + ### DMA to Comscore migration + + **What changed:** + + - Old table: `ads_insights_dma` with `dma` field + - New table: `ads_insights_comscore_market` with `comscore_market` field + + **Migration steps:** + + 1. In your Facebook Ads integration, deselect `ads_insights_dma`. + 2. Select `ads_insights_comscore_market`. + 3. Update any downstream queries and reports to use the new table and field name. + + **Note**: Comscore Market IDs differ from DMA codes. Refer to [Meta's DMA to Comscore mapping table](https://www.facebook.com/business/help/709868688063859) if needed. + - **Core Object** tables contain foundational data that's useful for analysis. These are the [`adcreative`](#adcreative), [`ads`](#ads), [`adsets`](#adsets), and [`campaigns`](#campaigns) tables. To learn more about how Facebook Ads data is structured, we recommend checking out their [API guide](https://developers.facebook.com/docs/marketing-api/buying-api). - **Insights** tables contain performance data for every campaign/adset/ad combination, segmented by day and demographics specific to each table. For example: The [`ads_insights_age_and_gender`](#ads_insights_age_and_gender) table is segmented by day, age, and gender. From 56261fc0e75350b24e07377f02c4a05bf7c2aff5 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 1 Jul 2026 13:34:10 +0000 Subject: [PATCH 2/3] Automated commit: Generate foreign keys --- .../v1/facebook-ads-v1-foreign-keys.yml | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml index c0e181e7a..85b5de9e5 100644 --- a/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml +++ b/_data/taps/schemas/facebook-ads/v1/facebook-ads-v1-foreign-keys.yml @@ -197,6 +197,10 @@ tables: keys: - key: account_id foreign-key: account_id + - table-name: ads_insights_comscore_market + keys: + - key: account_id + foreign-key: account_id - table-name: ads_insights_platform_and_device keys: - key: account_id @@ -269,6 +273,16 @@ tables: foreign-key: ad_id - key: campaign_id foreign-key: campaign_id + - table-name: ads_insights_comscore_market + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id - table-name: ads_insights_platform_and_device keys: - key: account_id @@ -347,6 +361,16 @@ tables: foreign-key: ad_id - key: campaign_id foreign-key: campaign_id + - table-name: ads_insights_comscore_market + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id - table-name: ads_insights_platform_and_device keys: - key: account_id @@ -423,6 +447,16 @@ tables: foreign-key: ad_id - key: campaign_id foreign-key: campaign_id + - table-name: ads_insights_comscore_market + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id - table-name: ads_insights_platform_and_device keys: - key: account_id @@ -499,6 +533,16 @@ tables: foreign-key: ad_id - key: campaign_id foreign-key: campaign_id + - table-name: ads_insights_comscore_market + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id - table-name: ads_insights_platform_and_device keys: - key: account_id @@ -575,6 +619,16 @@ tables: foreign-key: ad_id - key: campaign_id foreign-key: campaign_id + - table-name: ads_insights_comscore_market + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id - table-name: ads_insights_platform_and_device keys: - key: account_id @@ -651,6 +705,16 @@ tables: foreign-key: ad_id - key: campaign_id foreign-key: campaign_id + - table-name: ads_insights_dma + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id - table-name: ads_insights_platform_and_device keys: - key: account_id @@ -737,6 +801,16 @@ tables: foreign-key: ad_id - key: campaign_id foreign-key: campaign_id + - table-name: ads_insights_comscore_market + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id - table-name: ads_insights_region keys: - key: account_id @@ -813,6 +887,16 @@ tables: foreign-key: ad_id - key: campaign_id foreign-key: campaign_id + - table-name: ads_insights_comscore_market + keys: + - key: account_id + foreign-key: account_id + - key: adset_id + foreign-key: adset_id + - key: ad_id + foreign-key: ad_id + - key: campaign_id + foreign-key: campaign_id - table-name: ads_insights_platform_and_device keys: - key: account_id @@ -871,6 +955,10 @@ tables: keys: - key: id foreign-key: adset_id + - table-name: ads_insights_comscore_market + keys: + - key: id + foreign-key: adset_id - table-name: ads_insights_platform_and_device keys: - key: id @@ -911,6 +999,12 @@ tables: foreign-key: ad_id - key: id foreign-key: campaign_id + - table-name: ads_insights_comscore_market + keys: + - key: ads.data.id + foreign-key: ad_id + - key: id + foreign-key: campaign_id - table-name: ads_insights_platform_and_device keys: - key: ads.data.id From d8758b1ec41f79175e33ed6d6d139eb437c81aea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lanie=20Vistry?= Date: Wed, 1 Jul 2026 15:58:52 +0200 Subject: [PATCH 3/3] Moved the note --- _saas-integrations/facebook-ads/facebook-ads-latest.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_saas-integrations/facebook-ads/facebook-ads-latest.md b/_saas-integrations/facebook-ads/facebook-ads-latest.md index ef43ff496..39e0567e7 100755 --- a/_saas-integrations/facebook-ads/facebook-ads-latest.md +++ b/_saas-integrations/facebook-ads/facebook-ads-latest.md @@ -188,9 +188,9 @@ schema-sections: - content: | There are two types of tables in Stitch’s {{ integration.display_name }} integration: Core Object and Insights. - **Note**: The `ads_insights_dma` table is deprecated because Meta removed DMA support on June 22, 2026. Use `ads_insights_comscore_market` for market-level geographic reporting. - ### DMA to Comscore migration + + **Note**: The `ads_insights_dma` table is deprecated because Meta removed DMA support on June 22, 2026. Use `ads_insights_comscore_market` for market-level geographic reporting. **What changed:**