Skip to content

Commit

Permalink
feature/remove-age (#28)
Browse files Browse the repository at this point in the history
* feature/remove-age

* update changelog, decisionlog, readme

* regen docs

* update changelog

* Apply suggestions from code review

Co-authored-by: Joe Markiewicz <[email protected]>

* Apply suggestions from code review

Co-authored-by: Jamie Rodriguez <[email protected]>

* update changelog

---------

Co-authored-by: Joe Markiewicz <[email protected]>
Co-authored-by: Jamie Rodriguez <[email protected]>
  • Loading branch information
3 people authored Dec 9, 2024
1 parent 4a7a201 commit 389c549
Show file tree
Hide file tree
Showing 11 changed files with 44 additions and 50 deletions.
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 (string and JSON), we can no longer use this approach.
- 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#age_groups-and-age-columns).


# 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
18 changes: 17 additions & 1 deletion DECISIONLOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
# 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 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.
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

0 comments on commit 389c549

Please sign in to comment.