PR #122 introduces the following BREAKING CHANGES:
- Added
conversions
andconversions_value
fields to each Ad Reporting end model.- BREAKING: In the event that you were already including conversions through passthrough variables and called your field(s)
conversions
and/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 asconversions
andconversions_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_ads
andlinkedin_ads
dependencies 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_reporting
models 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_ads
dependency 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_id
test inad_reporting__account_report
towarn
. 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-
tmp
staging 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_source
fromlinkedin
tolinkedin_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_report
in 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.yml
semantic model which is required to define metrics. - Included
metricflow_time_spine.sql
which is required by Metricflow. This will be deprecated in future releases. If you have already created ametricflow_time_spine.sql
model in your project, you will need to disable it for this package by setting the variablead_reporting__metricflow_time_spine_enabled
tofalse
in your project.
## root dbt_project.yml
vars:
ad_reporting__metricflow_time_spine_enabled: false ## true by default
- Added a new variable
dbt_date:time_zone
which is used by thedbt_date.get_base_dates
macro within themetricflow_time_spine
model. This variable is nested under thead_reporting
hierarchy in the variables config and should not affect any global declarations if you leverage thedbt_date
package 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_report
for passthrough metrics. (PR #96)
- Added
ad_reporting__<report>_passthrough_metrics
variables to easily add common metrics across all platforms into thead_reporting
models! This allows metrics other than the standardclicks
,impressions
, andcost
to 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_automation
macro 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
README
package 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_report
ad_reporting__campaign_report
ad_reporting__ad_group_report
ad_reporting__ad_report
ad_reporting__url_report
Note: If you are NOT using Reddit Ads, add the below variable to your
dbt_project.yml
to disable the Reddit Ads models.
vars:
ad_reporting__reddit_ads_enabled: False ## True by default
- Updating
ad_reporting_metrics.yml
to be up to date with dbt Metrics documentation (PR #82)
- Enabling additional Snapchat Ads columns in
ad_reporting__url_report
that 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: expression
forcalculation_method: derived
for 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_report
ad_reporting__campaign_report
ad_reporting__ad_group_report
ad_reporting__ad_report
ad_reporting__search_report
ad_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.yml
to disable the Amazon Ads models.
vars:
ad_reporting__amazon_ads_enabled: False ## True by default
PR #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_value
bool_or
cast_bool_to_text
concat
date_trunc
dateadd
datediff
escape_single_quotes
except
hash
intersect
last_day
length
listagg
position
replace
right
safe_cast
split_part
string_literal
type_bigint
type_float
type_int
type_numeric
type_string
type_timestamp
array_append
array_concat
array_construct
- For
current_timestamp
andcurrent_timestamp_in_utc
macros, the dispatch AND the macro names have been updated to the below, respectively:dbt.current_timestamp_backcompat
dbt.current_timestamp_in_utc_backcompat
dbt_utils.surrogate_key
has also been updated todbt_utils.generate_surrogate_key
. Since the method for creating surrogate keys differ, we suggest all users do afull-refresh
for the most accurate data. For more information, please refer to dbt-utils release notes for this update.- Dependencies on
fivetran/fivetran_utils
have 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
->expression
andtype
->calculation_method
- Added ability for a user to allow records having nulls in url fields to be included in the
ad_reporting__url_report
and the underlying*url_report
models. This is done by setting the below variable toFalse
in yourdbt_project.yml
file. (#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_null
test forad_reporting__url_report
when null urls are allowed. (#72) - Updated this package's
integration_tests/seeds/microsoft_ads_campaign_performance_daily_report_data
in light of PR #23 ondbt_microsoft_ads_source
.(#68)
- The
keyword_id
field (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_report
model for the Twitter Ads platform. (#71)
- The
not_null
test on thead_reporting__keyword_report
has been adjusted to be tested on thekeyword_id
as 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_keywords
to 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_schema
has been properly updated to reflectlinkedin_ads_schema
linkedin_database
has been updated to reflectlinkedin_ads_database
.
PR #54 incorporates these breaking changes:
- The previous
ad_reporting
model has been renamed toad_reporting__url_report
and will only include records that have non-null url values for more information on specific filters please refer to each platform package'surl_report
model.
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_report
model update, we have added five new models:ad_reporting__account_report
ad_reporting__campaign_report
ad_reporting__ad_group_report
ad_reporting__ad_report
ad_reporting__keyword_search_report
- This package now leverages
ad_reporting__<platform>_enabled
variables 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.yml
within themacros
directory that provides details for each macro.
- The
api_source
variable for the Google Ads package is now defaulted togoogle_ads
as 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
adwords
version of this package will be fully removed from the package in August of 2022. This means, models undermodels/adwords_connector
will be removed in favor ofmodels/google_ads_connector
models.
- Please note, the
- The
ad_reporting
final model is now materialized in a schema<target_schema>_ad_reporting
by 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_ads
package (v0.6.0). This version of the package incorporates new and modified tables within theGoogle Ads API
version 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_reporting
model. (#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-version
to 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_utils
package also has a dependency ondbt_utils
[">=0.8.0", "<0.9.0"].- Please note, if you are installing a version of
dbt_utils
in yourpackages.yml
that 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_name
andaccount_id
to thestg_snapchat_ads
model. This will allow for the relevant Snapchat Ads account information to flow downstream into the finalad_reporting
model. (#30)
- Cast the
account_id
andexternal_account_id
as strings within thestg_google_ads
model.
Refer to the relevant release notes on the Github repository for specific details for the previous releases. Thank you!