PR #179 includes the following updates:
- Adds support for configuring individual package-level variables and models in Quickstart.
PR #176 includes the following updates:
- For TikTok Ads, the
countrycolumn inad_reporting__monthly_campaign_country_reportnow sources directly fromcountry_namein the upstream package whentiktok_ads__using_locationistrue, rather than relying on the country code mapping table. No change in output expected.
PR #173 includes the following update:
- Increases the required google_ads package to version 1.3.0
- This version includes configurable threshold variables for customizable diagnostic report optimization logic.
8 total changes • 2 possible breaking changes
| Data Model(s) | Change type | Old | New | Notes |
|---|---|---|---|---|
google_ads__campaign_report |
New Column | ctr |
Click-through rate for ad relevance analysis Possible breaking change: New column may affect downstream use |
|
google_ads__campaign_report |
New Column | serving_status |
Current serving status of the campaign Possible breaking change: New column may affect downstream use |
|
google_ads__campaign_bid_modifiers_report |
New Model | Analyzes bid modifier effectiveness at campaign-criterion level with performance-based recommendations | ||
google_ads__campaign_budget_diagnostics_report |
New Model | Diagnoses daily campaign budget utilization and performance constraints with prioritized optimization recommendations | ||
stg_google_ads__campaign_bid_modifier_historystg_google_ads__campaign_bid_modifier_history_tmp |
New Staging Models | Historical bid modifier configurations and adjustments at campaign-criterion level | ||
stg_google_ads__campaign_bidding_strategy_historystg_google_ads__campaign_bidding_strategy_history_tmp |
New Staging Models | Historical bidding strategy configurations including target CPA and ROAS settings | ||
stg_google_ads__campaign_budget_historystg_google_ads__campaign_budget_history_tmp |
New Staging Models | Historical campaign budget configurations including daily and lifetime budget settings | ||
stg_google_ads__campaign_criterion_historystg_google_ads__campaign_criterion_history_tmp |
New Staging Models | Historical campaign-level targeting criteria including location, device, and audience settings |
PR #169 includes the following updates:
- Updates README with standardized Fivetran formatting
- Increases the required Amazon Ads package to version 1.2.0
- Increases the required Apple Search Ads package to version 1.2.0
- Increases the required Facebook Ads package to version 1.4.0
- Increases the required Google Ads package to version 1.2.0
- Increases the required LinkedIn Ads package to version 1.2.0
- Increases the required Microsoft Ads package to version 1.2.0
- Increases the required Pinterest Ads package to version 1.2.0
- Increases the required Reddit Ads package to version 1.4.0
- Increases the required Snapchat Ads package to version 1.2.0
- Increases the required TikTok Ads package to version 1.2.0
- Increases the required Twitter Ads package to version 1.2.0
PR #168 includes the following updates:
- Increases the required facebook_ads package to version 1.3.0
- Increases the required reddit_ads package to version 1.3.0.
PR #167 includes the following updates:
- Increases the required dbt version upper limit to v3.0.0
4 total changes • 0 possible breaking changes
| Data Model | Change type | Old name | New name | Notes |
|---|---|---|---|---|
| stg_facebook_ads__basic_ad_action_values | New Columns | index, _fivetran_id |
Adding composite fields for primary keys for basic_ad_action_values source table. |
|
| stg_facebook_ads__basic_ad_actions | New Columns | index, _fivetran_id |
Adding composite fields for primary keys for basic_ad_actions source table. |
|
| stg_facebook_ads__demographics_country_actions | New Column | index |
Adding composite field for primary key for demographics_country_actions source table. |
|
| stg_facebook_ads__demographics_region_actions | New Column | index |
Adding composite field for primary key for demographics_region_actions source table. |
PR #158 includes the following updates:
- Updated the
get_enabled_packagesmacro logic by changing empty list default values tonone. This prevents compilation errors to disable models when aninclude_listis empty. - This ensures the following models will not error during compilation:
ad_reporting__monthly_campaign_country_report(When only Amazon, Apple and/or Google Ads are enabled, none of which have country reports)ad_reporting__monthly_campaign_region_report(When only Amazon, Apple, Google, Reddit and/or Tiktok Ads are enabled, none of which have region reports)
- Updated
require-dbt-versionrange inquickstart.ymlto>=1.6.0to match dbt-core due to MetricFlow requirements.
PR #161 includes the following updates:
- Removed the dependency on the
fivetran/**_sourcepackage for all ad transformation packages. See the v1.0.0 release notes of each ad package for more details (example fromdbt_apple_search_ads(link)).
- Updated package to maintain compatibility with dbt-core versions both before and after v1.10.6, which introduced a breaking change to multi-argument test syntax (e.g.,
unique_combination_of_columns). - Temporarily removed unsupported tests to avoid errors and ensure smoother upgrades across different dbt-core versions. These tests will be reintroduced once a safe migration path is available.
- Removed all
dbt_utils.unique_combination_of_columnstests.
- Removed all
PR #156 includes the following updates:
17 total changes • 17 possible breaking changes
| Data Models | Change Type | Old | New | Notes |
|---|---|---|---|---|
ad_reporting__account_report ad_reporting__ad_group_report ad_reporting__ad_report ad_reporting__campaign_report ad_reporting__monthly_campaign_country_report ad_reporting__url_report reddit_ads__account_report reddit_ads__ad_group_report reddit_ads__ad_report reddit_ads__campaign_country_report reddit_ads__campaign_report reddit_ads__url_report stg_reddit_ads__account_report stg_reddit_ads__ad_group_report stg_reddit_ads__ad_report stg_reddit_ads__campaign_country_report stg_reddit_ads__campaign_report |
Column datatype | spend (INT) |
spend (NUMERIC) |
Updated the datatype of the spend field from INT to NUMERIC to preserve decimal precision and prevent rounding when converting to dollars. The type cast is applied in the Reddit Ads staging layer and propagates through to the transform layer. See the dbt_reddit_ads v0.7.0 release for more details. |
- Updated conditions in
.github/workflows/auto-release.yml. - Added
.github/workflows/generate-docs.yml. - Migrated
flags(e.g.,send_anonymous_usage_stats,use_colors) fromsample.profiles.ymltointegration_tests/dbt_project.yml. - Updated
maintainer_pull_request_template.mdwith improved checklist. - Refreshed README tag block.
- Updated Python image version to
3.10.13inpipeline.yml. - Updated
.gitignoreto exclude additional DBT, Python, and system artifacts.
PR #153 includes the following updates:
- To align with the Fivetran Reddit Ads Connector schema, updated the source referenced by
stg_reddit_ads__account_tmpfromACCOUNTtoBUSINESS_ACCOUNTindbt_reddit_ads_source. - Added the
reddit_ads__using_business_accountvariable to control which source is used.- For Quickstart users, this variable is set automatically.
- For dbt Core users, this variable is
trueby default, but you can set the variable tofalsein yourdbt_project.ymlto fall back to usingACCOUNTinstead ofBUSINESS_ACCOUNT. - See the v0.6.0
dbt_reddit_ads_sourcerelease notes for more information.
- Added the
reddit_ads__using_business_accountvariable toquickstart.yml. - Added seed file
reddit_ads_business_account_data. - Updated the seed column types in
integration_tests/dbt_project.yml.
PR #150 includes the following updates:
Note: This is not relevant to Fivetran Quickstart users.
Migrated freshness from a top-level source property to a source config in alignment with recent updates from dbt Core. This will resolve the following deprecation warning that users running dbt >= 1.9.6 may have received:
[WARNING]: Deprecated functionality
Found `freshness` as a top-level property of `<ad platform>` in file
`models/src_<ad platform>.yml`. The `freshness` top-level property should be moved
into the `config` of `<ad platform>`.
IMPORTANT: Users running dbt Core < 1.9.6 will not be able to utilize freshness tests in this release or any subsequent releases, as older versions of dbt will not recognize freshness as a source config and therefore not run the tests.
If you are using dbt Core < 1.9.6 and want to continue running freshness tests on different Ad Platform sources, please elect one of the following options:
- (Recommended) Upgrade to dbt Core >= 1.9.6
- Do not upgrade your installed version of the
ad_reportingpackage. Pin your dependency on v1.14.0 in yourpackages.ymlfile. - Utilize a dbt override to overwrite the each ad source and apply freshness via the old top-level property route. This will require you to copy and paste the entirety of the
src_<ad platform>.ymlfile (example) and add anoverrides: <ad platform source package name>property. See the individual package CHANGELOGs for more details - Amazon Ads - Apple Search Ads - Facebook Ads - Google Ads - LinkedIn Ad Analytics - Microsoft Advertising - Pinterest Ads - Reddit Ads - Snapchat Ads - TikTok Ads - Twitter Ads
PR #144 includes the following updates:
61 total changes • 1 possible breaking change (see ad_reporting__search_report)
| Data Model | Change type | Old name | New name | Notes |
|---|---|---|---|---|
| ad_reporting__monthly_campaign_country_report | New End Model | Incorporates new country-based campaign report models from Facebook Ads, Linkedin Ads, Microsoft Ads, Pinterest Ads, Reddit Ads, Snapchat Ads, TikTok Ads, and Twitter Ads. | ||
| ad_reporting__monthly_campaign_region_report | New End Model | Incorporates new region-based campaign report models from Facebook Ads, Linkedin Ads, Microsoft Ads, Pinterest Ads, Snapchat Ads, and Twitter Ads. | ||
| ad_reporting__search_report | New Supported Platform | Amazon Ads, Apple Search Ads, Microsoft Ads | + Google Ads | Incorporates the new google_ads__search_term_report model. This is automatically enabled but can be disabled by the google_ads__using_search_term_keyword_stats variable. |
| facebook_ads__country_report | New Individual Platform Model | Each record represents the daily performance of a Facebook account at the country level. | ||
| facebook_ads__region_report | New Individual Platform Model | Each record represents the daily performance of a Facebook account at the region level. | ||
| google_ads__search_term_report | New Individual Platform Model | Each record represents daily performance of search terms matching tracked keywords, at the ad group level in Google Ads. | ||
| linkedin_ads__monthly_campaign_country_report | New Individual Platform Model | Table that represents the monthly performance of a campaign at the country level. | ||
| linkedin_ads__monthly_campaign_region_report | New Individual Platform Model | Table that represents the monthly performance of a campaign at the region level. | ||
| microsoft_ads__campaign_country_report | New Individual Platform Model | New table that represents the daily performance of a campaign at the country/geographic region level. | ||
| microsoft_ads__campaign_region_report | New Individual Platform Model | New table that represents the daily performance of a campaign at the geographic region level. | ||
| pinterest_ads__campaign_country_report | New Individual Platform Model | New table that represents the daily performance of ads at the country and campaign level. | ||
| pinterest_ads__campaign_region_report | New Individual Platform Model | New table that represents the daily performance of ads at the region and campaign level. | ||
| reddit_ads__campaign_country_report | New Individual Platform Model | This new table represents the daily performance at the campaign and country level. | ||
| snapchat_ads__campaign_country_report | New Individual Platform Model | Each record represents the daily performance of a Snapchat campaign per country. | ||
| snapchat_ads__campaign_region_report | New Individual Platform Model | Each record represents the daily performance of a Snapchat campaign per region. | ||
| tiktok_ads__campaign_country_report | New Individual Platform Model | New table that represents the daily performance of a campaign at the country/geographic region level. | ||
| twitter_ads__campaign_country_report | New Individual Platform Model | Each record in this table represents the daily performance of ads at the account, campaign, and ad-placement level, segmented by country. | ||
| twitter_ads__campaign_region_report | New Individual Platform Model | Each record in this table represents the daily performance of ads at the account, campaign, and ad-placement level, segmented by geographic region. | ||
| stg_facebook_ads__demographics_country | New Staging Model | Uses demographics_country source table |
||
| stg_facebook_ads__demographics_country_tmp | New Temp Staging Model | Uses demographics_country source table |
||
| stg_facebook_ads__demographics_country_actions | New Staging Model | Uses demographics_country_actions source table |
||
| stg_facebook_ads__demographics_country_actions_tmp | New Temp Staging Model | Uses demographics_country_actions source table |
||
| stg_facebook_ads__demographics_region | New Staging Model | Uses demographics_region source table |
||
| stg_facebook_ads__demographics_region_tmp | New Temp Staging Model | Uses demographics_region source table |
||
| stg_facebook_ads__demographics_region_actions | New Staging Model | Uses demographics_region_actions source table |
||
| stg_facebook_ads__demographics_region_actions_tmp | New Temp Staging Model | Uses demographics_region_actions source table |
||
| stg_facebook_ads__account_history | New Columns | business_state, timezone_offset_hours_utc, min_daily_budget |
||
| stg_google_ads__search_term_keyword_stats | New Staging Model | Uses new search_term_keyword_stats source table |
||
| stg_google_ads__search_term_keyword_stats_tmp | New Temp Staging Model | Uses new search_term_keyword_stats source table |
||
| stg_linkedin_ads__geo_tmp | New Temp Staging Model | Temp model added for geo. |
||
| stg_linkedin_ads__geo | New Staging model | Staging model added for geo. |
||
| stg_linkedin_ads__monthly_ad_analytics_by_country_tmp | New Temp Staging Model | Temp model added for monthly_ad_analytics_by_member_country. |
||
| stg_linkedin_ads__monthly_ad_analytics_by_country | New Staging Model | Staging model added for monthly_ad_analytics_by_member_country. |
||
| stg_linkedin_ads__monthly_ad_analytics_by_region_tmp | New Temp Staging Model | Temp model added for monthly_ad_analytics_by_member_region. Name shortened for warehouse table name length compatibility. |
||
| stg_linkedin_ads__monthly_ad_analytics_by_region | New staging model | Staging model added for monthly_ad_analytics_by_member_region. Name shortened for warehouse table name length compatibility. |
||
| stg_microsoft_ads__geographic_daily_report_tmp | New Temp Staging Model | Temp model added for geographic_performance_daily_report. |
||
| stg_microsoft_ads__geographic_daily_report | New Staging Model | Staging model added for geographic_performance_daily_report. |
||
| stg_microsoft_ads__campaign_history | New Columns | budget, budget_id, budget_type, language |
||
| stg_pinterest_ads__pin_promotion_targeting_report | New Staging Model | Uses pin_promotion_targeting_report source table |
||
| stg_pinterest_ads__targeting_geo_region | New Staging Model | Uses targeting_geo_region source table |
||
| stg_pinterest_ads__targeting_geo | New Staging Model | Uses targeting_geo source table |
||
| stg_pinterest_ads__pin_promotion_targeting_report_tmp | New Temp Staging Model | Uses pin_promotion_targeting_report source table |
||
| stg_pinterest_ads__targeting_geo_region_tmp | New Temp Staging Model | Uses targeting_geo_region source table |
||
| stg_pinterest_ads__targeting_geo_tmp | New Temp Staging Model | Uses targeting_geo source table |
||
| stg_pinterest_ads__campaign_history | New Columns | start_time, end_time, budget_spend_cap, lifetime_spend_cap, objective_type |
||
| stg_reddit_ads__campaign_country_report | New Staging Model | Uses CAMPAIGN_COUNTRY_REPORT source table |
||
| stg_reddit_ads__campaign_country_conversions_report | New Staging Model | Uses CAMPAIGN_COUNTRY_CONVERSIONS_REPORT source table |
||
| stg_reddit_ads__campaign_country_report_tmp | New Temp Staging Model | Uses CAMPAIGN_COUNTRY_REPORT source table |
||
| stg_reddit_ads__campaign_country_conversions_report_tmp | New Temp Staging Model | Uses CAMPAIGN_COUNTRY_CONVERSIONS_REPORT source table |
||
| stg_snapchat_ads__campaign_geo_country_daily_report | New Staging Model | Uses campaign_geo_country_daily_report source table |
||
| stg_snapchat_ads__campaign_geo_region_daily_report | New Staging Model | Uses campaign_geo_region_daily_report source table |
||
| stg_snapchat_ads__campaign_geo_country_daily_report_tmp | New Temp Staging Model | Uses campaign_geo_country_daily_report source table |
||
| stg_snapchat_ads__campaign_geo_region_daily_report_tmp | New Temp Staging Model | Uses campaign_geo_region_daily_report source table |
||
| stg_snapchat_ads__campaign_history | New Columns | daily_budget_micro, start_time, end_time, lifetime_spend_cap_micro, status, objective |
||
| stg_tiktok_ads__campaign_country_report_tmp | New Temp Staging Model | Temp model added for campaign_country_report. |
||
| stg_tiktok_ads__campaign_country_report | New Staging Model | Staging model added for campaign_country_report. |
||
| stg_tiktok_ads__campaign_history | New Columns | objective_type, status, budget, budget_mode, created_at, is_new_structure |
||
| stg_twitter_ads__campaign_locations_report | New Staging Model | Uses campaign_locations_report source table |
||
| stg_twitter_ads__campaign_locations_report_tmp | New Temp Staging Model | Uses campaign_locations_report source table |
||
| stg_twitter_ads__campaign_regions_report | New Staging Model | Uses campaign_regions_report source table |
||
| stg_twitter_ads__campaign_regions_report_tmp | New Temp Staging Model | Uses campaign_regions_report source table |
- Google Ads search term report data is now included, by default, in
ad_reporting__search_report. This leverages thesearch_term_keyword_statssource table from the Google Ads connector.- Transformations related to
search_term_keyword_statscan be disabled by using the newgoogle_ads__using_search_term_keyword_statsvariable. See the Google Ads README for more details.
- Transformations related to
- Introduced the
google_ads__search_term_keyword_stats_passthrough_metricsvariable, which can be used to pass through additional metrics fields from thesearch_term_keyword_statsreport to downstream models.
-
Added two new end models:
ad_reporting__monthly_campaign_country_reportandad_reporting__monthly_campaign_region_report, which both reflect monthly campaign performance across different geographies.- The country names in
ad_reporting__monthly_campaign_country_reportare standardized to align with official ISO-3166 names. Greater global region names (ex: Southern Asia) are also included and leveraged from lukes/ISO-3166-Countries-with-Regional-Codes.
- The country names in
-
The platforms included in these geo-based reports are:
- Facebook Ads (data is only available at the account-level;
campaign_name='Account-level'andcampaign_idwill be null) - Linkedin Ads
- Microsoft Ads
- Pinterest Ads
- Reddit Ads (only in the country report; not in the region report)
- Snapchat Ads
- TikTok Ads (only in the country report; not in the region report)
- Twitter Ads
- Facebook Ads (data is only available at the account-level;
-
These new reports include their respective passthrough columns and model enabling/disabling variables.
-
See the relevant entries in the DECISIONLOG for these reports.
- Resolved a CLI Warning caused by extraneous
endmacroblocks. (PR #143)
- Updated search report data validation tests to include Google Ads data.
- Added data validation tests for the new country and region reports.
get_querymacro updated to support country and region reports.- Updated LICENSE.
- Updated the maintainer PR template.
PR #137 includes the following updates:
- The following dependencies have been updated following upstream breaking changes. See the below release notes for more information.
- Removed the dependency on calogica/dbt_date as it is no longer actively maintained. To maintain functionality, the
get_base_datesmacro (along with all other dependent macros) used inmetricflow_time_spinesemantic model has been replicated and housed within themacros/fivetran_date_macrosfolder. All fivetran_date_macros have been prefixed withfivetran_to avoid potential naming conflicts.- In order to make the transition more seamless, we have retained the variable name of
dbt_date:time_zone. Therefore, although we removed the dependency on the dbt-date macros and have renamed them, this variable will still be the same.
- In order to make the transition more seamless, we have retained the variable name of
- Resolved a CLI Warning caused by the
metricflow_time_spinemodel not having a properly documented YAML configuration.
- Updated
apple_search_adsandmicrosoft_adsseed files to keep consistent with changes to seed files in the individual packages. - The
conversionsfield forapple_search_adsnow sources fromtap_installs.
- The
dbt_snapchat_adsdependency has been updated to[">=0.8.0", "<0.9.0"]. These upstream versions introduce breaking changes. For details, refer to the dbt_snapchat_ads v0.8.0 release notes. (PR #133)- Added ad squad and campaign details to the
snapchat_ads__ad_reportmodel so they can fill snapchat ad fieldsint_ad_reporting__ad_reportmodel. These details populate the following fields inad_reporting__ad_report:ad_squad_idcorresponds to thead_group_idvalue.ad_squad_namecorresponds to thead_group_namevalue.campaign_idandcampaign_namehave the equivalent values.
- Added ad squad and campaign details to the
- Updated validation tests in the
integration_testsfolder to check for discrepancies betweenconversionsandconversions_value. (PR #133)
- Added Quickstart model counts to README. (#130)
- Corrected references to connectors and connections in the README. (#130)
- Updated the DECISIONLOG and README to include details about timezone differences across ad platforms. (#131)
- The
dbt_linkedindependency has been updated to[">=0.10.0", "<0.11.0"], and thedbt_linkedin_sourcedependency has been updated to[">=0.10.0", "<0.11.0"]. These upstream versions introduce breaking changes. For details, refer to the dbt_linkedin_source v0.10.0 and dbt_linkedin v0.10.0 release notes. (PR #120)- Added the
click_uri_typefield to the following models. This field allows users to differentiate which click uri type (text_adorspotlight) was used to populate theclick_urifield.stg_linkedin_ads__creative_historylinkedin_ads__creative_reportlinkedin_ads__url_report- Note: Only
text_adandspotlightclick URI types are supported. To request support for additional types, submit a Feature Request.
- The
click_urifield now populates values using aCOALESCEoftext_ad_landing_page,spotlight_landing_page, andclick_uri. For details, refer to the dbt_linkedin_source v0.10.0 release notes. (PR #120)- This change aligns with the LinkedIn Ads API migration and Fivetran LinkedIn Ads connector update, which moved
click_uridata totext_ad_landing_pageorspotlight_landing_pagebased on creative type.
- This change aligns with the LinkedIn Ads API migration and Fivetran LinkedIn Ads connector update, which moved
- Added the
- The
dbt_tiktok_adsdependency has been updated to[">=0.7.0", "<0.8.0"], and thedbt_tiktok_sourcedependency has been updated to[">=0.7.0", "<0.8.0"]. These upstream versions introduce breaking changes. For details, refer to the dbt_tiktok_ads_source v0.7.0 and dbt_tiktok_ads v0.7.0 release notes. (PR #127) - The
agecolumn in theADGROUP_HISTORYtable was renamed toage_groupsin the July 2023 TikTok update. (PR #127)- Previously, the
stg_tiktok_ads__ad_group_historymodel coalescedageandage_groupsto handle legacy data. Due to incompatible data types (string and JSON), this coalesced field has been removed in favor of solely theage_groupscolumn. - To populate historical data in the
age_groupscolumn, perform a resync of theADGROUP_HISTORYtable. TikTok provides all data regardless of the previous sync state. - For more details, see the Tiktok Ads DECISIONLOG.
- Previously, the
- Improved README structure by moving the Ad Reporting heading above the README tags and aligning it to the left. (PR #124)
- Added consistency validation tests for the following models to enhance integration testing (used internally by Fivetran maintainers) (PR #127):
ad_reporting__ad_reportad_reporting__url_report
PR #122 introduces the following BREAKING CHANGES:
- Added
conversionsandconversions_valuefields to each Ad Reporting end model.- BREAKING: In the event that you were already including conversions through passthrough variables and called your field(s)
conversionsand/orconversions_value, your old fields will still be included, but they will be suffixed with a_c, while the new default conversion fields will take precedence asconversionsandconversions_value - For some platforms, conversions data is sent along with the type of event the metrics are attributed to (ie purchases, leads, sign ups). We have largely chosen to consider purchases, leads, and custom-defined events to be conversions. However, you may configure this at each individual platform level for the following packages:
- BREAKING: In the event that you were already including conversions through passthrough variables and called your field(s)
| Platform | Variable | Default Values | How to Use |
|---|---|---|---|
| Facebook Ads | facebook_ads__conversion_action_types |
offsite_conversion.fb_pixel_custom + offsite_conversion.fb_pixel_lead + onsite_conversion.lead_grouped + offsite_conversion.fb_pixel_purchase + onsite_conversion.purchase |
Configuring Conversion Action Types |
| LinkedIn Ad Analytics | linkedin_ads__conversion_fields |
external_website_conversions + one_click_leads |
Adding in Conversion Fields |
| Reddit Ads | reddit_ads__conversion_event_types |
lead + purchase + custom |
Configure Conversion Event Types |
| Snapchat Ads | snapchat_ads__conversion_fields |
conversion_purchases |
Configuring Conversion Fields |
| Twitter Ads | twitter_ads__conversion_fields AND twitter_ads__conversion_sale_amount_fields |
conversion_purchases_metric + conversion_custom_metric AND conversion_purchases_sale_amount + conversion_custom_sale_amount |
Customizing Types of Conversions |
- Created data validation tests to be used by package maintainers to verify this and future releases.
- Addition of an blank line between the quoted line and the comment.
- Addition of a section tag within the README so the model descriptions may be accessible within the Fivetran UI for Quickstart. (PR #113)
- Upticked the
google_adsandlinkedin_adsdependencies following major releases in both packages in which conversion metrics have been added. Refer to the individual package release notes for more details (Google Ads, Linkedin Ads). (PR #115)- Note: Default conversions have not been added to
ad_reportingmodels yet, as we are rolling out conversion support to all upstream Ad packages first.
- Note: Default conversions have not been added to
PR #112 includes the following update:
- Tiny update which upticks the
microsoft_adsdependency following a recent major release. Refer to the Microsoft Ads v0.8.0 release notes for what exact updates have been included.
- Adjust the severity of the
account_idtest inad_reporting__account_reporttowarn. This is required since Snapchat can hard-delete records from the history tables, but not from the reporting tables. This ensures that accurate statistics are being reported and production pipelines aren't failing. (PR #20)- Documents the above decision in the DECISIONLOG.md.
- Updated the pull request templates (PR #110).
- Included auto-releaser GitHub Actions workflow to automate future releases (PR #110).
PR #103 includes the following update.
-
Identifiers for the following packages have been updated for consistency with the source name and compatibility with the union schema feature. See the package's changelog for a full list of changes.
-
Linkedin ads updates:
- Updated materializations of dbt_linkedin non-
tmpstaging models from views to tables. This is to bring the materializations into alignment with other ad reporting packages and eliminate errors in Redshift. - Updated the name of the source created by
dbt_linkedin_sourcefromlinkedintolinkedin_ads. This was to bring the naming used in this package in alignment with our other ad packages and for compatibility with the union schema feature. If you are using this source, you will need to update the name.
- Updated materializations of dbt_linkedin non-
- Unioning capability! This adds the ability to union source data from multiple ad reporting connectors. Refer to the Union Multiple Connectors README section for more details.
- Renames the semantic model from
ad_reporting__ad_report-->ad_reportin order to avoid the dunder(__) keyword. (PR #105)
PR #100 includes the following updates.
- Updated the metrics spec to reflect the new spec in dbt-core 1.6.0. As a result, the new required dbt version is
[">=1.6.0", "<2.0.0"]. Be sure to upgrade your dbt-core version when upgrading this package to avoid dbt version compatibility errors.
- Added
ad_reporting__ad_report.ymlsemantic model which is required to define metrics. - Included
metricflow_time_spine.sqlwhich is required by Metricflow. This will be deprecated in future releases. If you have already created ametricflow_time_spine.sqlmodel in your project, you will need to disable it for this package by setting the variablead_reporting__metricflow_time_spine_enabledtofalsein your project.
## root dbt_project.yml
vars:
ad_reporting__metricflow_time_spine_enabled: false ## true by default- Added a new variable
dbt_date:time_zonewhich is used by thedbt_date.get_base_datesmacro within themetricflow_time_spinemodel. This variable is nested under thead_reportinghierarchy in the variables config and should not affect any global declarations if you leverage thedbt_datepackage in your own environment.- The default value of this variable is
America/Los_Angeles, but you may be able override this in your own root project. For more information on why this variable is needed and the different value options, refer to the dbt-date package documentation.
- The default value of this variable is
## root dbt_project.yml
vars:
"dbt_date:time_zone": "America/Chicago" # Default is "America/Los_Angeles"- Please be aware that due to a bug in dbt-core v1.6.0 the docs were not regenerated as part of this release. You can expect a new release in the future with the regenerated docs that contain these updates.
PR #98 includes the following changes based on the underlying individual package upgrades:
- Amazon Ads dependency upgraded to v0.2.0. Please see the respective upstream Amazon Ads and Amazon Ads Source releases for more details.
- Pinterest Ads dependency upgraded to v0.8.0. Please see the respective upstream Pinterest Ads and Pinterest Ads Source releases for more details.
- Tiktok Ads dependency upgraded to v0.4.0. Please see the respective upstream Tiktok Ads and Tiktok Ads Source
- Adding the correct variable name in
ad_reporting__url_reportfor passthrough metrics. (PR #96)
- Added
ad_reporting__<report>_passthrough_metricsvariables to easily add common metrics across all platforms into thead_reportingmodels! This allows metrics other than the standardclicks,impressions, andcostto be included in the final ad reporting models. See below for a full list of new variables and example metrics to passthrough. (PR #85)- It is important to call out that this is only possible if the relevant upstream Ad platform variables have the same metric to be unioned in the roll up model. Please see the README section for details around how to configure the passthrough metrics.
- Please ensure you exercised due diligence when adding metrics to these models. The metrics added by default (
clicks,impressions, andcost) have been vetted by the Fivetran team maintaining this package for accuracy. There are metrics included within the source reports, for example metric averages, which may be inaccurately represented at the grain for reports created in this package. You will want to ensure whichever metrics you pass through are indeed appropriate to aggregate at the respective reporting levels provided in this package.
vars:
ad_reporting__account_passthrough_metrics:
- name: conversions
- name: view_through_conversions
ad_reporting__campaign_passthrough_metrics:
- name: total_shares
- name: conversions
ad_reporting__ad_group_passthrough_metrics:
- name: conversions
- name: interactions
ad_reporting__ad_passthrough_metrics: ## For both Ad and URL reports
- name: conversions
- name: video_views_captured
ad_reporting__keyword_passthrough_metrics:
- name: interactions
ad_reporting__search_passthrough_metrics:
- name: conversions
- name: local_spend_amount- Addition of the
pinterest__using_keywords(default=true) variable that allows users to disable the relevant keyword reports in the downstream Pinterest models if they are not used. (PR #89)
- Incorporated the new
fivetran_utils.drop_schemas_automationmacro into the end of each Buildkite integration test job. (PR #86) - Updated the pull request templates. (PR #86)
PR #79 includes the following updates:
- Updated package dependencies for Linkedin Ads v0.7.0, for more information please refer to Linkedin Ads PR #28
- Updated
READMEpackage dependencies to reflect current package versions
(PR #83) includes the following feature additions:
- We have added Reddit Ads as another platform to our Ad Reporting package.
- Your Reddit Ads data can now be rolled into the below models:
ad_reporting__account_reportad_reporting__campaign_reportad_reporting__ad_group_reportad_reporting__ad_reportad_reporting__url_report
Note: If you are NOT using Reddit Ads, add the below variable to your
dbt_project.ymlto disable the Reddit Ads models.
vars:
ad_reporting__reddit_ads_enabled: False ## True by default- Updating
ad_reporting_metrics.ymlto be up to date with dbt Metrics documentation (PR #82)
- Enabling additional Snapchat Ads columns in
ad_reporting__url_reportthat were previously mapped to null values. (#81)- These columns are: ad_group_id (ad_squad_id), ad_group_name (ad_squad_name), campaign_id and campaign_name.
- Swapped out
calculation_method: expressionforcalculation_method: derivedfor derived metrics
PR #75 includes the following new features:
- Amazon Ads has officially been released and added to the Ad Reporting package.
- Your Amazon Ad data can now be rolled into the below models:
ad_reporting__account_reportad_reporting__campaign_reportad_reporting__ad_group_reportad_reporting__ad_reportad_reporting__search_reportad_reporting__keyword_report
- Documentation has been updated to include Amazon Ads information.
Note: If you are NOT using Amazon Ads, add the below variable to your
dbt_project.ymlto disable the Amazon Ads models.
vars:
ad_reporting__amazon_ads_enabled: False ## True by defaultPR #66 includes the following breaking changes:
- Dispatch update for dbt-utils to dbt-core cross-db macros migration. Specifically
{{ dbt_utils.<macro> }}have been updated to{{ dbt.<macro> }}for the below macros:any_valuebool_orcast_bool_to_textconcatdate_truncdateadddatediffescape_single_quotesexcepthashintersectlast_daylengthlistaggpositionreplacerightsafe_castsplit_partstring_literaltype_biginttype_floattype_inttype_numerictype_stringtype_timestamparray_appendarray_concatarray_construct
- For
current_timestampandcurrent_timestamp_in_utcmacros, the dispatch AND the macro names have been updated to the below, respectively:dbt.current_timestamp_backcompatdbt.current_timestamp_in_utc_backcompat
dbt_utils.surrogate_keyhas also been updated todbt_utils.generate_surrogate_key. Since the method for creating surrogate keys differ, we suggest all users do afull-refreshfor the most accurate data. For more information, please refer to dbt-utils release notes for this update.- Dependencies on
fivetran/fivetran_utilshave been upgraded, previously[">=0.3.0", "<0.4.0"]now[">=0.4.0", "<0.5.0"]. - Metric attirbutes have been renamed to be consistent with the latest version of dbt-metrics:
sql->expressionandtype->calculation_method
- Added ability for a user to allow records having nulls in url fields to be included in the
ad_reporting__url_reportand the underlying*url_reportmodels. This is done by setting the below variable toFalsein yourdbt_project.ymlfile. (#72)
vars:
ad_reporting__url_report__using_null_filter: False # Use this variable to include null urls for ALL upstream ad platform packages enabled in your project. Default is True. - Updated README with this information. (#72)
- Disabled the
not_nulltest forad_reporting__url_reportwhen null urls are allowed. (#72) - Updated this package's
integration_tests/seeds/microsoft_ads_campaign_performance_daily_report_datain light of PR #23 ondbt_microsoft_ads_source.(#68)
- The
keyword_idfield (which is a surrogate key generated from the combination of 'account_id', 'line_item_id', 'segment', and 'placement' fields within the Twitter Ads source) has been added to thead_reporting__keyword_reportmodel for the Twitter Ads platform. (#71)
- The
not_nulltest on thead_reporting__keyword_reporthas been adjusted to be tested on thekeyword_idas opposed to thekeyword_text. This is needed as there may be times where keyword historical records may be removed and lose reference in an upstream join. As such, the text may be lost and the null test should be applied to the ID instead. (#71)
- @clay-walker for being instrumental in understanding and addressing this issue. (#63)
- Updated
twitter_ads__using_keywordsto have consistent defaults. (#70)
PR #57 incorporates the following change:
- The package now includes a set of pre-defined metrics related to clicks, impressions, and spend (definitions here).
- Refer to the README for the included metrics and instructions on how to use them.
- Note: This requires you to manually add a dependency on the dbt metrics package to use.
PR #60 incorporates the following change:
- The LinkedIn Ads schema and database variables were incorrectly documented within the README. The README has been updated to reflect the correct variable names.
linkedin_schemahas been properly updated to reflectlinkedin_ads_schemalinkedin_databasehas been updated to reflectlinkedin_ads_database.
PR #54 incorporates these breaking changes:
- The previous
ad_reportingmodel has been renamed toad_reporting__url_reportand will only include records that have non-null url values for more information on specific filters please refer to each platform package'surl_reportmodel.
PR #54 includes the following new features:
- Apple Search Ads has officially been released and added to Ad Reporting.
- In addition to the
ad_reporting__url_reportmodel update, we have added five new models:ad_reporting__account_reportad_reporting__campaign_reportad_reporting__ad_group_reportad_reporting__ad_reportad_reporting__keyword_search_report
- This package now leverages
ad_reporting__<platform>_enabledvariables to enable/disable all upstream packages and respective models all in one place. - New corresponding documentation and updated docs for new models.
- This package leverages several different macros in order to successfully build each model and features a
macros_docs.ymlwithin themacrosdirectory that provides details for each macro.
- The
api_sourcevariable for the Google Ads package is now defaulted togoogle_adsas opposed toadwords. The Adwords API has since been deprecated by Google and is now no longer the standard API for the Google Ads connector. Please ensure you are using a Google Ads API version of the Fivetran connector before upgrading this package. (#53)- Please note, the
adwordsversion of this package will be fully removed from the package in August of 2022. This means, models undermodels/adwords_connectorwill be removed in favor ofmodels/google_ads_connectormodels.
- Please note, the
- The
ad_reportingfinal model is now materialized in a schema<target_schema>_ad_reportingby default. This may be overwritten if desired. (#53)
- The Google Ads dependency has been updated to now reference the latest version of the
dbt_google_adspackage (v0.6.0). This version of the package incorporates new and modified tables within theGoogle Ads APIversion of the connector. For more information, refer to the relevant dbt_google_ads and dbt_google_ads_source v0.6.0 release notes.
TikTok Ads has been added as a dependency and is enabled by default. Be sure to disable the models via the README if you do not have a TikTok Ads connector.
- Added the TikTok Ads package to be included in the final
ad_reportingmodel. (#36)
🎉 dbt v1.0.0 Compatibility Pre Release 🎉 An official dbt v1.0.0 compatible version of the package will be released once existing feature/bug PRs are merged.
- Adjusts the
require-dbt-versionto now be within the range [">=1.0.0", "<2.0.0"]. Additionally, the package has been updated for dbt v1.0.0 compatibility. If you are using a dbt version <1.0.0, you will need to upgrade in order to leverage the latest version of the package.- For help upgrading your package, I recommend reviewing this GitHub repo's Release Notes on what changes have been implemented since your last upgrade.
- For help upgrading your dbt project to dbt v1.0.0, I recommend reviewing dbt-labs upgrading to 1.0.0 docs for more details on what changes must be made.
- Upgrades the package dependencies to refer to the latest individual ad package versions. Additionally, the latest individual ad package versions have a dependency on the latest
dbt_fivetran_utils. Further, the latestdbt_fivetran_utilspackage also has a dependency ondbt_utils[">=0.8.0", "<0.9.0"].- Please note, if you are installing a version of
dbt_utilsin yourpackages.ymlthat is not in the range above then you will encounter a package dependency error.
- Please note, if you are installing a version of
- Added the
account_nameandaccount_idto thestg_snapchat_adsmodel. This will allow for the relevant Snapchat Ads account information to flow downstream into the finalad_reportingmodel. (#30)
- Cast the
account_idandexternal_account_idas strings within thestg_google_adsmodel.
Refer to the relevant release notes on the Github repository for specific details for the previous releases. Thank you!