Skip to content

Commit

Permalink
bump version, breaking change docs
Browse files Browse the repository at this point in the history
  • Loading branch information
darynaishchenko committed May 23, 2024
1 parent c6130f3 commit 75a439b
Show file tree
Hide file tree
Showing 4 changed files with 125 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ data:
connectorSubtype: api
connectorType: source
definitionId: 4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35
dockerImageTag: 3.9.6
dockerImageTag: 4.0.0
dockerRepository: airbyte/source-tiktok-marketing
documentationUrl: https://docs.airbyte.com/integrations/sources/tiktok-marketing
githubIssueLabel: source-tiktok-marketing
Expand All @@ -28,6 +28,50 @@ data:
enabled: true
oss:
enabled: true
releases:
breakingChanges:
4.0.0:
message:
The source TikTok Marketing connector is being migrated from the Python CDK
to our declarative low-code CDK. Due to changes in the handling of state
format for incremental substreams, this migration constitutes a breaking
change for the following streams - ad_groups, ads, campaigns, creative_assets_images, creative_assets_videos,
*_reports_daily, *_reports_hourly, *_reports_by_country_daily, *_reports_by_platform_daily.
Also schema for advertiser_ids stream was changed to use string type of advertiser_id
field as API docs declares it.
Users will need to reset source configuration, refresh the source schema and reset the impacted streams after upgrading.
For more information, see our migration documentation for source TikTok Marketing.
upgradeDeadline: "2024-06-15" # TODO: update this date before merge
scopedImpact:
- scopeType: stream
impactedScopes:
- "advertiser_ids"
- "ad_group_audience_reports_by_country_daily"
- "ad_group_audience_reports_by_platform_daily"
- "ad_group_audience_reports_daily"
- "ad_groups"
- "ad_groups_reports_daily"
- "ad_groups_reports_hourly"
- "ads"
- "ads_audience_reports_by_country_daily"
- "ads_audience_reports_by_platform_daily"
- "ads_audience_reports_by_province_daily"
- "ads_audience_reports_daily"
- "ads_reports_daily"
- "ads_reports_hourly"
- "advertisers_audience_reports_by_country_daily"
- "advertisers_audience_reports_by_platform_daily"
- "advertisers_audience_reports_daily"
- "advertisers_reports_daily"
- "advertisers_reports_hourly"
- "campaigns"
- "campaigns_audience_reports_by_country_daily"
- "campaigns_audience_reports_by_platform_daily"
- "campaigns_audience_reports_daily"
- "campaigns_reports_daily"
- "campaigns_reports_hourly"
- "creative_assets_images"
- "creative_assets_videos"
releaseStage: generally_available
supportLevel: certified
tags:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ requires = [ "poetry-core>=1.0.0",]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
version = "3.9.6"
version = "4.0.0"
name = "source-tiktok-marketing"
description = "Source implementation for Tiktok Marketing."
authors = [ "Airbyte <contact@airbyte.io>",]
Expand Down
74 changes: 74 additions & 0 deletions docs/integrations/sources/tiktok-marketing-migrations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# TikTok Marketing Migration Guide

## Upgrading to 4.0.0

We're continuously striving to enhance the quality and reliability of our connectors at Airbyte. As part of our commitment to delivering exceptional service, we are transitioning source TikTok Marketing from the Python Connector Development Kit (CDK) to our innovative low-code framework. This is part of a strategic move to streamline many processes across connectors, bolstering maintainability and freeing us to focus more of our efforts on improving the performance and features of our evolving platform and growing catalog. However, due to differences between the Python and low-code CDKs, this migration constitutes a breaking change.

We’ve evolved and standardized how state is managed for incremental streams that are nested within a parent stream. This change impacts how individual states are tracked and stored for each partition, using a more structured approach to ensure the most granular and flexible state management.

This change will affect the following streams:
- `ad_group_audience_reports_by_country_daily`
- `ad_group_audience_reports_by_platform_daily`
- `ad_group_audience_reports_daily`
- `ad_groups`
- `ad_groups_reports_daily`
- `ad_groups_reports_hourly`
- `ads`
- `ads_audience_reports_by_country_daily`
- `ads_audience_reports_by_platform_daily`
- `ads_audience_reports_by_province_daily`
- `ads_audience_reports_daily`
- `ads_reports_daily`
- `ads_reports_hourly`
- `advertisers_audience_reports_by_country_daily`
- `advertisers_audience_reports_by_platform_daily`
- `advertisers_audience_reports_daily`
- `advertisers_reports_daily`
- `advertisers_reports_hourly`
- `campaigns`
- `campaigns_audience_reports_by_country_daily`
- `campaigns_audience_reports_by_platform_daily`
- `campaigns_audience_reports_daily`
- `campaigns_reports_daily`
- `campaigns_reports_hourly`
- `creative_assets_images`
- `creative_assets_videos`

