Facebook Ads Reader
Note
This adapter is in preview and is available on Striim Developer only. See Striim Developer for more information.
Facebook Ads is a dynamic online advertising platform from Meta, where businesses craft engaging content through various formats. With precise audience targeting, budget control, and in-depth analytics, advertisers optimize campaigns on Facebook, Instagram, and other platforms, making it an essential tool for comprehensive digital marketing strategies.
The Facebook Ads Reader from Striim reads from the Facebook Ads marketing platform and provides seamless data integration capabilities.
Feature summary
Feature | Supported? | Notes | |
---|---|---|---|
Objects | Standard objects | ✓ | |
Custom objects | ✓ | ||
Authentication | Basic authentication | Username and password | |
OAuth authentication | ✓ | Manual configuration based | |
Custom authentication methods | Not all methods may be supported | ||
Operations | Automated mode | ✓ | |
Initial load | ✓ | ||
Pull-based incremental load | ✓ | ||
Push-based incremental load | |||
Automated pipeline | |||
Governance | Connection profile | ||
Sherlock AI | |||
Sentinel AI | |||
Schema handling | Initial schema creation | ✓ | Works with supported targets |
Schema evolution | |||
Setup | Wizard template | ||
Flow Designer | ✓ | ||
Striim TQL | ✓ | ||
Runtime | Resilience/recovery | ✓ | Recovery is supported for Incremental load. Recovery is based on the |
Parallel execution | |||
Metrics | ✓ | Standard metrics |
Supported authentication method
The Facebook Ads Reader uses the Facebook Graph API to connect to Facebook Ads using OAuth authentication. You can initiate the OAuth flow by creating a connection profile in Striim using the OAuth authentication option. To get the OAuth credentials you create a Facebook app, initiate authentication, receive a code in response from the URL, and request an access token using the client credentials and code.
Create a Facebook application with the following required permissions:
ads_read
user_photos
business_management
email
Use the following URL to initiate authentication and log in to Facebook:
https://www.facebook.com/v21.0/dialog/oauth ?client_id=&<client_id>&scope=&<required_permissions>&redirect_uri=<redirect_url (for example: https://example.com/)>
Get a code from the response URL. For example:
https://example.com/?code=<CODE>
Request an access token using the client ID, client secret, redirect URL and code.
https://graph.facebook.com/v21.0/oauth/access_token?client_id=<>&client_secret=<>&redirect_uri=https://example.com/&code=<CODE>>
Supported objects
The Facebook Ads Reader can read from the following supported tables:
CustomConversions
CustomAudiences
Action_Canvas_Component_Report
Action_Carousel_Card_Report
Action_Conversion_Device_Report
Action_Product_Id_Report
Action_Reactions_Report
Action_Video_Sound_Report
Action_Video_View_Type_Report
AdAccounts
AdCreatives
AdImages
AdInsights
AdInsightsActions
AdLabels
Ads
AdSets
Albums
AuthorizedAdAccounts
Basic_Ad_Report
Basic_Ad_Set_Report
Basic_All_Levels_Report
Basic_Campaign_Report
Businesses
Campaigns
CustomConversions
Delivery_Device_Report
Delivery_Platform_And_Device_Report
Delivery_Platform_Report
Delivery_Purchase_Roas_Report
Demographic_Age_And_Gender_Report
Demographic_Age_Report
Demographic_Country_Report
Demographic_DMA_Region_Report
Demographic_Gender_Report
Demographic_Region_Report
LeadValues
Pages
Permissions
Facebook Ads Reader properties
Property | Type | Default value | Notes |
---|---|---|---|
Access token | Password | The access token for the app registered in Facebook Ads. | |
Client ID | String | Client ID of the private app registered in Facebook Ads. | |
Client secret | Password | Client secret of the private app registered in Facebook Ads. | |
Connection pool size | Integer | 20 | Specifies the maximum number of active connections. |
Connection profile name | String | Used when Select the Facebook Ads Connection Profile from the list | |
Exclude tables | String | A list of tables excluded from read operations. Typically used to create a list of exceptions when the Tables property includes wildcards. Misconfiguration of the Tables and Exclude Tables properties can cause "Invalid table names" errors. | |
Incremental load marker | String | Action_Canvas_Component_Report=DateStart;Action_Carousel_Card_Report=DateStart;Action_Conversion_Device_Report=DateStart;Action_Product_Id_Report=DateStart;Action_Reactions_Report=DateStart;Action_Video_Sound_Report=DateStart;Action_Video_View_Type_Report=DateStart;AdAccounts=CreatedTime;AdImages=CreatedTime;AdInsights=DateStart;AdInsightsActions=DateStart;AdLabels=UpdatedTime;Ads=UpdatedTime;AdSets=UpdatedTime;Albums=UpdatedTime;Basic_Ad_Report=DateStart;Basic_Ad_Set_Report=DateStart;Basic_All_Levels_Report=DateStart;Basic_Campaign_Report=DateStart;Businesses=UpdatedTime;Campaigns=UpdatedTime;CustomAudiences=TimeCreated;CustomConversions=CreationTime;Delivery_Device_Report=DateStart;Delivery_Platform_And_Device_Report=DateStart;Delivery_Platform_Report=DateStart;Delivery_Purchase_Roas_Report=DateStart;Demographic_Age_And_Gender_Report=DateStart;Demographic_Age_Report=DateStart;Demographic_Country_Report=DateStart;Demographic_DMA_Region_Report=DateStart;Demographic_Gender_Report=DateStart;Demographic_Region_Report=DateStart;LeadValues=CreatedTime; | The incremental load marker is a unique incremental column in each object used for incremental load. When no marker is specified, tables are resynced at each polling interval. Specify the name of the column that contains the start position value. This column must meet the following criteria:
|
Migrate schema | Boolean | False | Only available in Initial Load or Automated mode. Set to |
Mode | Select list:
| Initial load | Automated mode applies incremental updates to objects that support incremental load and performs full resyncs for objects that do not support incremental load. |
Polling interval | Integer | 5m (limit: 300/min and 60/min/user) | Specifies an interval as an integer followed by a unit. Supported units are days ( |
Refresh token | Password | An OAuth 2.0 refresh token.Use the value generated while creating the token. | |
Start Position | String | %=-1 | Value of the incremental load marker that defines the initial reading position. |
Tables | String | A semicolon-delimited (;) list of objects to read from the source. Supports the | |
Thread pool count | Integer | 10 | The number of parallel running threads. The default value of zero specifies single-threaded operation. When the value of the thread pool counter is higher than the connection pool size, large data ingestion operations can cause the app to halt. Since best performance is achieved when using one thread for each table being synced, increasing the size of the connection pool to match the number of threads in use is a performance best practice. |
Use connection profile | Boolean | Set to True to use a connection profile instead of specifying the connection properties here. |
Limitations
The following are limitations or notes for the Facebook Ads Reader:
Platform rate limits: Platform rate limits are tracked on an individual application or user level, depending on the type of token used in the request. A rate limit is the number of API calls an app or user can make within a given time period. If this limit is exceeded or if CPU or total time limits are exceeded, the app or user may be throttled. API requests made by a throttled user or app will fail.
Calls within one hour = 200 * Number of users
See Rate Limits in the Facebook documentation for the Graph API.
Business Use Case rate limits depend on the access level: All Marketing API requests, and Pages API requests made with a system or page access token, are subject to Business Use Case (BUC) rate limits, and depend on the endpoints you are querying. See Apps with Standard Access level and Apps with Advanced Access Level.