Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature/remove-age #28

Merged
merged 9 commits into from
Dec 9, 2024
Merged
Show file tree
Hide file tree
Changes from 6 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
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# dbt_tiktok_ads_source v0.7.0
[PR #28](https://github.com/fivetran/dbt_tiktok_ads_source/pull/28) includes the following updates:

## Breaking Changes
- In the [July 2023 TikTok Ads connector update](https://fivetran.com/docs/connectors/applications/tiktok-ads/changelog#july2023) for the `ADGROUP_HISTORY` table, the `age` column was renamed to `age_groups`.
- Previously, we coalesced these two columns in the `stg_tiktok_ads__ad_group_history` model to account for connectors using the old naming convention. However, due to inconsistent data types, we can no longer use this approach.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we include the specific data types (strings and jsons right)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. Updated!

- As a result, the coalesced field has been removed in favor of the `age_groups` column.
- If necessary, you can populate historical data in the `age_groups` column by performing a resync of the `ADGROUP_HISTORY` table, since TikTok provides all data regardless of the previous sync state.
- For more details, see the [DECISIONLOG entry](https://github.com/fivetran/dbt_tiktok_ads_source/blob/main/DECISIONLOG.md).
fivetran-catfritz marked this conversation as resolved.
Show resolved Hide resolved


# dbt_tiktok_ads_source v0.6.0
[PR #23](https://github.com/fivetran/dbt_tiktok_ads_source/pull/23) includes the following **BREAKING CHANGE** updates:

Expand Down
19 changes: 18 additions & 1 deletion DECISIONLOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
# DECISION LOG

## Why don't metrics add up across different grains (Ex. ad level vs campaign level)?
Not all ads are served at the ad level. In other words, there are some ads that are served only at the ad group, campaign, etc. levels. The implications are that since not ads are included in the ad-level report, their associated spend, for example, won't be included at that grain. Therefore your spend totals may differ across the ad grain and another grain.

This is a reason why we have broken out the ad reporting packages into separate hierarchical end models (Ad, Ad Group, Campaign, and more). Because if we only used ad-level reports, we could be missing data.s
This is a reason why we have broken out the ad reporting packages into separate hierarchical end models (Ad, Ad Group, Campaign, and more). Because if we only used ad-level reports, we could be missing data.

## `age_groups` and `age` columns
In the [July 2023 TikTok Ads connector update](https://fivetran.com/docs/connectors/applications/tiktok-ads/changelog#july2023), we renamed the `age` column in the `ADGROUP_HISTORY` table to `age_groups`. To maintain compatibility with connectors using the old column name, our data models previously coalesced the `age` and `age_groups` columns. However, due to inconsistent data types between `age` and `age_groups`, this approach began causing errors.

### Decision
- The `age` column has been removed from the `stg_tiktok_ads__ad_group_history` model and the `fill` staging macro for the ad group history table.
- Models now rely exclusively on the `age_groups` column.

### Impact
- Customers using the `age` column will no longer have access to this field in the models.
- The change simplifies logic and resolves data inconsistency issues caused by merging fields with different data types.

### Action for Customers Requiring Historical `age` Data
Customers who still need the historical `age` column data can:
1. Resync the `ADGROUP_HISTORY` table in their TikTok Ads connector. TikTok provides all historical data in the `age_groups` column, allowing the data to be fully populated.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there supposed to be a second option? If not, we should prob remove the 1.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oops removed.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ If you are **not** using the [Tiktok transformation package](https://github.com
```yaml
packages:
- package: fivetran/tiktok_ads_source
version: [">=0.6.0", "<0.7.0"]
version: [">=0.7.0", "<0.8.0"]
```

### Step 3: Define database and schema variables
Expand Down
2 changes: 1 addition & 1 deletion dbt_project.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: 'tiktok_ads_source'
version: '0.6.0'
version: '0.7.0'
config-version: 2
require-dbt-version: [">=1.3.0", "<2.0.0"]
models:
Expand Down
2 changes: 1 addition & 1 deletion docs/catalog.json

Large diffs are not rendered by default.

47 changes: 10 additions & 37 deletions docs/index.html

Large diffs are not rendered by default.

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

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion integration_tests/dbt_project.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: 'tiktok_ads_source_integration_tests'
version: '0.6.0'
version: '0.7.0'
profile: 'integration_tests'
config-version: 2

Expand Down
1 change: 0 additions & 1 deletion macros/get_ad_group_history_columns.sql
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
{"name": "updated_at", "datatype": dbt.type_timestamp()},
{"name": "interest_category_v_2", "datatype": dbt.type_string()},
{"name": "action_categories", "datatype": dbt.type_string()},
{"name": "age", "datatype": dbt.type_string()},
{"name": "age_groups", "datatype": dbt.type_string()},
{"name": "languages", "datatype": dbt.type_string()}

Expand Down
5 changes: 0 additions & 5 deletions models/src_tiktok_ads.yml
Original file line number Diff line number Diff line change
Expand Up @@ -130,11 +130,6 @@ sources:
description: The number of days of the time period to include action from.
- name: adgroup_name
description: Ad group name. Character limit is 512 and cannot contain emoji.
- name: age
description: >
Age groups you want to target.
IMPORTANT: This field will not be populated for connectors utilizing the Tiktok Ads v1.3 API version, as the column was renamed.
The new column name is `age_group`.
- name: age_groups
description: >
Age groups you want to target.
Expand Down
2 changes: 1 addition & 1 deletion models/stg_tiktok_ads__ad_group_history.sql
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ final as (
action_days,
action_categories,
adgroup_name as ad_group_name,
coalesce(age_groups, age) as age_groups,
age_groups,
audience_type,
budget,
category,
Expand Down