See `Clearing data` to update your connection.

Schema changes for `advertiser_ids` stream.
Type of advertiser_id field was changed from integer to string to use actual data types as it's declared in API docs. Users will need to refresh stream schema.

See `Refresh schemas` to update your connection.

## Migration Steps

### Refresh schemas

Refreshing `advertiser_ids` schema is required in order to continue syncing `advertiser_ids` stream data. To refresh schema follow the steps below:

1. Select **Connections** in the main navbar.
1. Select the connection(s) affected by the update.
2. Select the **Replication** tab.
1. Select **Refresh source schema**.
2. Select **OK**.
3. Select **Connections** in the main nav bar.
1. Select the connection(s) affected by the update.
4. Select the **Status** tab.
1. In the **Enabled streams** list, click the three dots on the right side of the `advertiser_ids` stream and select **Clear Data**.

Important: If you were using `advertiser_ids` without provided advertiser_id in the source configuration you should firstly refresh source schema for `advertiser_ids` stream and then clear data for affected streams from the list above.

### Clearing data

Clearing your data is required in order to continue syncing affected stream from list above successfully. To clear your data for the streams, follow the steps below:

1. Select **Connections** in the main nav bar.
1. Select the connection(s) affected by the update.
2. Select the **Status** tab.
1. In the **Enabled streams** list, click the three dots on the right side of the impacted stream and select **Clear Data**.
3. Do the same steps from 1-2.1 for all streams in your connection that were affected by this update.

After the clear succeeds, trigger a sync by clicking **Sync Now**. For more information on clearing your data in Airbyte, see [this page](https://docs.airbyte.com/operator-guides/reset).


9 changes: 5 additions & 4 deletions docs/integrations/sources/tiktok-marketing.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ To access the Sandbox environment:
## Supported streams and sync modes

| Stream | Environment | Key | Incremental |
| :---------------------------------------- | :----------- | :----------------------------------------- | :---------- |
| :---------------------------------------- | :----------- | :----------------------------------------- |:------------|
| Advertisers | Prod,Sandbox | advertiser_id | No |
| AdGroups | Prod,Sandbox | adgroup_id | Yes |
| Ads | Prod,Sandbox | ad_id | Yes |
Expand All @@ -85,10 +85,10 @@ To access the Sandbox environment:
| CampaignsReportsDaily | Prod,Sandbox | campaign_id, stat_time_day | Yes |
| CampaignsReportsLifetime | Prod,Sandbox | campaign_id | No |
| CreativeAssetsImages | Prod,Sandbox | image_id | Yes |
| CreativeAssetsMusic | Prod,Sandbox | music_id | Yes |
| CreativeAssetsMusic | Prod,Sandbox | music_id | No |
| CreativeAssetsPortfolios | Prod,Sandbox | creative_portfolio_id | No |
| CreativeAssetsVideos | Prod,Sandbox | video_id | Yes |
| AdvertiserIds | Prod | advertiser_id | Yes |
| AdvertiserIds | Prod | advertiser_id | No |
| AdvertisersAudienceReportsDaily | Prod | advertiser_id, stat_time_day, gender, age | Yes |
| AdvertisersAudienceReportsByCountryDaily | Prod | advertiser_id, stat_time_day, country_code | Yes |
| AdvertisersAudienceReportsByPlatformDaily | Prod | advertiser_id, stat_time_day, platform | Yes |
Expand Down Expand Up @@ -122,7 +122,8 @@ The connector is restricted by [requests limitation](https://business-api.tiktok
## Changelog

| Version | Date | Pull Request | Subject |
| :------ | :--------- | :------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- |
|:--------|:-----------|:---------------------------------------------------------|:------------------------------------------------------------------------------------------------------------|
| 4.0.0 | 2024-05-22 | [38316](https://github.com/airbytehq/airbyte/pull/38316) | Migration to low-code CDK; Support include deleted statuses for Ads, Ad Groups and Campaign streams. |
| 3.9.6 | 2024-04-19 | [36665](https://github.com/airbytehq/airbyte/pull/36665) | Updating to 0.80.0 CDK |
| 3.9.5 | 2024-04-12 | [36665](https://github.com/airbytehq/airbyte/pull/36665) | Schema descriptions |
| 3.9.4 | 2024-03-20 | [36302](https://github.com/airbytehq/airbyte/pull/36302) | Don't extract state from the latest record if stream doesn't have a cursor_field |
Expand Down

0 comments on commit 75a439b

Please sign in to comment.