1
0
mirror of synced 2025-12-21 11:01:41 -05:00
Files
airbyte/docs/integrations/sources/facebook-marketing.md

108 KiB
Raw Permalink Blame History

Facebook Marketing

This page contains the setup guide and reference information for the Facebook Marketing source connector.

Prerequisites

Setup guide

Set up Facebook Marketing

For Airbyte Cloud:

  1. Log into your Airbyte Cloud account.
  2. Click Sources and then click + New source.
  3. On the Set up the source page, select Facebook Marketing from the Source type dropdown.
  4. Enter a name for the Facebook Marketing connector.
  5. To authenticate the connection, click Authenticate your account to authorize your Facebook account. Ensure you are logged into the right account, as Airbyte will authenticate the account you are currently logged in to.

For Airbyte Open Source:

  1. Navigate to the Airbyte Open Source dashboard.
  2. Click Sources and then click + New source.
  3. On the Set up the source page, select Facebook Marketing from the Source type dropdown.
  4. Enter a name for the Facebook Marketing connector.
  5. In the Access Token field, enter the Marketing API access token.

Airbyte Open Source

This guide outlines the steps required to configure your Meta Developer account and create an app to utilize the Facebook Marketing API.

Follow these five key steps:

  1. Register as a Meta Developer: If you haven't already, create your developer account.
  2. Create a New App: Set up a new application within your Developer Dashboard.
  3. Integrate the Marketing API: Add the Marketing API product to your newly created app.
  4. Generate an Access Token: Obtain the necessary credentials to authenticate your API requests.
  5. Request Increased Rate Limits: Ensure your app can handle the required data volume by requesting Advanced Access.

1. Register as a Meta Developer

A Meta Developer account is your gateway to the App Dashboard, SDKs, APIs, development tools, and documentation.

To register, follow the official instructions: 🔗 Register as a Meta Developer

2. Create a New App

Your Meta app serves as a container for your API credentials and permissions. Meta uses it to monitor API usage, enforce rate limits, and ensure application security.

  • Go to the 🔗 Meta for Developers App Dashboard and click Create App.

  • Important: During the setup process, at the "Use case" step, select:

    Create an app without a use case Choose this option if you'd like to get an app ID without automatically adding any permissions, features, or products.

  • App Type: Choose Business as the app type when prompted.

3. Add the Marketing API Product

After creating your app, youll need to enable the Marketing API to begin making requests.

  • In your apps dashboard, open the sidebar menu.
  • Click Add Product.
  • Find and select Marketing API from the list of available products.

📚 Further Reading: For an overview of the Marketing API, see: Facebook Developer Marketing API Docs

4. Generate an Access Token

To authorize your application to interact with the Facebook Marketing API, you'll need to generate an access token with the appropriate permissions.

  • From your app's dashboard, go to Marketing API > Tools.

  • In the Token Permissions section, select the following permissions:

    • ads_management: Manage ads and campaigns.
    • ads_read: Read ad and campaign data.
    • read_insights: Access insights data for ads, ad sets, and campaigns.
    • business_management: Manage business assets (often required to access ad accounts connected to a Meta Business Manager).
  • Click Get Token to generate the access token.

  • Copy the generated token securely. Use this Access Token to authenticate your API calls when using the “Service Account Key Authentication” method.

:::tip You can always view your existing access tokens, their permissions, and lifecycles using the 🔗 Access Token Tool. :::

5. Request Increased Rate Limits

By default, API tokens generated from apps with "Standard Access" are heavily throttled by Facebook.

This can make them unsuitable for applications requiring frequent or large data syncs (like with Airbyte).

To ensure reliable performance, you'll need to request "Advanced Access."

  • Access App Review

    • From your app's dashboard, go to App Review > Permissions and Features.
  • Identify Required Permissions

    • For each of the following permissions marked as "Standard Access", click the Request advanced access button:
      • ads_read
      • ads_management
    • Facebook may prompt you to fill out a form detailing how the permission is used.
  • Complete Business Verification

    • Make sure your app is associated with a verified Business Manager account.
    • This is a prerequisite for obtaining Advanced Access.
  • Submit the App Review Request

    • Once all information is provided, submit the request through the App Review interface.
    • Monitor the status in the dashboard as Facebook reviews your application.
  • Meet Rate Limit Requirements

    • Once youve been granted advanced access, you must consistently make at least 1,500 Marketing API calls within any rolling 15-day window to maintain your status.
    • Facebook continuously evaluates your API activity based on the past 15 days, not just immediately after approval.
    • Falling below the 1,500 call threshold during any 15-day period may result in your advanced access being revoked.

