Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .buildkite/scripts/run_models.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ dbt deps
dbt seed --target "$db" --full-refresh
dbt run --target "$db" --full-refresh
dbt test --target "$db"
dbt run --target "$db" --vars '{reddit_ads__using_campaign_country_report: false}' --full-refresh
dbt run --target "$db" --vars '{reddit_ads__using_campaign_country_report: false, reddit_ads__using_business_account: false}' --full-refresh
dbt test --target "$db"
dbt run --target "$db" --vars '{reddit_ads__using_campaign_country_conversions_report: false}' --full-refresh
dbt test --target "$db"
Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
# dbt_reddit_ads_source v0.6.0
[PR #14](https://github.com/fivetran/dbt_reddit_ads_source/pull/14) includes the following updates:

## Breaking Change
- To align with the [Fivetran Reddit Ads Connector schema](https://fivetran.com/docs/connectors/applications/reddit-ads#schemainformation), updated the source referenced by `stg_reddit_ads__account_tmp` from `ACCOUNT` to `BUSINESS_ACCOUNT`.
- Added the `reddit_ads__using_business_account` variable to control which source is used.
- For Quickstart users, this variable is set automatically.
- For dbt Core users, this variable is `true` by default, but you can set the variable to `false` in your `dbt_project.yml` to fall back to using `ACCOUNT` instead of `BUSINESS_ACCOUNT`.

## Documentation
- Added documentation for `BUSINESS_ACCOUNT`.

## Under the Hood
- Added seed file `reddit_ads_business_account_data`.
- Updated the seed column types in `integration_tests/dbt_project.yml`.

# dbt_reddit_ads_source v0.5.0

[PR #13](https://github.com/fivetran/dbt_reddit_ads_source/pull/13) includes the following updates:
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ If you are _not_ using the [Reddit Ads](https://github.com/fivetran/dbt_reddit_a
```yaml
packages:
- package: fivetran/reddit_ads_source
version: [">=0.5.0", "<0.6.0"]
version: [">=0.6.0", "<0.7.0"]
```
### Step 3: Define database and schema variables
By default, this package runs using your destination and the `reddit_ads` schema. If this is not where your Reddit Ads data is (for example, if your `reddit_ads` schema is named `reddit_ads_fivetran`), add the following configuration to your root `dbt_project.yml` file:
Expand All @@ -53,10 +53,11 @@ vars:
```

### Step 4: Enable/disable models and sources
Your Reddit Ads connection may not sync every table that this package expects. If you do not have the `CAMPAIGN_COUNTRY_REPORT` or `CAMPAIGN_COUNTRY_CONVERSIONS_REPORT` tables synced, add the following variable to your root `dbt_project.yml` file:
Your Reddit Ads connection may not sync every table that this package expects. If you do not have the `BUSINESS_ACCOUNT`, `CAMPAIGN_COUNTRY_REPORT` or `CAMPAIGN_COUNTRY_CONVERSIONS_REPORT` tables synced, add the corresponding following variable to your root `dbt_project.yml` file. Note that if `BUSINESS_ACCOUNT` is not available, setting the variable to false will fall back to using the `ACCOUNT` table instead.

```yml
vars:
reddit_ads__using_business_account: false # Default is true. Will use ACCOUNT if set to false.
reddit_ads__using_campaign_country_report: false # Default is true
reddit_ads__using_campaign_country_conversions_report: false # Default is true, requires CAMPAIGN_COUNTRY_REPORT to be enabled
```
Expand Down
3 changes: 2 additions & 1 deletion dbt_project.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: 'reddit_ads_source'
version: '0.5.0'
version: '0.6.0'

config-version: 2
require-dbt-version: [">=1.3.0", "<2.0.0"]
Expand All @@ -14,6 +14,7 @@ models:
vars:
reddit_ads_source:
account: "{{ source('reddit_ads','account') }}"
business_account: "{{ source('reddit_ads','business_account') }}"
account_report: "{{ source('reddit_ads', 'account_report') }}"
ad_group: "{{ source('reddit_ads','ad_group') }}"
ad_group_report: "{{ source('reddit_ads', 'ad_group_report') }}"
Expand Down
2 changes: 1 addition & 1 deletion docs/catalog.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/manifest.json

Large diffs are not rendered by default.

65 changes: 58 additions & 7 deletions integration_tests/dbt_project.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
name: 'reddit_ads_source_integration_tests'
version: '0.5.0'
version: '0.6.0'

profile: 'integration_tests'
config-version: 2

vars:
reddit_ads_schema: reddit_ads_source_integration_tests
reddit_ads_account_identifier: "reddit_ads_account_data"
reddit_ads_business_account_identifier: "reddit_ads_business_account_data"
reddit_ads_account_report_identifier: "reddit_ads_account_report_data"
reddit_ads_account_conversions_report_identifier: "reddit_ads_account_conversions"
reddit_ads_ad_identifier: "reddit_ads_ad_data"
Expand Down Expand Up @@ -39,9 +40,59 @@ seeds:
+docs:
show: false
reddit_ads_source_integration_tests:
+column_types:
id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
campaign_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
ad_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
ad_group_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_ad_data:
+column_types:
ad_group_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
campaign_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_ad_report_data:
+column_types:
ad_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_ad_group_data:
+column_types:
campaign_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_ad_group_report_data:
+column_types:
ad_group_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_campaign_data:
+column_types:
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_campaign_report_data:
+column_types:
campaign_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_campaign_country_report_data:
+column_types:
campaign_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_campaign_country_conversions_report_data:
+column_types:
campaign_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_account_data:
+column_types:
id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_business_account_data:
+column_types:
id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_account_conversions:
+column_types:
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_ad_conversions:
+column_types:
ad_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_ad_group_conversions:
+column_types:
ad_group_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
reddit_ads_campaign_conversions:
+column_types:
campaign_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
account_id: "{{ 'string' if target.type in ['bigquery','spark','databricks'] else 'varchar(255)' }}"
2 changes: 2 additions & 0 deletions integration_tests/seeds/reddit_ads_business_account_data.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
id,_fivetran_synced,attribution_type,click_attribution_window,created_at,currency,status,time_zone_id,view_attribution_window
5678,2023-01-09 22:21:17,ALL_CONVERSION,MONTH,2022-01-04 22:22:31,USD,,GMT,DAY
25 changes: 25 additions & 0 deletions models/src_reddit_ads.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,31 @@ sources:
- name: account
identifier: "{{ var('reddit_ads_account_identifier', 'account') }}"
description: Each record represents information about an account.
config:
enabled: "{{ not var('reddit_ads__using_business_account', True) }}"
columns:
- name: id
description: '{{ doc("account_id") }}'
- name: attribution_type
description: '{{ doc("attribution_type") }}'
- name: click_attribution_window
description: '{{ doc("click_attribution_window") }}'
- name: created_at
description: '{{ doc("created_at") }}'
- name: currency
description: '{{ doc("currency") }}'
- name: status
description: '{{ doc("status") }}'
- name: time_zone_id
description: '{{ doc("time_zone_id") }}'
- name: view_attribution_window
description: '{{ doc("view_attribution_window") }}'

- name: business_account
identifier: "{{ var('reddit_ads_business_account_identifier', 'business_account') }}"
description: Each record represents information about an account.
config:
enabled: "{{ var('reddit_ads__using_business_account', True) }}"
columns:
- name: id
description: '{{ doc("account_id") }}'
Expand Down
6 changes: 4 additions & 2 deletions models/tmp/stg_reddit_ads__account_tmp.sql
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
{{ config(enabled=var('ad_reporting__reddit_ads_enabled', True)) }}

{%- set business_account_or_account = 'business_account' if var('reddit_ads__using_business_account', True) else 'account' -%}

{{
fivetran_utils.union_data(
table_identifier='account',
table_identifier=business_account_or_account,
database_variable='reddit_ads_database',
schema_variable='reddit_ads_schema',
default_database=target.database,
default_schema='reddit_ads',
default_variable='account',
default_variable=business_account_or_account,
union_schema_variable='reddit_ads_union_schemas',
union_database_variable='reddit_ads_union_databases'
)
Expand Down