From 4b8541b560cd79f3c212a995165e2af48b9d03e7 Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:45:04 -0500 Subject: [PATCH 01/10] test/custom-naming --- integration_tests/dbt_project.yml | 9 ++++++- .../seeds/ad_group_history_data.csv | 2 +- .../seeds/ad_group_level_report_data.csv | 2 +- .../staging/get_ad_group_history_columns.sql | 4 +++- .../get_ad_group_level_report_columns.sql | 4 +++- .../get_advertised_product_report_columns.sql | 4 +++- .../staging/get_campaign_history_columns.sql | 4 +++- .../get_campaign_level_report_columns.sql | 4 +++- .../staging/get_keyword_history_columns.sql | 4 +++- .../staging/get_portfolio_history_columns.sql | 4 +++- .../get_product_ad_history_columns.sql | 4 +++- macros/staging/get_profile_columns.sql | 4 +++- ..._search_term_ad_keyword_report_columns.sql | 4 +++- .../get_targeting_keyword_report_columns.sql | 4 +++- macros/staging/resolve_column_names.sql | 24 +++++++++++++++++++ 15 files changed, 67 insertions(+), 14 deletions(-) create mode 100644 macros/staging/resolve_column_names.sql diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 4b069ae..d41878f 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -7,7 +7,7 @@ profile: 'integration_tests' vars: amazon_ads: - amazon_ads_schema: amazon_ads_integration_tests_03 + amazon_ads_schema: zz_dbt_catherine # amazon_ads_integration_tests_03 amazon_ads_ad_group_history_identifier: "ad_group_history_data" amazon_ads_ad_group_level_report_identifier: "ad_group_level_report_data" amazon_ads_advertised_product_report_identifier: "advertised_product_report_data" @@ -19,6 +19,13 @@ vars: amazon_ads_keyword_history_identifier: "keyword_history_data" amazon_ads_targeting_keyword_report_identifier: "targeting_keyword_report_data" amazon_ads_search_term_ad_keyword_report_identifier: "search_term_ad_keyword_report_data" + using_custom_names: true + custom_column_names: + ad_group_history: + creation_date: creationDate + default_bid: defaultBid + ad_group_level_report: + campaign_bidding_strategy: campaignBiddingStrategy amazon_ads__campaign_passthrough_metrics: - name: sales_7_d diff --git a/integration_tests/seeds/ad_group_history_data.csv b/integration_tests/seeds/ad_group_history_data.csv index 7c241b1..2fa59be 100644 --- a/integration_tests/seeds/ad_group_history_data.csv +++ b/integration_tests/seeds/ad_group_history_data.csv @@ -1,3 +1,3 @@ -id,last_updated_date,_fivetran_synced,campaign_id,creation_date,default_bid,name,serving_status,state +id,last_updated_date,_fivetran_synced,campaign_id,creationDate,defaultBid,name,serving_status,state 421,2022-07-11 22:38:16.551000,2022-12-13 17:10:16.297000,2187,2022-07-11 22:38:16.551000,1.75,Red 7,CAMPAIGN_PAUSED,enabled 501,2022-11-09 14:37:05.332000,2022-12-13 17:11:08.594000,5555,2022-11-09 14:37:05.332000,1.45,All,AD_GROUP_STATUS_ENABLED,enabled \ No newline at end of file diff --git a/integration_tests/seeds/ad_group_level_report_data.csv b/integration_tests/seeds/ad_group_level_report_data.csv index 9b0c5bc..869819a 100644 --- a/integration_tests/seeds/ad_group_level_report_data.csv +++ b/integration_tests/seeds/ad_group_level_report_data.csv @@ -1,4 +1,4 @@ -ad_group_id,date,_fivetran_synced,campaign_bidding_strategy,clicks,cost,impressions +ad_group_id,date,_fivetran_synced,campaignBiddingStrategy,clicks,cost,impressions 501,2022-12-03,2022-12-13 11:35:56.905000,legacy,0,0.0,88 501,2022-12-04,2022-12-13 11:35:56.908000,legacy,0,0.0,111 501,2022-12-01,2022-12-13 11:35:56.899000,legacy,0,0.0,252 diff --git a/macros/staging/get_ad_group_history_columns.sql b/macros/staging/get_ad_group_history_columns.sql index 8d28004..4765c6f 100644 --- a/macros/staging/get_ad_group_history_columns.sql +++ b/macros/staging/get_ad_group_history_columns.sql @@ -1,6 +1,6 @@ {% macro get_ad_group_history_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "campaign_id", "datatype": dbt.type_int()}, {"name": "creation_date", "datatype": dbt.type_timestamp()}, {"name": "default_bid", "datatype": dbt.type_float()}, @@ -11,6 +11,8 @@ {"name": "state", "datatype": dbt.type_string()} ] %} +{% set columns = amazon_ads.resolve_column_names('ad_group_history', _fivetran_columns) %} + {{ return(columns) }} {% endmacro %} diff --git a/macros/staging/get_ad_group_level_report_columns.sql b/macros/staging/get_ad_group_level_report_columns.sql index 9c076a8..002de5a 100644 --- a/macros/staging/get_ad_group_level_report_columns.sql +++ b/macros/staging/get_ad_group_level_report_columns.sql @@ -1,6 +1,6 @@ {% macro get_ad_group_level_report_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "ad_group_id", "datatype": dbt.type_int()}, {"name": "campaign_bidding_strategy", "datatype": dbt.type_string()}, {"name": "clicks", "datatype": dbt.type_int()}, @@ -11,6 +11,8 @@ {"name": "sales_30_d", "datatype": dbt.type_float()} ] %} +{% set columns = amazon_ads.resolve_column_names('ad_group_level_report', _fivetran_columns) %} + {# Add backwards compatibility if conversion metrics were added via passthrough columns prior to them being brought in by default #} {{ amazon_ads_add_pass_through_columns(base_columns=columns, pass_through_fields=var('amazon_ads__ad_group_passthrough_metrics'), except_fields=['purchases_30_d', 'sales_30_d']) }} diff --git a/macros/staging/get_advertised_product_report_columns.sql b/macros/staging/get_advertised_product_report_columns.sql index 7447056..5d10266 100644 --- a/macros/staging/get_advertised_product_report_columns.sql +++ b/macros/staging/get_advertised_product_report_columns.sql @@ -1,6 +1,6 @@ {% macro get_advertised_product_report_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "ad_group_id", "datatype": dbt.type_int()}, {"name": "ad_id", "datatype": dbt.type_int()}, {"name": "advertised_asin", "datatype": dbt.type_string()}, @@ -17,6 +17,8 @@ {"name": "sales_30_d", "datatype": dbt.type_float()} ] %} +{% set columns = amazon_ads.resolve_column_names('advertised_product_report', _fivetran_columns) %} + {# Add backwards compatibility if conversion metrics were added via passthrough columns prior to them being brought in by default #} {{ amazon_ads_add_pass_through_columns(base_columns=columns, pass_through_fields=var('amazon_ads__advertised_product_passthrough_metrics'), except_fields=['purchases_30_d', 'sales_30_d']) }} diff --git a/macros/staging/get_campaign_history_columns.sql b/macros/staging/get_campaign_history_columns.sql index 52215ab..bf52757 100644 --- a/macros/staging/get_campaign_history_columns.sql +++ b/macros/staging/get_campaign_history_columns.sql @@ -1,6 +1,6 @@ {% macro get_campaign_history_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "bidding_strategy", "datatype": dbt.type_string()}, {"name": "creation_date", "datatype": dbt.type_timestamp()}, {"name": "end_date", "datatype": "date"}, @@ -18,6 +18,8 @@ {"name": "effective_budget", "datatype": dbt.type_float()} ] %} +{% set columns = amazon_ads.resolve_column_names('campaign_history', _fivetran_columns) %} + {{ return(columns) }} {% endmacro %} diff --git a/macros/staging/get_campaign_level_report_columns.sql b/macros/staging/get_campaign_level_report_columns.sql index 977e9d3..fd7d478 100644 --- a/macros/staging/get_campaign_level_report_columns.sql +++ b/macros/staging/get_campaign_level_report_columns.sql @@ -1,6 +1,6 @@ {% macro get_campaign_level_report_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "campaign_applicable_budget_rule_id", "datatype": dbt.type_string()}, {"name": "campaign_applicable_budget_rule_name", "datatype": dbt.type_string()}, {"name": "campaign_bidding_strategy", "datatype": dbt.type_string()}, @@ -17,6 +17,8 @@ {"name": "sales_30_d", "datatype": dbt.type_float()} ] %} +{% set columns = amazon_ads.resolve_column_names('campaign_level_report', _fivetran_columns) %} + {# Add backwards compatibility if conversion metrics were added via passthrough columns prior to them being brought in by default #} {{ amazon_ads_add_pass_through_columns(base_columns=columns, pass_through_fields=var('amazon_ads__campaign_passthrough_metrics'), except_fields=['purchases_30_d', 'sales_30_d']) }} diff --git a/macros/staging/get_keyword_history_columns.sql b/macros/staging/get_keyword_history_columns.sql index dc32c8f..5a0f179 100644 --- a/macros/staging/get_keyword_history_columns.sql +++ b/macros/staging/get_keyword_history_columns.sql @@ -1,6 +1,6 @@ {% macro get_keyword_history_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "ad_group_id", "datatype": dbt.type_int()}, {"name": "bid", "datatype": dbt.type_float()}, {"name": "campaign_id", "datatype": dbt.type_int()}, @@ -15,6 +15,8 @@ {"name": "native_language_locale", "datatype": dbt.type_string()} ] %} +{% set columns = amazon_ads.resolve_column_names('keyword_history', _fivetran_columns) %} + {{ return(columns) }} {% endmacro %} diff --git a/macros/staging/get_portfolio_history_columns.sql b/macros/staging/get_portfolio_history_columns.sql index bac28e5..046ef71 100644 --- a/macros/staging/get_portfolio_history_columns.sql +++ b/macros/staging/get_portfolio_history_columns.sql @@ -1,6 +1,6 @@ {% macro get_portfolio_history_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "budget_amount", "datatype": dbt.type_float()}, {"name": "budget_currency_code", "datatype": dbt.type_string()}, {"name": "budget_end_date", "datatype": "date"}, @@ -16,6 +16,8 @@ {"name": "state", "datatype": dbt.type_string()} ] %} +{% set columns = amazon_ads.resolve_column_names('portfolio_history', _fivetran_columns) %} + {{ return(columns) }} {% endmacro %} diff --git a/macros/staging/get_product_ad_history_columns.sql b/macros/staging/get_product_ad_history_columns.sql index 36b5c99..ba735e2 100644 --- a/macros/staging/get_product_ad_history_columns.sql +++ b/macros/staging/get_product_ad_history_columns.sql @@ -1,6 +1,6 @@ {% macro get_product_ad_history_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "ad_group_id", "datatype": dbt.type_int()}, {"name": "asin", "datatype": dbt.type_string()}, {"name": "campaign_id", "datatype": dbt.type_int()}, @@ -12,6 +12,8 @@ {"name": "state", "datatype": dbt.type_string()} ] %} +{% set columns = amazon_ads.resolve_column_names('product_ad_history', _fivetran_columns) %} + {{ return(columns) }} {% endmacro %} diff --git a/macros/staging/get_profile_columns.sql b/macros/staging/get_profile_columns.sql index 6670012..364c6ab 100644 --- a/macros/staging/get_profile_columns.sql +++ b/macros/staging/get_profile_columns.sql @@ -1,6 +1,6 @@ {% macro get_profile_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "id", "datatype": dbt.type_int()}, {"name": "account_id", "datatype": dbt.type_string()}, {"name": "account_marketplace_string_id", "datatype": dbt.type_string()}, @@ -15,6 +15,8 @@ {"name": "_fivetran_deleted", "datatype": dbt.type_boolean()} ] %} +{% set columns = amazon_ads.resolve_column_names('profile', _fivetran_columns) %} + {{ return(columns) }} {% endmacro %} \ No newline at end of file diff --git a/macros/staging/get_search_term_ad_keyword_report_columns.sql b/macros/staging/get_search_term_ad_keyword_report_columns.sql index 35900c4..f96458c 100644 --- a/macros/staging/get_search_term_ad_keyword_report_columns.sql +++ b/macros/staging/get_search_term_ad_keyword_report_columns.sql @@ -1,6 +1,6 @@ {% macro get_search_term_ad_keyword_report_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "ad_group_id", "datatype": dbt.type_int()}, {"name": "ad_keyword_status", "datatype": dbt.type_string()}, {"name": "campaign_budget_amount", "datatype": dbt.type_float()}, @@ -19,6 +19,8 @@ {"name": "sales_30_d", "datatype": dbt.type_float()} ] %} +{% set columns = amazon_ads.resolve_column_names('search_term_ad_keyword_report', _fivetran_columns) %} + {# Add backwards compatibility if conversion metrics were added via passthrough columns prior to them being brought in by default #} {{ amazon_ads_add_pass_through_columns(base_columns=columns, pass_through_fields=var('amazon_ads__search_term_ad_keyword_passthrough_metrics'), except_fields=['purchases_30_d', 'sales_30_d']) }} diff --git a/macros/staging/get_targeting_keyword_report_columns.sql b/macros/staging/get_targeting_keyword_report_columns.sql index 24b557a..31ac3ca 100644 --- a/macros/staging/get_targeting_keyword_report_columns.sql +++ b/macros/staging/get_targeting_keyword_report_columns.sql @@ -1,6 +1,6 @@ {% macro get_targeting_keyword_report_columns() %} -{% set columns = [ +{% set _fivetran_columns = [ {"name": "ad_group_id", "datatype": dbt.type_int()}, {"name": "ad_keyword_status", "datatype": dbt.type_string()}, {"name": "campaign_budget_amount", "datatype": dbt.type_float()}, @@ -20,6 +20,8 @@ {"name": "sales_30_d", "datatype": dbt.type_float()} ] %} +{% set columns = amazon_ads.resolve_column_names('targeting_keyword_report', _fivetran_columns) %} + {# Add backwards compatibility if conversion metrics were added via passthrough columns prior to them being brought in by default #} {{ amazon_ads_add_pass_through_columns(base_columns=columns, pass_through_fields=var('amazon_ads__targeting_keyword_passthrough_metrics'), except_fields=['purchases_30_d', 'sales_30_d']) }} diff --git a/macros/staging/resolve_column_names.sql b/macros/staging/resolve_column_names.sql new file mode 100644 index 0000000..132abfc --- /dev/null +++ b/macros/staging/resolve_column_names.sql @@ -0,0 +1,24 @@ +{% macro resolve_column_names(_fivetran_table_name, _fivetran_columns) %} + {{ return(adapter.dispatch('resolve_column_names', 'amazon_ads')(_fivetran_table_name, _fivetran_columns)) }} +{% endmacro %} + +{% macro default__resolve_column_names(_fivetran_table_name, _fivetran_columns) %} + +{% set resolved_column_names = _fivetran_columns %} + +{% if var('using_custom_names', false) %} + {% set resolved_column_names = [] %} + {% set custom_column_names = var('custom_column_names', {}) %} + + {% for column in _fivetran_columns %} + {% set column_name = column.name %} + {# Use the custom name if it exists, otherwise use the original column name #} + {% set resolved_name = custom_column_names.get(_fivetran_table_name, {}).get(column_name, column_name) %} + {% set updated_column = dict(column, name=resolved_name, alias=column_name) %} + {% do resolved_column_names.append(updated_column) %} + {% endfor %} +{% endif %} + +{{ return(resolved_column_names) }} + +{% endmacro %} \ No newline at end of file From 5ec6afdf62f6663b02b93c9f273047e014c1d639 Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:46:33 -0500 Subject: [PATCH 02/10] yml --- integration_tests/dbt_project.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index d41878f..817424d 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -7,7 +7,7 @@ profile: 'integration_tests' vars: amazon_ads: - amazon_ads_schema: zz_dbt_catherine # amazon_ads_integration_tests_03 + amazon_ads_schema: amazon_ads_integration_tests_03 amazon_ads_ad_group_history_identifier: "ad_group_history_data" amazon_ads_ad_group_level_report_identifier: "ad_group_level_report_data" amazon_ads_advertised_product_report_identifier: "advertised_product_report_data" From 884a78530d53d055a24b093d06dc5bef04c8f24f Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:47:40 -0500 Subject: [PATCH 03/10] pre-exit --- .buildkite/hooks/pre-exit | 1 + 1 file changed, 1 insertion(+) create mode 100644 .buildkite/hooks/pre-exit diff --git a/.buildkite/hooks/pre-exit b/.buildkite/hooks/pre-exit new file mode 100644 index 0000000..bd49d0f --- /dev/null +++ b/.buildkite/hooks/pre-exit @@ -0,0 +1 @@ +dbt run-operation fivetran_utils.drop_schemas_automation --target "$db" \ No newline at end of file From bda1cff16530fa882e967ca6228d56e8b9117924 Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 15:51:14 -0500 Subject: [PATCH 04/10] pre-exit --- .buildkite/hooks/pre-exit | 15 ++++++++++++++- .buildkite/scripts/run_models.sh | 4 +--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.buildkite/hooks/pre-exit b/.buildkite/hooks/pre-exit index bd49d0f..23fe2a9 100644 --- a/.buildkite/hooks/pre-exit +++ b/.buildkite/hooks/pre-exit @@ -1 +1,14 @@ -dbt run-operation fivetran_utils.drop_schemas_automation --target "$db" \ No newline at end of file +#!/bin/bash + +# Pre-exit hook - runs when Buildkite job is about to exit (success, failure, or cancellation) + +set -euo pipefail + +echo "Running schema cleanup..." + +# Drop test schemas to avoid leaving behind temporary databases +if [ -n "${db:-}" ]; then + dbt run-operation fivetran_utils.drop_schemas_automation --target "$db" || echo "Schema cleanup failed, continuing..." +fi + +echo "Schema cleanup completed" \ No newline at end of file diff --git a/.buildkite/scripts/run_models.sh b/.buildkite/scripts/run_models.sh index fb75f9b..2b9b793 100644 --- a/.buildkite/scripts/run_models.sh +++ b/.buildkite/scripts/run_models.sh @@ -20,6 +20,4 @@ dbt seed --target "$db" --full-refresh dbt run --target "$db" --full-refresh dbt test --target "$db" dbt run --vars '{amazon_ads__portfolio_history_enabled: false}' --target "$db" --full-refresh -dbt test --vars '{amazon_ads__portfolio_history_enabled: false}' --target "$db" - -dbt run-operation fivetran_utils.drop_schemas_automation --target "$db" +dbt test --vars '{amazon_ads__portfolio_history_enabled: false}' --target "$db" \ No newline at end of file From a87200d94ddd70f3115c69a1b543969a956d0471 Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 16:01:53 -0500 Subject: [PATCH 05/10] undo pre-exit --- .buildkite/hooks/pre-exit | 14 -------------- .buildkite/scripts/run_models.sh | 4 +++- 2 files changed, 3 insertions(+), 15 deletions(-) delete mode 100644 .buildkite/hooks/pre-exit diff --git a/.buildkite/hooks/pre-exit b/.buildkite/hooks/pre-exit deleted file mode 100644 index 23fe2a9..0000000 --- a/.buildkite/hooks/pre-exit +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -# Pre-exit hook - runs when Buildkite job is about to exit (success, failure, or cancellation) - -set -euo pipefail - -echo "Running schema cleanup..." - -# Drop test schemas to avoid leaving behind temporary databases -if [ -n "${db:-}" ]; then - dbt run-operation fivetran_utils.drop_schemas_automation --target "$db" || echo "Schema cleanup failed, continuing..." -fi - -echo "Schema cleanup completed" \ No newline at end of file diff --git a/.buildkite/scripts/run_models.sh b/.buildkite/scripts/run_models.sh index 2b9b793..61992d7 100644 --- a/.buildkite/scripts/run_models.sh +++ b/.buildkite/scripts/run_models.sh @@ -20,4 +20,6 @@ dbt seed --target "$db" --full-refresh dbt run --target "$db" --full-refresh dbt test --target "$db" dbt run --vars '{amazon_ads__portfolio_history_enabled: false}' --target "$db" --full-refresh -dbt test --vars '{amazon_ads__portfolio_history_enabled: false}' --target "$db" \ No newline at end of file +dbt test --vars '{amazon_ads__portfolio_history_enabled: false}' --target "$db" + +dbt run-operation fivetran_utils.drop_schemas_automation --target "$db" \ No newline at end of file From 2c0819c91d95e11ef958683063b8a50a726afba1 Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 17:05:07 -0500 Subject: [PATCH 06/10] revise var names --- integration_tests/dbt_project.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 817424d..735b949 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -19,9 +19,9 @@ vars: amazon_ads_keyword_history_identifier: "keyword_history_data" amazon_ads_targeting_keyword_report_identifier: "targeting_keyword_report_data" amazon_ads_search_term_ad_keyword_report_identifier: "search_term_ad_keyword_report_data" - using_custom_names: true - custom_column_names: - ad_group_history: + amazon_ads_using_custom_names: true + amazon_ads_custom_column_names: + amazon_ads_custom_column_names: creation_date: creationDate default_bid: defaultBid ad_group_level_report: From 4b7aa1997fe6637639a9331903377dd309321c25 Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 17:06:22 -0500 Subject: [PATCH 07/10] revise var names --- integration_tests/dbt_project.yml | 2 +- macros/staging/resolve_column_names.sql | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 735b949..797f52c 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -21,7 +21,7 @@ vars: amazon_ads_search_term_ad_keyword_report_identifier: "search_term_ad_keyword_report_data" amazon_ads_using_custom_names: true amazon_ads_custom_column_names: - amazon_ads_custom_column_names: + ad_group_history: creation_date: creationDate default_bid: defaultBid ad_group_level_report: diff --git a/macros/staging/resolve_column_names.sql b/macros/staging/resolve_column_names.sql index 132abfc..0a627f5 100644 --- a/macros/staging/resolve_column_names.sql +++ b/macros/staging/resolve_column_names.sql @@ -6,9 +6,9 @@ {% set resolved_column_names = _fivetran_columns %} -{% if var('using_custom_names', false) %} +{% if var('amazon_ads_using_custom_names', false) %} {% set resolved_column_names = [] %} - {% set custom_column_names = var('custom_column_names', {}) %} + {% set custom_column_names = var('amazon_ads_custom_column_names', {}) %} {% for column in _fivetran_columns %} {% set column_name = column.name %} From 9fe483f2afa09feced68e040c8e42d7608f22b88 Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 17:10:09 -0500 Subject: [PATCH 08/10] revise var names --- macros/staging/resolve_column_names.sql | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/macros/staging/resolve_column_names.sql b/macros/staging/resolve_column_names.sql index 0a627f5..6b84722 100644 --- a/macros/staging/resolve_column_names.sql +++ b/macros/staging/resolve_column_names.sql @@ -4,11 +4,12 @@ {% macro default__resolve_column_names(_fivetran_table_name, _fivetran_columns) %} +{% set package_name = 'amazon_ads' %} {% set resolved_column_names = _fivetran_columns %} -{% if var('amazon_ads_using_custom_names', false) %} +{% if var(package_name ~ '_using_custom_names', false) %} {% set resolved_column_names = [] %} - {% set custom_column_names = var('amazon_ads_custom_column_names', {}) %} + {% set custom_column_names = var(package_name ~ '_custom_column_names', {}) %} {% for column in _fivetran_columns %} {% set column_name = column.name %} From fd0b474bec1951786d67809b58594a8e7c8ab38a Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 17:36:25 -0500 Subject: [PATCH 09/10] revise macro --- macros/staging/resolve_column_names.sql | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/macros/staging/resolve_column_names.sql b/macros/staging/resolve_column_names.sql index 6b84722..e48083b 100644 --- a/macros/staging/resolve_column_names.sql +++ b/macros/staging/resolve_column_names.sql @@ -1,11 +1,8 @@ -{% macro resolve_column_names(_fivetran_table_name, _fivetran_columns) %} - {{ return(adapter.dispatch('resolve_column_names', 'amazon_ads')(_fivetran_table_name, _fivetran_columns)) }} +{% macro resolve_column_names(_fivetran_table_name, _fivetran_columns, package_name='amazon_ads') %} + {{ return(adapter.dispatch('resolve_column_names', 'amazon_ads')(_fivetran_table_name, _fivetran_columns, package_name)) }} {% endmacro %} -{% macro default__resolve_column_names(_fivetran_table_name, _fivetran_columns) %} - -{% set package_name = 'amazon_ads' %} -{% set resolved_column_names = _fivetran_columns %} +{% macro default__resolve_column_names(_fivetran_table_name, _fivetran_columns, package_name) %} {% if var(package_name ~ '_using_custom_names', false) %} {% set resolved_column_names = [] %} From 012f58ef0c2c81813e8a8ed74790dac0b9001d9b Mon Sep 17 00:00:00 2001 From: Catherine Fritz <111930712+fivetran-catfritz@users.noreply.github.com> Date: Thu, 12 Mar 2026 17:36:55 -0500 Subject: [PATCH 10/10] revise macro --- integration_tests/dbt_project.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/integration_tests/dbt_project.yml b/integration_tests/dbt_project.yml index 797f52c..74cd061 100644 --- a/integration_tests/dbt_project.yml +++ b/integration_tests/dbt_project.yml @@ -20,6 +20,7 @@ vars: amazon_ads_targeting_keyword_report_identifier: "targeting_keyword_report_data" amazon_ads_search_term_ad_keyword_report_identifier: "search_term_ad_keyword_report_data" amazon_ads_using_custom_names: true + amazon_ads_custom_column_names: ad_group_history: creation_date: creationDate