📚 Guidance: Refer to Facebook's official documentation on Access Levels and Authorization for detailed instructions on requesting Advanced Access.

Facebook Marketing Source Settings

1. For **Account ID(s)**, enter one or multiple comma-separated [Facebook Ad Account ID Numbers](https://www.facebook.com/business/help/1492627900875762) to use when pulling data from the Facebook Marketing API. To find this ID, open your Meta Ads Manager. The Ad Account ID number is in the **Account** dropdown menu or in your browser's address bar. Refer to the [Facebook docs](https://www.facebook.com/business/help/1492627900875762) for more information. 2. (Optional) For **Start Date**, use the provided datepicker, or enter the date programmatically in the `YYYY-MM-DDTHH:mm:ssZ` format. If the start date is not set, then all data will be replicated except for `Insight` data, which only pulls data for the last 37 months.

:::info Insight tables are only able to pull data from the last 37 months. If you are syncing insight tables and your start date is older than 37 months, your sync will not succeed for those streams. :::

3. (Optional) For **End Date**, use the provided datepicker, or enter the date programmatically in the `YYYY-MM-DDTHH:mm:ssZ` format. This is the date until which you'd like to replicate data for all Incremental streams. All data generated between the start date and this end date will be replicated. Not setting this option will result in always syncing the latest data. 4. (Optional) Multiselect the **Campaign Statuses** to include data from Campaigns for particular statuses. 5. (Optional) Multiselect the **AdSet Statuses** to include data from AdSets for particular statuses. 6. (Optional) Multiselect the **Ad Statuses** to include data from Ads for particular statuses. 7. (Optional) Toggle the **Fetch Thumbnail Images** button to fetch the `thumbnail_url` and store the result in `thumbnail_data_url` for each [Ad Creative](https://developers.facebook.com/docs/marketing-api/creative/). 8. (Optional) If needed, you can change default action breakdowns for Built-in Ads Insights stream. Remove all if you need to make it empty list or change default values. 9. (Optional) In the **Custom Insights** section, you may provide a list of ad statistics entries. Each entry should have a unique name and can contain fields, breakdowns or action_breakdowns. Fields refer to the different data points you can collect from an ad, while breakdowns and action_breakdowns let you segment this data for more detailed insights. Click on **Add** to create a new entry in this list.

To retrieve specific fields from Facebook Ads Insights combined with other breakdowns, you can choose which fields and breakdowns to sync. However, please note that not all fields can be requested, and many are only functional when combined with specific other fields. For example, the breakdown app_id is only supported with the total_postbacks field. For more information on the breakdown limitations, refer to the Facebook documentation.

:::info Additional data streams for your Facebook Marketing connector are dynamically generated according to the Custom Insights you specify. If you have an existing Facebook Marketing source and you decide to update or remove some of your Custom Insights, you must also update the connections to sync these streams by refreshing the schema. :::

To configure Custom Insights:

  1. For Name, enter a name for the insight. This will be used as the Airbyte stream name.
2. (Optional) For **Level**, enter the level of granularity for the data you want to pull from the Facebook Marketing API (`account`, `ad`, `adset`, `campaign`). Set to `ad` by default. 3. (Optional) For **Fields**, use the dropdown list to select the fields you want to pull from the Facebook Marketing API. 4. (Optional) For **Breakdowns**, use the dropdown list to select the breakdowns you want to configure. 5. (Optional) For **Action Breakdowns**, use the dropdown list to select the action breakdowns you want to configure. 6. (Optional) For **Action Report Time**, enter the action report time you want to configure. This value determines the timing used to report action statistics. For example, if a user sees an ad on Jan 1st but converts on Jan 2nd, this value will determine how the action is reported.
  - `impression`: Actions are attributed to the time the ad was viewed (Jan 1st).
  - `conversion`: Actions are attributed to the time the action was taken (Jan 2nd).
  - `mixed`: Click-through actions are attributed to the time the ad was viewed (Jan 1st), and view-through actions are attributed to the time the action was taken (Jan 2nd).
7. (Optional) For **Time Increment**, you may provide a value in days by which to aggregate statistics. The sync will be chunked into intervals of this size. For example, if you set this value to 7, the sync will be chunked into 7-day intervals. The default value is 1 day. 8. (Optional) For **Start Date**, enter the date in the `YYYY-MM-DDTHH:mm:ssZ` format. The data added on and after this date will be replicated. If this field is left blank, Airbyte will replicate all data. 9. (Optional) For **End Date**, enter the date in the `YYYY-MM-DDTHH:mm:ssZ` format. The data added on and before this date will be replicated. If this field is left blank, Airbyte will replicate the latest data. 10. (Optional) For **Custom Insights Lookback Window**, you may set a window in days to revisit data during syncing to capture updated conversion data from the API. Facebook allows for attribution windows of up to 28 days, during which time a conversion can be attributed to an ad. If you have set a custom attribution window in your Facebook account, please set the same value here. Otherwise, you may leave it at the default value of 28. For more information on action attributions, please refer to [the Meta Help Center](https://www.facebook.com/business/help/458681590974355?id=768381033531365). 11. (Optional) For **Page Size of Requests**, you can specify the number of records per page for paginated responses. Most users do not need to set this field unless specific issues arise or there are unique use cases that require tuning the connector's settings. The default value is set to retrieve 100 records per page. 12. (Optional) For **Insights Window Lookback**, you may set a window in days to revisit data during syncing to capture updated conversion data from the API. Facebook allows for attribution windows of up to 28 days, during which time a conversion can be attributed to an ad. If you have set a custom attribution window in your Facebook account, please set the same value here. Otherwise, you may leave it at the default value of 28. For more information on action attributions, please refer to [the Meta Help Center](https://www.facebook.com/business/help/458681590974355?id=768381033531365). 13. (Optional) For **Insights Job Timeout**, you may set a custom value in range from 10 to 60. It establishes the maximum amount of time (in minutes) of waiting for the report job to complete.
  1. Click Set up source and wait for the tests to complete.

Supported sync modes

The Facebook Marketing source connector supports the following sync modes:

Supported Streams

Stream Name API Docs Supports Full Refresh Supports Incremental
activities Latest
ad_account Latest
ad_creatives Latest
ad_sets Latest
ads Latest
ads_insights Latest
campaigns Latest
custom_conversions Latest
custom_audiences Latest
images Latest
videos Latest

Notes on Streams:

:::info Custom Audiences The rule field in the Custom Audiences stream may not be synced for all records due to limitations with the Facebook Marketing API. Syncing this field may also cause your sync to return the error message Please reduce the amount of data See our Troubleshooting section for more information. :::

Airbyte also supports the following Prebuilt Facebook Ad Insights Reports:

Stream Breakdowns Action Breakdowns
Ad Insights Action Carousel Card --- action_carousel_card_id, action_carousel_card_name
Ad Insights Action Conversion Device device_platform action_type
Ad Insights Action Product ID product_id ---
Ad Insights Action Reaction --- action_reaction
Ad Insights Action Video Sound --- action_video_sound
Ad Insights Action Video Type --- action_video_type
Ad Insights Action Type --- action_type
Ad Insights Age And Gender age, gender action_type, action_target_id, action_destination
Ad Insights Delivery Device device_platform action_type
Ad Insights Delivery Platform publisher_platform action_type
Ad Insights Delivery Platform And Device Platform publisher_platform, device_platform action_type
Ad Insights Demographics Age age action_type
Ad Insights Demographics Country country action_type
Ad Insights Demographics DMA Region dma action_type
Ad Insights Demographics Gender gender action_type
Ad Insights DMA dma action_type, action_target_id, action_destination
Ad Insights Country country action_type, action_target_id, action_destination
Ad Insights Platform And Device publisher_platform, platform_position, impression_device action_type
Ad Insights Region region action_type, action_target_id, action_destination

You can segment the Ad Insights table into parts based on the following information. Each part will be synced as a separate table if normalization is enabled:

  • Country
  • DMA (Designated Market Area)
  • Gender & Age
  • Platform & Device
  • Region

For more information, see the Facebook Insights API documentation.

Entity-Relationship Diagram (ERD)

Facebook Marketing Attribution Reporting

The Facebook Marketing connector uses the lookback_window parameter to repeatedly read data from the last <lookback_window> days during an Incremental sync. This means some data will be synced twice (or possibly more often) despite the cursor value being up to date, in order to capture updated ads conversion data from Facebook. You can change this date window by adjusting the lookback_window parameter when setting up the source, up to a maximum of 28 days. Smaller values will result in fewer duplicates, while larger values provide more accurate results. For a deeper understanding of the purpose and role of the attribution window, refer to this Meta article.

Data type map

Integration Type Airbyte Type
string string
number number
array array
object object

Troubleshooting

Handling "Please reduce the amount of data you're asking for, then retry your request"

This response indicates that the Facebook Graph API requires you to reduce the fields (amount of data) requested. To resolve this issue:

  1. Go to the Schema Tab: Navigate to the schema tab of your connection.
  2. Select the Source: Click on the source that is having issues with synchronization.
  3. Toggle Fields: Unselect (toggle off) the fields you do not require. This action will ensure that these fields are not requested from the Graph API.

Missing purchases or purchase value metrics

You may notice that Purchases or purchase value fields in the Ads Insights stream appear incomplete or under-reported for certain date ranges. This issue has been observed across multiple platforms, including direct Facebook API calls. It's not specific to Airbyte, but linked to intermittent upstream API behavior.

Whats happening

API users have reported missing purchase metrics on Reddit and in the Facebook Developer and Community forums. In some cases, action values like offsite_conversion.fb_pixel_purchase appear correctly at the ad or ad set level, but disappear at the campaign or account level. API users documented similar API behavior in the Facebook Developer Community several years ago. It appears to have resurfaced more frequently as of 2025.

Why it happens

Facebooks Ads Insights API dynamically aggregates and filters metrics. Purchase data may be missing or inconsistent for the following reasons.

  • Attribution window processing: Facebook re-attributes purchases up to 28 days after an impression or click, meaning recent data can fluctuate or appear missing until finalized.

  • Complex breakdowns or field combinations: including multiple breakdowns like action_type, action_target_id, and action_destination can result in partial or truncated responses.

  • Intermittent API-side behavior: Facebook's data availability and aggregation logic can vary between endpoints and attribution windows, leading to temporary inconsistencies.

  • Throughput and rate limits: when you exceed API throughput or many queries run concurrently, Facebook may return partial datasets or suppress some metrics.

How to resolve the issue

  1. Refresh recent data: update the Start Date on the source connector to just before the data discrepancy begins and then trigger a "Refresh and Retain" sync from the connection's settings tab. Many customers see missing metrics restored after doing this.

  2. Simplify breakdowns: temporarily remove Action breakdowns like action_type, action_target_id, and action_destination from the Ads Insights stream configuration, then re-sync. Reintroduce them gradually.

  3. Reduce query size: For custom report streams, sync fewer fields or a narrower date range first, verify the results, then expand incrementally.

  4. Limit concurrency: if you have multiple Facebook Marketing connections using the same access token to authenticate, try staggering their sync schedules to reduce contention and avoid hitting Facebook API limits. This only works across multiple connections. No method exists to stagger syncs within a single connection that includes multiple ad accounts.

  5. Verify with Facebook Ads Manager: compare values directly in Facebook Ads Manager at the ad or ad set level, where action values often appear correctly even if theyre missing in aggregated results.

Changelog

Expand to review
Version Date Pull Request Subject
4.1.2 2025-11-05 69204 Add config migration that adds default action breakdowns
4.1.1 2025-11-04 69169 Finalize progressive rollout.
4.1.1-rc.1 2025-10-27 68632 Performance improvement on normalization
4.1.0 2025-10-06 67081 Promoting release candidate 4.1.0-rc.2 to a main version.
4.1.0-rc.2 2025-10-02 66976 Add missing breakdown user_segment_key
4.1.0-rc.1 2025-09-25 66000 Add field-based splitting for failed Ad-level async jobs; Upgrade to CDK v7
4.0.1 2025-09-15 66182 Classify subcode 2446289 error as config error
4.0.0 2025-08-25 65533 Migrate to Marketing API v23
3.5.12 2025-08-23 65288 Update dependencies
3.5.11 2025-08-19 64911 Allow overriding action breakdowns for default Ads Insights stream.
3.5.10 2025-08-16 65010 Update dependencies
3.5.9 2025-08-09 64679 Update dependencies
3.5.8 2025-08-02 64406 Update dependencies
3.5.7 2025-07-26 63934 Update dependencies
3.5.6 2025-07-19 63604 Update dependencies
3.5.5 2025-07-12 63029 Update dependencies
3.5.4 2025-07-05 62811 Update dependencies
3.5.3 2025-06-28 62413 Update dependencies
3.5.2 2025-06-21 61958 Update dependencies
3.5.1 2025-06-14 61290 Update dependencies
3.5.0 2025-06-09 61477 Removed action_report_time from spec as deprecated
3.4.9 2025-05-24 60025 Update dependencies
3.4.8 2025-05-03 58889 Update dependencies
3.4.7 2025-04-19 58296 Update dependencies
3.4.6 2025-04-12 57827 Update dependencies
3.4.5 2025-04-05 57219 Update dependencies
3.4.4 2025-03-29 56467 Update dependencies
3.4.3 2025-02-20 54171 Fix retry pattern
3.4.2 2025-03-22 55991 Update dependencies
3.4.1 2024-03-14 55760 Fixed KeyError during discovery due to outdated breakdown schema
3.4.0 2024-12-24 50418 Add learning_stage_info field to ad_sets stream
3.3.35 2025-03-08 55307 Update dependencies
3.3.34 2025-03-01 54990 Update dependencies
3.3.33 2025-02-22 54386 Update dependencies
3.3.32 2025-02-15 53721 Update dependencies
3.3.31 2025-02-11 53626 Log Utilization type
3.3.30 2025-02-08 53330 Update dependencies
3.3.29 2025-02-01 52835 Update dependencies
3.3.28 2025-01-27 52032 Update to API version 21
3.3.27 2025-01-25 52365 Update dependencies
3.3.26 2025-01-18 51706 Update dependencies
3.3.25 2025-01-11 51080 Update dependencies
3.3.24 2025-01-04 50922 Update dependencies
3.3.23 2024-12-28 50533 Update dependencies
3.3.22 2024-12-21 50014 Update dependencies
3.3.21 2024-12-14 49197 Update dependencies
3.3.20 2024-11-25 48632 Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64
3.3.19 2024-11-04 48155 Update dependencies
3.3.18 2024-10-29 47894 Update dependencies
3.3.17 2024-10-28 43787 Update dependencies
3.3.16 2024-07-15 46546 Raise exception on missing stream
3.3.15 2024-07-15 42562 Add friendly messages for "reduce fields" and "start date" errors
3.3.14 2024-07-15 41958 Update cdk to filter invalid fields from configured catalog
3.3.13 2024-07-13 41732 Update dependencies
3.3.12 2024-07-11 41644 Remove discriminator with missing schemas
3.3.11 2024-07-10 41039 Pick request fields from configured json schema properties if present
3.3.10 2024-07-10 41458 Update dependencies
3.3.9 2024-07-09 41106 Update dependencies
3.3.8 2024-07-06 40934 Update dependencies
3.3.7 2024-07-01 40645 Use latest CDK version possible
3.3.6 2024-06-24 40241 Update AdsInsights fields - removed adset_start
3.3.5 2024-06-26 40545 Fixed issue when the STATE is literal None (RFR)
3.3.4 2024-06-25 40485 Update dependencies
3.3.3 2024-06-22 40191 Update dependencies
3.3.2 2024-06-06 39174 [autopull] Upgrade base image to v1.2.2
3.3.1 2024-06-15 39511 Fix validation of the spec custom_insights.time_increment field
3.3.0 2024-06-30 33648 Add support to field source_instagram_media_id to ad_creatives report
3.2.0 2024-06-05 37625 Source Facebook-Marketing: Add Selectable Auth
3.1.0 2024-06-01 38845 Update AdsInsights fields - removed cost_per_conversion_lead and conversion_lead_rate
3.0.0 2024-04-30 36608 Update body_asset, call_to_action_asset, description_asset, image_asset, link_url_asset, title_asset, video_asset breakdowns schema.
2.1.9 2024-05-17 38301 Fix data inaccuracies when wish_bid is requested
2.1.8 2024-05-07 37771 Handle errors without API error codes/messages
2.1.7 2024-04-24 36634 Update to CDK 0.80.0
2.1.6 2024-04-24 36634 Schema descriptions
2.1.5 2024-04-17 37341 Move rate limit errors to transient errors.
2.1.4 2024-04-16 37367 Skip config migration when the legacy account_id field does not exist
2.1.3 2024-04-16 37320 Add retry for transient error
2.1.2 2024-03-29 36689 Fix key error account_id for custom reports.
2.1.1 2024-03-18 36025 Fix start_date selection behaviour
2.1.0 2024-03-12 35978 Upgrade CDK to start emitting record counts with state and full refresh state
2.0.1 2024-03-08 35913 Fix lookback window
2.0.0 2024-03-01 35746 Update API to v19.0
1.4.2 2024-02-22 35539 Add missing config migration from include_deleted field
1.4.1 2024-02-21 35467 Fix error with incorrect state transforming in the 1.4.0 version
1.4.0 2024-02-20 32449 Replace "Include Deleted Campaigns, Ads, and AdSets" option in configuration with specific statuses selection per stream
1.3.3 2024-02-15 35061 Add integration tests
1.3.2 2024-02-12 35178 Manage dependencies with Poetry
1.3.1 2024-02-05 34845 Add missing fields to schemas
1.3.0 2024-01-09 33538 Updated the Ad Account ID(s) property to support multiple IDs
1.2.3 2024-01-04 33934 Make ready for airbyte-lib
1.2.2 2024-01-02 33828 Add insights job timeout to be an option, so a user can specify their own value
1.2.1 2023-11-22 32731 Removed validation that blocked personal ad accounts during check
1.2.0 2023-10-31 31999 Extend the AdCreatives stream schema
1.1.17 2023-10-19 31599 Base image migration: remove Dockerfile and use the python-connector-base image
1.1.16 2023-10-11 31284 Fix error occurring when trying to access the funding_source_details field of the AdAccount stream
1.1.15 2023-10-06 31132 Fix permission error for AdAccount stream
1.1.14 2023-09-26 30758 Exception should not be raises if a stream is not found
1.1.13 2023-09-22 30706 Performance testing - include socat binary in docker image
1.1.12 2023-09-22 30655 Updated doc; improved schema for custom insight streams; updated SAT or custom insight streams; removed obsolete optional max_batch_size option from spec
1.1.11 2023-09-21 30650 Fix None issue since start_date is optional
1.1.10 2023-09-15 30485 added 'status' and 'configured_status' fields for campaigns stream schema
1.1.9 2023-08-31 29994 Removed batch processing, updated description in specs, added user-friendly error message, removed start_date from required attributes
1.1.8 2023-09-04 29666 Adding custom field boosted_object_id to a streams schema in campaigns catalog CustomAudiences
1.1.7 2023-08-21 29674 Exclude rule from stream CustomAudiences
1.1.6 2023-08-18 29642 Stop batch requests if only 1 left in a batch
1.1.5 2023-08-18 29610 Automatically reduce batch size
1.1.4 2023-08-08 29412 Add new custom_audience stream
1.1.3 2023-08-08 29208 Add account type validation during check
1.1.2 2023-08-03 29042 Fix broken advancedAuth references for spec
1.1.1 2023-07-26 27996 Remove reference to authSpecification
1.1.0 2023-07-11 26345 Add new action_report_time attribute to AdInsights class
1.0.1 2023-07-07 27979 Added the ability to restore the reduced request record limit after the successful retry, and handle the unknown error (code 99) with the retry strategy
1.0.0 2023-07-05 27563 Migrate to FB SDK version 17
0.5.0 2023-06-26 27728 License Update: Elv2
0.4.3 2023-05-12 27483 Reduce replication start date by one more day
0.4.2 2023-06-09 27201 Add complete_oauth_server_output_specification to spec
0.4.1 2023-06-02 26941 Remove authSpecification from spec.json, use advanced_auth instead
0.4.0 2023-05-29 26720 Add Prebuilt Ad Insights reports
0.3.7 2023-05-12 26000 Handle config errors
0.3.6 2023-04-27 22999 Specified date formatting in specification
0.3.5 2023-04-26 24994 Emit stream status messages
0.3.4 2023-04-18 22990 Increase pause interval
0.3.3 2023-04-14 25204 Fix data retention period validation
0.3.2 2023-04-08 25003 Don't fetch thumbnail_data_url if it's None
0.3.1 2023-03-27 24600 Reduce request record limit when retrying second page or further
0.3.0 2023-03-16 19141 Added Level parameter to custom Ads Insights
0.2.86 2023-03-01 23625 Add user friendly fields description in spec and docs. Extend error message for invalid Account ID case.
0.2.85 2023-02-14 23003 Bump facebook_business to 16.0.0
0.2.84 2023-01-27 22003 Set AvailabilityStrategy for streams explicitly to None
0.2.83 2023-01-13 21149 Videos stream remove filtering
0.2.82 2023-01-09 21149 Fix AdAccount schema
0.2.81 2023-01-05 21057 Remove unsupported fields from request
0.2.80 2022-12-21 20736 Fix update next cursor
0.2.79 2022-12-07 20402 Exclude Not supported fields from request
0.2.78 2022-12-07 20165 Fix fields permission error
0.2.77 2022-12-06 20131 Update next cursor value at read start
0.2.76 2022-12-03 20043 Allows action_breakdowns to be an empty list - bugfix for #20016
0.2.75 2022-12-03 20016 Allows action_breakdowns to be an empty list
0.2.74 2022-11-25 19803 New default for action_breakdowns, improve "check" command speed
0.2.73 2022-11-21 19645 Check "breakdowns" combinations
0.2.72 2022-11-04 18971 Handle FacebookBadObjectError for empty results on async jobs
0.2.71 2022-10-31 18734 Reduce request record limit on retry
0.2.70 2022-10-26 18045 Upgrade FB SDK to v15.0
0.2.69 2022-10-17 18045 Remove "pixel" field from the Custom Conversions stream schema
0.2.68 2022-10-12 17869 Remove "format" from optional datetime end_date field
0.2.67 2022-10-04 17551 Add cursor_field for custom_insights stream schema
0.2.65 2022-09-29 17371 Fix stream CustomConversions enable_deleted=False
0.2.64 2022-09-22 17304 Migrate to per-stream state.
0.2.64 2022-09-22 17027 Limit time range with 37 months when creating an insight job from lower edge object. Retry bulk request when getting error code 960
0.2.63 2022-09-06 15724 Add the Custom Conversion stream
0.2.62 2022-09-01 16222 Remove end_date from config if empty value (re-implement #16096)
0.2.61 2022-08-29 16096 Remove end_date from config if empty value
0.2.60 2022-08-19 15788 Retry FacebookBadObjectError
0.2.59 2022-08-04 15327 Shift date validation from config validation to stream method
0.2.58 2022-07-25 15012 Add DATA_RETENTION_PERIODvalidation and fix failed_delivery_checks field schema type issue
0.2.57 2022-07-25 14831 Update Facebook SDK to version 14.0.0
0.2.56 2022-07-19 14831 Add future start_date and end_date validation
0.2.55 2022-07-18 14786 Check if the authorized user has the "MANAGE" task permission when getting the funding_source_details field in the ad_account stream
0.2.54 2022-06-29 14267 Make MAX_BATCH_SIZE available in config
0.2.53 2022-06-16 13623 Add fields bid_amount bid_strategy bid_constraints to ads_set stream
0.2.52 2022-06-14 13749 Fix the not syncing any data issue
0.2.51 2022-05-30 13317 Change tax_id to string (Canadian has letter in tax_id)
0.2.50 2022-04-27 12402 Add lookback window to insights streams
0.2.49 2022-05-20 13047 Fix duplicating records during insights lookback period
0.2.48 2022-05-19 13008 Update CDK to v0.1.58 avoid crashing on incorrect stream schemas
0.2.47 2022-05-06 12685 Update CDK to v0.1.56 to emit an AirbyeTraceMessage on uncaught exceptions
0.2.46 2022-04-22 12171 Allow configuration of page_size for requests
0.2.45 2022-05-03 12390 Better retry logic for split-up async jobs
0.2.44 2022-04-14 11751 Update API to a directly initialise an AdAccount with the given ID
0.2.43 2022-04-13 11801 Fix user_tos_accepted schema to be an object
0.2.42 2022-04-06 11761 Upgrade Facebook Python SDK to version 13
0.2.41 2022-03-28 11446 Increase number of attempts for individual jobs
0.2.40 2022-02-28 10698 Improve sleeps time in rate limit handler
0.2.39 2022-03-09 10917 Retry connections when FB API returns error code 2 (temporary oauth error)
0.2.38 2022-03-08 10531 Add time_increment parameter to custom insights
0.2.37 2022-02-28 10655 Add Activities stream
0.2.36 2022-02-24 10588 Fix execute_in_batch for large amount of requests
0.2.35 2022-02-18 10348 Add error code 104 to backoff triggers
0.2.34 2022-02-17 10180 Performance and reliability fixes
0.2.33 2021-12-28 10180 Add AdAccount and Images streams
0.2.32 2022-01-07 10138 Add primary_key for all insights streams.
0.2.31 2021-12-29 9138 Fix videos stream format field incorrect type
0.2.30 2021-12-20 8962 Add asset_feed_spec field to ad creatives stream
0.2.29 2021-12-17 8649 Retrieve ad_creatives image as data encoded
0.2.28 2021-12-13 8742 Fix for schema generation related to "breakdown" fields
0.2.27 2021-11-29 8257 Add fields to Campaign stream
0.2.26 2021-11-19 7855 Add Video stream
0.2.25 2021-11-12 7904 Implement retry logic for async jobs
0.2.24 2021-11-09 7744 Fix fail when async job takes too long
0.2.23 2021-11-08 7734 Resolve $ref field for discover schema
0.2.22 2021-11-05 7605 Add job retry logics to AdsInsights stream
0.2.21 2021-10-05 4864 Update insights streams with custom entries for fields, breakdowns and action_breakdowns
0.2.20 2021-10-04 6719 Update version of facebook_business package to 12.0
0.2.19 2021-09-30 6438 Annotate Oauth2 flow initialization parameters in connector specification
0.2.18 2021-09-28 6499 Fix field values converting fail
0.2.17 2021-09-14 4978 Convert values' types according to schema types
0.2.16 2021-09-14 6060 Fix schema for ads_insights stream
0.2.15 2021-09-14 5958 Fix url parsing and add report that exposes conversions
0.2.14 2021-07-19 4820 Improve the rate limit management
0.2.12 2021-06-20 3743 Refactor connector to use CDK: - Improve error handling. - Improve async job performance (insights). - Add new configuration parameter insights_days_per_job. - Rename stream adsets to ad_sets. - Refactor schema logic for insights, allowing to configure any possible insight stream.
0.2.10 2021-06-16 3973 Update version of facebook_business to 11.0
0.2.9 2021-06-10 3996 Add AIRBYTE_ENTRYPOINT for Kubernetes support
0.2.8 2021-06-09 3973 Add 80000 as a rate-limiting error code
0.2.7 2021-06-03 3646 Add missing fields to AdInsights streams
0.2.6 2021-05-25 3525 Fix handling call rate limit
0.2.5 2021-05-20 3396 Allow configuring insights lookback window
0.2.4 2021-05-13 3395 Fix an issue that caused losing Insights data from the past 28 days while incremental sync
0.2.3 2021-04-28 3116 Wait longer (5 min) for async jobs to start
0.2.2 2021-04-03 2726 Fix base connector versioning
0.2.1 2021-03-12 2391 Support FB Marketing API v10
0.2.0 2021-03-09 2238 Protocol allows future/unknown properties
0.1.4 2021-02-24 1902 Add include_deleted option in params
0.1.3 2021-02-15 1990 Support Insights stream via async queries
0.1.2 2021-01-22 1699 Add incremental support
0.1.1 2021-01-15 1552 Release Native Facebook Marketing Connector