Releases: fivetran/dbt_linkedin_source
v0.12.0 dbt_linkedin_source
PR #75 includes the following updates:
Breaking Change for dbt Core < 1.9.6
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 `linkedin_ads` in file
`models/src_linkedin.yml`. The `freshness` top-level property should be moved
into the `config` of `linkedin_ads`.
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 Linkedin Ads freshness tests, please elect one of the following options:
- (Recommended) Upgrade to dbt Core >= 1.9.6
- Do not upgrade your installed version of the
linkedin_sourcepackage. Pin your dependency on v0.11.0 in yourpackages.ymlfile. - Utilize a dbt override to overwrite the package's
linkedin_adssource and apply freshness via the old top-level property route. This will require you to copy and paste the entirety of thesrc_linkedin.ymlfile and add anoverrides: linkedin_sourceproperty.
Under the Hood
- Updated the package maintainer PR template.
Full Changelog: v0.11.0...v0.12.0
v0.11.0 dbt_linkedin_source
PR #74 includes the following updates:
Schema Changes
6 total changes • 0 possible breaking changes
| Data Model | Change Type | Old Name | New Name | Notes |
|---|---|---|---|---|
| stg_linkedin_ads__geo_tmp | New temp 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 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 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. |
Feature Updates
- Added the
geo,monthly_ad_analytics_by_member_countryandmonthly_ad_analytics_by_member_regionsource tables and downstream staging models. See above for schema change details and new models added.- For dbt Core users: If you do not sync these tables or would like disable these new models you can disable the models by setting the any of the
linkedin_ads__using_geo,linkedin_ads__using_monthly_ad_analytics_by_member_country, orlinkedin_ads__using_monthly_ad_analytics_by_member_regionvariables tofalsein yourdbt_project.ymlfile (trueby default). Refer to the README for more details.
- For dbt Core users: If you do not sync these tables or would like disable these new models you can disable the models by setting the any of the
- Included the
linkedin_ads__monthly_ad_analytics_by_member_country_passthrough_metricsandlinkedin_ads__monthly_ad_analytics_by_member_region_passthrough_metricspassthrough variables in the above mentioned new staging models. Refer to the README for more details.
Under the Hood
- Introduced the
date_from_month_stringmacro to help convert thedate_monthfield within thestg_linkedin_ads__monthly_ad_analytics_by_regionandstg_linkedin_ads__monthly_ad_analytics_by_countymodels to be an appropriate date field as opposed to a string.
Documentation
- Corrected references to connectors and connections in the README. (#73)
Full Changelog: v0.10.0...v0.11.0
v0.10.0 dbt_linkedin_source
PR #69 includes the following updates:
Breaking Changes
- The
click_uri_typefield has been added to thestg_linkedin_ads__creative_historymodel. This field allows users to differentiate which click uri type (text_adorspotlight) is being used to populate the results of theclick_urifield.- Please be aware this field only supports
text_adorspotlightclick uri types. If you are interested in this package supporting more click uri ad types, please let us know in this Feature Request.
- Please be aware this field only supports
Bug Fixes
- The
click_urifield has been adjusted to populate the results following a coalesce on thetext_ad_landing_page,spotlight_landing_page, orclick_urifields.- This change is in response to a LinkedIn Ads API and Fivetran LinkedIn Ads connector update which moved
click_uridata to either thetext_ad_landing_pageorspotlight_landing_pagefields depending on the creative type.
- This change is in response to a LinkedIn Ads API and Fivetran LinkedIn Ads connector update which moved
- Updated the
is_latest_versionwindow function in the following models to exclude thesource_relationfield from the partition statement whenlinkedin_ads_union_schemasorlinkedin_ads_union_databasesvariables are empty in the following models:stg_linkedin_ads__account_historystg_linkedin_ads__campaign_group_historystg_linkedin_ads__campaign_historystg_linkedin_ads__creative_history
- In addition to the above, the
is_latest_versionwindow function within thestg_linkedin_ads__creative_historymodel has been moved to the final cte to avoid possible constant expression errors within Redshift destinations.
Under the Hood
- Updates to the
linkedin_creative_history_dataseed file to include the following new fields to ensure accurate data validation tests:text_ad_landing_pagespotlight_landing_page
Documentation Updates
- Added
click_uri_typefield documentation. - The
click_urifield documentation has been updated to reflect the updated state of the field.
Full Changelog: v0.9.0...v0.10.0
v0.9.0 dbt_linkedin_source
PR #67 includes the following updates:
🚨 Breaking Changes 🚨
Feature Updates: Conversion Support!
We have added more robust support for conversions in our data models by doing the following:
- Created a
linkedin_ads__conversion_fieldsvariable to pass through additional conversion metrics in thestg_linkedin_ads__ad_analytics_by_campaignandstg_linkedin_ads__ad_analytics_by_creativemodels.- Set variable defaults in the
dbt_project.ymlto bring in the most used conversion fieldsexternal_website_conversionsandone_click_leads.
- Set variable defaults in the
- Ensured backwards compatibility with existing passthrough column variables in these models by creating macro checks for whether these fields already are brought in by the existing passthrough variables. This ensures there are no duplicate column errors if both the new conversion variable and the old passthrough variable are leveraged in either
stg_linkedin_ads__ad_analytics_by_*data model. - Brought in the
conversion_value_in_local_currencyfield to the above mentionedstg_linkedin_ads__ad_analytics_by_*models.
The above new field additions are 🚨 breaking changes 🚨 for users who were not already bringing in conversion fields via passthrough columns.
Documentation Update
- Documents the ability to transform metrics provided to the
linkedin_ads__campaign_passthrough_metricsandlinkedin_ads__creative_passthrough_metricsvariables in the README. - Added new metrics to
srcandstgyml files.
Under the Hood
- Updated
linkedin_ad_analytics_by_creative_dataseed file with relevant conversion fields for more robust testing.
Contributors
Full Changelog: v0.8.2...v0.9.0
v0.8.2 dbt_linkedin_source
PR #66 includes the following updates:
Bug Fixes
- Adjusted the logic for determining the values of the
is_latest_version,last_modified_at,status, andcreated_atfields in thestg_linkedin_ads__creative_historymodel for pre-January 2023 Fivetran connectors.- This ensures proper handling of retroactively filled
last_modified_atvalues and maintains consistency in theCOALESCEordering for thestatusandcreated_atfields. - See the January 2023 Fivetran connector release notes for more information.
- This ensures proper handling of retroactively filled
Full Changelog: v0.8.1...v0.8.2
v0.8.1 dbt_linkedin_source
PR #64 includes the following updates:
Bug Fixes
- This package now leverages the new
linkedin_ads_extract_url_parameter()macro for use in parsing out url parameters. This was added to create special logic for Databricks instances not supported bydbt_utils.get_url_parameter().- This macro will be replaced with the
fivetran_utils.extract_url_parameter()macro in the next breaking change of this package.
- This macro will be replaced with the
Under the Hood
- Included auto-releaser GitHub Actions workflow to automate future releases.
Full Changelog: v0.8.0...v0.8.1
v0.8.0 dbt_linkedin_source
PR #54 includes the following updates:
Breaking changes
- Updated materializations of 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 this package from
linkedintolinkedin_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 the following identifiers for consistency with the source name and compatibility with the union schema feature:
| current | previous |
|---|---|
| linkedin_ads_account_history_identifier | linkedin_account_history_identifier |
| linkedin_ads_ad_analytics_by_creative_identifier | linkedin_ad_analytics_by_creative_identifier |
| linkedin_ads_campaign_group_history_identifier | linkedin_campaign_group_history_identifier |
| linkedin_ads_campaign_history_identifier | linkedin_campaign_history_identifier |
| linkedin_ads_creative_history_identifier | linkedin_creative_history_identifier |
| linkedin_ads_ad_analytics_by_campaign_identifier | linkedin_ad_analytics_by_campaign_identifier |
- If you are using the previous identifier, be sure to update to the current version!
Feature update 🎉
- Unioning capability! This adds the ability to union source data from multiple linkedin connectors. Refer to the Union Multiple Connectors README section for more details.
Under the hood 🚘
- Updated tmp models to union source data using the
fivetran_utils.union_datamacro. - To distinguish which source each field comes from, added
source_relationcolumn in each staging model and applied thefivetran_utils.source_relationmacro. - Updated tests to account for the new
source_relationcolumn.
PR #51 includes the following updates:
- Incorporated the new
fivetran_utils.drop_schemas_automationmacro into the end of each Buildkite integration test job. - Updated the pull request templates.
Full Changelog: v0.7.0...v0.8.0
v0.7.0 dbt_linkedin_source
🚨 Breaking Changes 🚨
Due to Linkedin Ads API change in January 2023, there have been updates in the Linkedin Ads Fivetran Connector and therefore, updates to this Linkedin package.
The following fields have been completely deprecated in the stg_linkedin_ads__creative_history model (PR #48):
typecall_to_action_label_typeversion_tag
Updates
PR #48 includes the below modifications:
- The following legacy fields have been updated respectively in the connector:
last_modified_timehas been updated tolast_modified_atcreated_timehas been updated tocreated_atstatushas been updated tointended_status
src_linkedin.ymlhave been updated to reflect new definitions for the above updated fields.- Removing unique column testing from
stg_linkedin__creative_historyas a result of the recent API version update that impacted theCREATIVE_HISTORYtable. We were recently made aware of an edge case that results in duplicate records for a givenCreative IDdue to a primary key change (last_modified_timetolast_modified_at). Duplicate data will appear if a creative was deleted from the LinkedIn Ads platform during the API update process -- the likelihood of this happening is small and it would only impact deleted creatives.
Under the Hood
integration_tests/seeds/linkedin_creative_history_datahas been updated to reflect new fields and deprecated fields_fivetran_syncedfield removed from seed data forlinkedin_ad_analytics_by_campaign_dataintegration testing as it is not used in this package's models
dbt_linkedin_source v0.6.0
🚨 Breaking Changes 🚨:
PR #47 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
packages.ymlhas been updated to reflect new defaultfivetran/fivetran_utilsversion, previously[">=0.3.0", "<0.4.0"]now[">=0.4.0", "<0.5.0"].
dbt_linkedin_source 0.5.0
PR #46 includes the following changes:
🚨 Breaking Changes 🚨
- ALL staging models and ALL variables now have the prefix
linkedin_ads_*. They previously were prepended withlinkedin_*. This includes the required schema and database variables. We made this change to better discern between Linkedin Ads and Linkedin Pages. - Staging models are now by default written within a schema titled (
<target_schema>+_linkedin_ads_source) in your destination. Previously, this was titled (<target_schema>+_stg_linkedin). - The declaration of passthrough variables within your root
dbt_project.ymlhas changed. To allow for more flexibility and better tracking of passthrough columns, you will now want to define passthrough columns in the following format:
vars:
linkedin_ads__creative_passthrough_metrics: # NOTE that this used to be called linkedin__passthrough_metrics
- name: "my_field_to_include" # Required: Name of the field within the source.
alias: "field_alias" # Optional: If you wish to alias the field within the staging model.
linkedin_ads__campaign_passthrough_metrics: # This will pull from `ad_analytics_by_campaign`
- name: "my_field_to_include"
alias: "field_alias"🎉 Feature Enhancements 🎉
- Addition of the
stg_linkedin_ads__ad_analytics_by_campaignmodel. This is to generate a more accurate representation of Linkedin Ad Analytics data at the campaign level. - README updates for easier navigation and use of the package.
- Addition of identifier variables for each of the source tables to allow for further flexibility in source table direction within the dbt project.
- Additional columns included in
_historystaging models.