
Configuring Facebook Ads as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Facebook Ads option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
You’ll need to authorize Nekt to access your Facebook Ads data. Click on theFacebook Authorization
button and log in with your Facebook account. Grant the necessary permissions for the ad accounts you want to extract data from. After authentication, select the specific Ad Account for this source and define a start date for data retrieval. Facebook’s API allows fetching reports up to 36 months in the past.
You can also enable advanced reports for gender, country, age and device platform segmentations, but be aware that this will increase extraction times. Additionally, you can configure attribution windows and lookback periods in the Advanced Settings
.
Once you’re done, click Next.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data) and the type of sync.- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix and make this process faster!
-
Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
- Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can determine when to execute a full sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while. Once you are ready, click Next to finalize the setup.5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.For you to be able to see it on your Catalog, you need at least one successful source run.
Streams and Fields
Below you’ll find all available data streams from Facebook Ads and their corresponding fields:Campaigns
Campaigns
Stream for managing ad campaigns and their settings.Key Fields:
id
- Unique identifier for the campaignname
- Name of the campaignobjective
- The objective of the campaign (e.g., brand awareness, conversions)status
- The status of the campaign (e.g., active, paused)daily_budget
- The daily budget for the campaignlifetime_budget
- The lifetime budget for the campaignstart_time
- The start time of the campaignstop_time
- The stop time of the campaigncreated_time
- When the campaign was createdupdated_time
- When the campaign was last updated
budget_remaining
- The remaining budget for the campaignspend_cap
- Maximum amount that can be spent on the campaignbudget_rebalance_flag
- Whether budget rebalancing is enabledlast_budget_toggling_time
- Last time the budget was modifiedbid_strategy
- The bidding strategy used for the campaign
account_id
- The ID of the ad accountbuying_type
- The buying type of the campaign (e.g., auction, fixed price)configured_status
- The configured status of the campaigneffective_status
- The effective status of the campaignpacing_type
- Array of pacing types for the campaignprimary_attribution
- Primary attribution settingsource_campaign_id
- ID of the source campaign if this is a copyboosted_object_id
- ID of the boosted objecttopline_id
- ID of the topline
special_ad_category
- Category for special ads (e.g., housing, employment)special_ad_categories
- Array of special ad categoriesspecial_ad_category_country
- Array of countries for special ad targeting
can_create_brand_lift_study
- Whether brand lift studies are availablecan_use_spend_cap
- Whether spend caps can be usedhas_secondary_skadnetwork_reporting
- Whether secondary SKAdNetwork reporting is enabledis_skadnetwork_attribution
- Whether SKAdNetwork attribution is enabledsmart_promotion_type
- Type of smart promotionad_strategy_group_id
- ID of the ad strategy groupad_strategy_id
- ID of the ad strategy
adlabels
- Array of labels attached to the campaign, each containing:id
- Label IDname
- Label namecreated_time
- When the label was createdupdated_time
- When the label was last updated
Ad Sets
Ad Sets
Stream for managing ad sets, which control targeting, budget, and scheduling for a group of ads.Key Fields:
id
- Unique identifier for the ad setname
- Name of the ad setcampaign_id
- The ID of the campaign this ad set belongs tostatus
- The status of the ad setdaily_budget
- The daily budget for the ad setlifetime_budget
- The lifetime budget for the ad setstart_time
- The start time of the ad setend_time
- The end time of the ad setcreated_time
- When the ad set was createdupdated_time
- When the ad set was last updated
account_id
- The ID of the ad accountbid_strategy
- The bid strategy for the ad setbid_amount
- The bid amountbid_info
- Detailed bid information including:CLICKS
- Bid for clicksACTIONS
- Bid for actionsREACH
- Bid for reachIMPRESSIONS
- Bid for impressionsSOCIAL
- Bid for social impressions
budget_remaining
- Remaining budgetdaily_min_spend_target
- Minimum daily spend targetlifetime_min_spend_target
- Minimum lifetime spend targetlifetime_spend_cap
- Maximum lifetime spend
billing_event
- The billing event typeoptimization_goal
- The optimization goaloptimization_sub_event
- Sub-event for optimizationpacing_type
- Array of pacing typesdestination_type
- Type of destinationis_dynamic_creative
- Whether dynamic creative is enabledsource_adset_id
- ID of source ad set if this is a copy
targeting
- Complex targeting object containing:age_max
- Maximum ageage_min
- Minimum agegenders
- Array of targeted gendersgeo_locations
- Geographic targeting settingsinterests
- Targeted interestsbehaviors
- Targeted behaviorscustom_audiences
- Custom audience targetingexcluded_custom_audiences
- Excluded custom audiencesdevice_platforms
- Targeted devicespublisher_platforms
- Targeted publishing platformsfacebook_positions
- Ad positions on Facebookinstagram_positions
- Ad positions on Instagramexcluded_publisher_categories
- Excluded publisher categories- And many more targeting options…
learning_stage_info
- Information about the learning stage:status
- Current learning statusconversions
- Number of conversionslast_sig_edit_ts
- Last significant edit timestampattribution_windows
- Array of attribution windows
adlabels
- Array of labels attached to the ad setattribution_spec
- Attribution specificationsreview_feedback
- Review feedbackrf_prediction_id
- RF prediction ID
Ads
Ads
Stream for managing individual ads within an ad set.Key Fields:
id
- Unique identifier for the adname
- Name of the adadset_id
- The ID of the ad set this ad belongs tocampaign_id
- The ID of the campaign this ad belongs tostatus
- The status of the adcreated_time
- When the ad was createdupdated_time
- When the ad was last updated
creative
- The creative object containing:id
- Creative IDcreative_id
- Alternative creative ID reference
tracking_specs
- Array of tracking specifications:application
- Application trackingpost
- Post trackingconversion_id
- Conversion trackingaction_type
- Types of actions to trackfb_pixel
- Facebook pixel tracking- And many more tracking options…
conversion_specs
- Array of conversion specificationsconversion_domain
- Domain for conversions
bid_type
- Type of biddingbid_amount
- Bid amountbid_info
- Detailed bidding information
account_id
- The ID of the ad accounteffective_status
- The effective status of the adconfigured_status
- The configured statuslast_updated_by_app_id
- ID of the app that last updated the adsource_ad_id
- ID of the source ad if this is a copy
recommendations
- Array of recommendations containing:blame_field
- Field causing the issuecode
- Recommendation codeconfidence
- Confidence levelimportance
- Importance levelmessage
- Recommendation messagetitle
- Recommendation title
adlabels
- Array of labels attached to the ad
Creatives
Creatives
Stream for managing ad creatives, which are the visual components of an ad. This stream extracts creative data from the ads stream context, providing incremental sync based on ad updates.
Field Modes: You can configure the extraction level using:Basic Fields (always included):
Basic
(default) - Essential creative fields for faster processingAdvanced
- Includes all media and configuration details
id
- Unique identifier for the creativeaccount_id
- The ID of the ad accountname
- Name of the creativetitle
- The title of the creativebody
- The body text of the creativestatus
- Status of the creativeactor_id
- The ID of the actor (e.g., page) associated with the creativeauthorization_category
- Category for authorizationcall_to_action_type
- Type of call to action buttonenable_direct_install
- Whether direct install is enabledlink_url
- The URL the ad links toobject_id
- ID of the objectobject_type
- Type of objectobject_url
- URL of the objectuse_page_actor_override
- Whether to override the page actor
image_hash
- Hash of the image usedimage_url
- The URL of the image used in the creativevideo_id
- The ID of the video used in the creativethumbnail_id
- ID of the thumbnailthumbnail_url
- URL of the thumbnailplayable_asset_id
- ID of the playable asset
link_destination_display_url
- Display URL for the linklink_og_id
- Open Graph ID for the linkobject_store_url
- Store URL for the objecttemplate_url
- Template URLurl_tags
- URL parameters for tracking
instagram_user_id
- ID of the Instagram userinstagram_permalink_url
- Permalink URL for Instagraminstagram_story_id
- ID of the Instagram storyeffective_instagram_story_id
- Effective ID of the Instagram storyeffective_instagram_media_id
- Effective ID of the Instagram mediasource_instagram_media_id
- Source Instagram media ID
applink_treatment
- Treatment for app linksbranded_content_sponsor_page_id
- ID of the sponsor page for branded contentbundle_folder_id
- ID of the bundle foldercategorization_criteria
- Criteria for categorizationcategory_media_source
- Source of category mediadegrees_of_freedom_spec
- Degrees of freedom specificationdestination_set_id
- ID of the destination setdynamic_ad_voice
- Voice setting for dynamic adseffective_authorization_category
- Effective authorization categoryeffective_object_story_id
- Effective ID of the object storyobject_story_id
- ID of the object storyplace_page_set_id
- ID of the place page set
ad_id
- ID of the parent adad_updated_time
- Last update time of the parent ad (used for incremental sync)
Ad Insights
Ad Insights
Stream for retrieving performance data for ads, ad sets, and campaigns.Identifiers & Time:
ad_id
- The ID of the adadset_id
- The ID of the ad setcampaign_id
- The ID of the campaignaccount_id
- The ID of the ad accountdate_start
- The start date of the datadate_stop
- The stop date of the data
impressions
- Number of times the ad was shownreach
- Number of unique people who saw the adfrequency
- Average number of times each person saw the adclicks
- Number of clicks on the adunique_clicks
- Number of unique clicksctr
- Click-through rate
spend
- Amount spent on the adcpc
- Cost per clickcpm
- Cost per thousand impressionscpp
- Cost per 1,000 people reachedcost_per_unique_click
- Cost per unique clickcost_per_action_type
- Cost per action type
conversions
- Number of conversionscost_per_conversion
- Cost per conversionconversion_rate_ranking
- Ranking of conversion rateconversion_values
- Values of conversionscost_per_conversion
- Cost per conversionwebsite_purchase_roas
- Return on ad spend for website purchasespurchase_roas
- Overall return on ad spend
social_spend
- Spend on social impressionssocial_impressions
- Number of social impressionsactions
- Detailed breakdown of different types of actionsvideo_p25_watched_actions
- Video views at 25%video_p50_watched_actions
- Video views at 50%video_p75_watched_actions
- Video views at 75%video_p95_watched_actions
- Video views at 95%video_p100_watched_actions
- Complete video viewsvideo_avg_time_watched_actions
- Average video watch timevideo_play_actions
- Number of video plays
quality_ranking
- Quality ranking of the adengagement_rate_ranking
- Ranking of engagement ratequality_score_organic
- Organic quality scorequality_score_ectr
- Expected click-through rate scorequality_score_ecvr
- Expected conversion rate score
age
- Age groupgender
- Gendercountry
- Countryregion
- Regiondevice_platform
- Device platform
Data Model
The following diagram illustrates the relationships between the core data streams in Facebook Ads. The arrows indicate the join keys that link the different entities, providing a clear overview of the data structure.Use Cases for Data Analysis
This guide outlines valuable business intelligence use cases when consolidating Facebook Ads data, along with ready-to-use SQL queries that you can run on Explorer.Campaign Performance Analysis
1. Campaign Performance Metrics
Track the overall performance of your campaigns, including detailed conversion metrics. Business Value:- Identify which campaigns deliver the best value for money
- Understand the relationship between quality scores and performance
- Optimize budget allocation based on performance metrics
SQL code
SQL code
2. Creative Performance and Content Analysis
Analyze how different creative elements and content types perform across your campaigns, helping optimize your creative strategy. Business Value:- Identify which creative formats drive the best engagement
- Understand the impact of different call-to-action types
- Optimize creative elements based on performance data
- Guide future creative development with data-driven insights
SQL code
SQL code
3. Time-Based Performance Analysis
Track campaign performance trends over time to identify patterns and optimize campaign timing. Business Value:- Understand daily and weekly performance patterns
- Identify best-performing days and times
- Optimize campaign scheduling and budget pacing
- Track performance trends for better planning
SQL code
SQL code
- Daily performance trends
- Day-of-week patterns
- Performance against typical metrics
- Campaign activity levels
- Spend and conversion efficiency
- Adjust campaign scheduling
- Optimize budget allocation across days
- Identify and investigate performance anomalies
- Plan campaign launches around high-performing periods
- Improve budget pacing strategies