
Configuring Microsoft 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 Microsoft 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 Microsoft Ads data. Click on theMicrosoft Authorization button and log in with your Microsoft account. Grant the necessary permissions for the ad accounts you want to extract data from.
If you are already logged in on a Microsoft Ads account that is different from the one you want to sync data from, make sure to switch to the correct account before authorizing Nekt.
- Manager Account ID: The Manager Account ID identifies the specific manager account you want to sync data from. See the Finding Your Manager Account ID and Customer ID section below for detailed instructions.
- Customer ID: The Customer ID identifies your account in Microsoft Ads. This is different from the Manager Account ID and is required for API authentication. See the Finding Your Manager Account ID and Customer ID section below for detailed instructions.
- Report Timezone: Select the timezone to use for report generation. This determines how dates and times are recorded in your performance reports.
- Start Date: (Optional) The earliest date from which records will be synced. Records created or updated after this date will be extracted.
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.Finding Your Manager Account ID and Customer ID
To connect Microsoft Ads to Nekt, you’ll need two important identifiers: your Manager Account ID and your Customer ID. Here’s how to find them:Step-by-Step Guide
1
Sign in to Microsoft Ads
Go to ads.microsoft.com and sign in with your Microsoft account.
2
Navigate to Settings
Once logged in, click on Settings in the left menu.
3
Locate Your Customer ID
Select Account settings in the left menu, in page you’ll see your Customer ID. It’s a numeric identifier (e.g.,
12345678).Alternatively, you can find the Customer ID in the URL when you’re viewing a specific account. Look for the cid= parameter in the URL.4
Locate Your Manager Account ID
Select Manager account settings in the left menu, in page you’ll see your Manager account ID. It’s a numeric identifier (e.g.,
12345678).Alternatively, you can find the Account ID in the URL when you’re viewing a specific account. Look for the aid= parameter in the URL.Streams and Fields
Below you’ll find all available data streams from Microsoft Ads and their corresponding fields:Accounts
Accounts
Stream for retrieving account information and settings.Key Fields:
Id- Unique identifier for the accountName- Name of the accountNumber- Account numberCurrencyCode- Account currency codeAccountLifeCycleStatus- Lifecycle status of the accountAccountFinancialStatus- Financial status of the accountTimeZone- Account timezone
ParentCustomerId- Parent customer IDPrimaryUserId- The primary user ID for the accountBillToCustomerId- Bill to customer IDPaymentMethodId- Payment method IDPaymentMethodType- Type of payment method
BusinessAddress- Business address details including city, country, postal code, and stateBillingThresholdAmount- Billing threshold amountLanguage- Preferred language of the account
LastModifiedByUserId- ID of the user who last modified the accountLastModifiedTime- The last modified timestampTimeStamp- The time stamp of the accountPauseReason- Reason the account was paused (if applicable)
Campaigns
Campaigns
Stream for managing ad campaigns and their settings.Key Fields:
id- Unique identifier for the campaignname- Name of the campaignstatus- Campaign statuscampaign_type- Type of campaignsub_type- Campaign sub typeparent_id- Account ID
budget- Budget amountbudget_id- Budget IDbudget_name- Budget namebudget_type- Budget type
bid_strategy_type- Bid strategy typebid_strategy_id- Bid strategy IDbid_strategy_name- Bid strategy namebid_strategy_maxcpc- Max CPC for bid strategybid_strategy_targetcpa- Target CPA for bid strategybid_strategy_targetroas- Target ROAS for bid strategybid_strategy_targetadposition- Target ad positionbid_strategy_targetimpressionshare- Target impression sharebid_adjustment- Bid adjustmentmulti_media_ad_bid_adjustment- Multi media ad bid adjustment
language- Languagetarget_setting- Target settingcountry_code- Country code
tracking_template- Tracking templatecustom_parameter- Custom parametersfinal_url_suffix- Final URL suffixurl_expansion_opt_out- URL expansion opt out
website- Website domain for dynamic search adsdomain_language- Domain language for dynamic search adsdynamic_description_enabled- Dynamic description enabledsource- Source for dynamic search adspage_feed_ids- Page feed IDsfeed_label- Feed label
keyword_relevance- Keyword relevance scorelanding_page_relevance- Landing page relevance scorelanding_page_user_experience- Landing page user experience scorequality_score- Quality score
modified_time- Last modified timeexperiment_id- Experiment IDpriority- Campaign prioritystore_id- Store ID
Ad Groups
Ad Groups
Stream for managing ad groups, which control targeting, budget, and scheduling for a group of ads.Key Fields:
id- Unique identifier for the ad groupname- Name of the ad groupparent_id- Campaign IDcampaign- Campaign namestatus- Ad group statusad_group_type- Ad group type (SearchStandard, SearchDynamic, HotelAds)
start_date- Start dateend_date- End datead_schedule_use_searcher_time_zone- Use searcher time zone
network_distribution- Network distributionad_rotation- Ad rotationprivacy_status- Privacy status
cpc_bid- CPC bid amountbid_strategy_type- Bid strategy typeinherited_bid_strategy_type- Inherited bid strategy typebid_boost_value- Bid boost valuebid_option- Bid optionmaximum_bid- Maximum bidbid_adjustment- Bid adjustment
language- Languagetarget_setting- Target settinguse_predictive_targeting- Use predictive targeting
tracking_template- Tracking templatecustom_parameter- Custom parametersfinal_url_suffix- Final URL suffixfrequency_cap_settings- Frequency cap settings
keyword_relevance- Keyword relevance scorelanding_page_relevance- Landing page relevance scorelanding_page_user_experience- Landing page user experience scorequality_score- Quality score
modified_time- Last modified timeclient_id- Client ID for tracking
Ads
Ads
Stream for managing individual ads within an ad set. Supports multiple ad types including Responsive Ads, Responsive Search Ads, Expanded Text Ads, Dynamic Search Ads, Product Ads, App Install Ads, and Text Ads.Key Fields:
id- Unique identifier for the adtype- Ad type (Responsive Ad, Responsive Search Ad, etc.)status- Ad statusparent_id- Ad group IDcampaign- Campaign namead_group- Ad group name
editorial_status- Editorial statuseditorial_appeal_status- Editorial appeal statuseditorial_location- Editorial locationeditorial_reason_code- Editorial reason codeeditorial_term- Editorial termpublisher_countries- Publisher countries
final_url- Final URLmobile_final_url- Mobile final URLtracking_template- Tracking templatecustom_parameter- Custom parametersfinal_url_suffix- Final URL suffixdestination_url- Destination URLdisplay_url- Display URL
title- Title (Text Ad, App Install Ad)title_part_1- Title part 1 (Expanded Text Ad)title_part_2- Title part 2 (Expanded Text Ad)title_part_3- Title part 3 (Expanded Text Ad)text- Ad text/descriptiontext_part_2- Second descriptionpath_1- Path 1path_2- Path 2domain- Domain
headlines- Headlines JSONdescriptions- Descriptions JSON
business_name- Business namecall_to_action- Call to actionheadline- Headlinelong_headline- Long headlinelong_headlines- Long headlines JSONimages- Images JSONlandscape_image_media_id- Landscape image media IDsquare_image_media_id- Square image media IDlandscape_logo_media_id- Landscape logo media IDsquare_logo_media_id- Square logo media ID
app_id- App IDapp_platform- App platform
modified_time- Last modified timedevice_preference- Device preferencead_format_preference- Ad format preference
Keywords
Keywords
Stream for managing keywords within ad groups.Key Fields:
id- Unique identifier for the keywordkeyword- Keyword textmatch_type- Match type (Exact, Phrase, Broad)status- Keyword statusparent_id- Ad group IDcampaign- Campaign namead_group- Ad group name
editorial_status- Editorial statuseditorial_appeal_status- Editorial appeal statuseditorial_location- Editorial locationeditorial_reason_code- Editorial reason codeeditorial_term- Editorial termpublisher_countries- Publisher countries
bid- Bid amountbid_strategy_type- Bid strategy typeinherited_bid_strategy_type- Inherited bid strategy type
param1- Dynamic text parameter 1param2- Dynamic text parameter 2param3- Dynamic text parameter 3
final_url- Final URLmobile_final_url- Mobile final URLtracking_template- Tracking templatecustom_parameter- Custom parametersfinal_url_suffix- Final URL suffixdestination_url- Destination URL (deprecated)
quality_score- Quality scorekeyword_relevance- Keyword relevancelanding_page_relevance- Landing page relevancelanding_page_user_experience- Landing page user experience
modified_time- Last modified timeclient_id- Client ID for tracking
Campaign Performance Report
Campaign Performance Report
Daily performance report for campaigns, including impressions, clicks, spend, conversions, and quality metrics.Time & Identifiers:
time_period- Time period of the report (YYYY-MM-DD format)account_id- Account IDaccount_name- Account namecampaign_id- Campaign IDcampaign_name- Campaign namecampaign_type- Campaign typecampaign_status- Campaign status
device_type- Device type (Computer, Smartphone, Tablet)network- Network (Bing and Yahoo! search, Syndicated search partners)
impressions- Number of impressionsclicks- Number of clicksctr- Click-through rateaverage_cpc- Average cost per clickspend- Total spendaverage_position- Average ad position
conversions- Number of conversionsconversion_rate- Conversion ratecost_per_conversion- Cost per conversionrevenue- Revenue from conversionsreturn_on_ad_spend- Return on ad spend (ROAS)revenue_per_conversion- Average revenue per conversion
quality_score- Quality score (1-10)expected_ctr- Expected CTR ratingad_relevance- Ad relevance ratinglanding_page_experience- Landing page experience rating
assists- Number of assistscost_per_assist- Cost per assistimpression_share_percent- Impression share percentageexact_match_impression_share_percent- Exact match impression share percentage
Ad Group Performance Report
Ad Group Performance Report
Daily performance report for ad groups, with detailed metrics including impression share and quality scores.Time & Identifiers:
time_period- Time period of the report (YYYY-MM-DD format)account_id- Account IDaccount_name- Account namecampaign_id- Campaign IDcampaign_name- Campaign namecampaign_status- Campaign statusad_group_id- Ad Group IDad_group_name- Ad Group namestatus- Ad Group status
device_type- Device type (Computer, Smartphone, Tablet)network- Network (Bing and Yahoo! search, Syndicated search partners)
impressions- Number of impressionsclicks- Number of clicksctr- Click-through rateaverage_cpc- Average cost per clickspend- Total spend
conversions_qualified- Number of qualified conversionsconversion_rate- Conversion ratecost_per_conversion- Cost per conversionrevenue- Revenue from conversionsreturn_on_ad_spend- Return on ad spend (ROAS)revenue_per_conversion- Average revenue per conversion
quality_score- Quality score (1-10)expected_ctr- Expected CTR ratingad_relevance- Ad relevance ratinglanding_page_experience- Landing page experience rating
assists- Number of assistscost_per_assist- Cost per assistimpression_share_percent- Impression share percentageexact_match_impression_share_percent- Exact match impression share percentage
Ad Performance Report
Ad Performance Report
Daily performance report for individual ads, with ad-level metrics and dimensions.Time & Identifiers:
time_period- Time period of the report (YYYY-MM-DD format)account_id- Account IDaccount_name- Account namecustomer_id- Customer IDcustomer_name- Customer name
campaign_id- Campaign IDcampaign_name- Campaign namecampaign_type- Campaign typecampaign_status- Campaign statusad_group_id- Ad Group IDad_group_name- Ad Group namead_group_status- Ad Group status
ad_id- Ad IDad_title- Ad titlead_description- Ad descriptionad_type- Ad typead_status- Ad statusdestination_url- Destination URLdisplay_url- Display URL
device_type- Device type (Computer, Smartphone, Tablet)network- Network (Bing and Yahoo! search, Syndicated search partners)language- Language
impressions- Number of impressionsclicks- Number of clicksctr- Click-through rateaverage_cpc- Average cost per clickspend- Total spend
conversions_qualified- Number of qualified conversionsconversion_rate- Conversion ratecost_per_conversion- Cost per conversionrevenue- Revenue from conversionsreturn_on_ad_spend- Return on ad spend (ROAS)revenue_per_conversion- Average revenue per conversion
assists- Number of assistscost_per_assist- Cost per assisttop_impression_rate_percent- Top impression rate percentageabsolute_top_impression_rate_percent- Absolute top impression rate percentage
Keyword Performance Report
Keyword Performance Report
Daily performance report for keywords, including quality scores, match types, and historical metrics.Time & Identifiers:
time_period- Time period of the report (YYYY-MM-DD format)account_id- Account IDaccount_name- Account namecampaign_id- Campaign IDcampaign_name- Campaign namecampaign_status- Campaign statusad_group_id- Ad group IDad_group_name- Ad group namead_group_status- Ad group status
keyword_id- Keyword IDkeyword- Keyword textkeyword_status- Keyword statusbid_match_type- Bid match type (Exact, Phrase, Broad)delivered_match_type- Delivered match type
device_type- Device type (Computer, Smartphone, Tablet)network- Network (Bing and Yahoo! search, Syndicated search partners)
impressions- Number of impressionsclicks- Number of clicksctr- Click-through rateaverage_cpc- Average cost per clickspend- Total spendaverage_position- Average ad position
conversions- Number of conversionsconversion_rate- Conversion ratecost_per_conversion- Cost per conversionrevenue- Revenue from conversionsreturn_on_ad_spend- Return on ad spend (ROAS)
quality_score- Quality score (1-10)expected_ctr- Expected CTR ratingad_relevance- Ad relevance ratinglanding_page_experience- Landing page experience rating
historical_quality_score- Historical quality scorehistorical_expected_ctr- Historical expected CTR ratinghistorical_ad_relevance- Historical ad relevance ratinghistorical_landing_page_experience- Historical landing page experience rating
current_max_cpc- Current maximum CPC bid
Budget Summary Report
Budget Summary Report
Daily budget tracking report showing monthly budget, daily spend, and month-to-date expenditure.Account Dimensions:
account_name- Account nameaccount_number- Account numberaccount_id- Account ID
campaign_name- Campaign namecampaign_id- Campaign ID
date- Date of the budget data (YYYY-MM-DD format)currency_code- Currency codemonthly_budget- Monthly budget amountdaily_spend- Daily spend amountmonth_to_date_spend- Month-to-date spend amount
User Location Performance Report
User Location Performance Report
Daily geographic performance report with location-based metrics and breakdown by country, state, city, and more.Time & Identifiers:
time_period- Time period of the report (YYYY-MM-DD format)account_id- Account IDaccount_name- Account nameaccount_number- Account numbercampaign_id- Campaign IDcampaign_name- Campaign namecampaign_type- Campaign typead_group_id- Ad group IDad_group_name- Ad group name
location_id- Location IDcountry- Countrystate- State/Provincemetro_area- Metro areacity- Citycounty- Countypostal_code- Postal code
device_type- Device type (Computer, Smartphone, Tablet)network- Network (Bing and Yahoo! search, Syndicated search partners)language- Language
impressions- Number of impressionsclicks- Number of clicksctr- Click-through rateaverage_cpc- Average cost per clickspend- Total spendaverage_position- Average ad position
conversions- Number of conversionsconversion_rate- Conversion ratecost_per_conversion- Cost per conversionrevenue- Revenue from conversionsreturn_on_ad_spend- Return on ad spend (ROAS)revenue_per_conversion- Average revenue per conversion
assists- Number of assistscost_per_assist- Cost per assist
Data Model
The following diagram illustrates the relationships between the core data streams in Microsoft 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 Microsoft Ads data, along with ready-to-use SQL queries that you can run on Explorer.Campaign Performance Analysis
1. Campaign Performance Overview
Track the overall performance of your campaigns, including key metrics and ROI. 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 query
SQL query
- AWS
- GCP
Sample Result
Sample Result
| campaign_name | campaign_type | status | total_spend | total_impressions | total_clicks | total_conversions | total_revenue | avg_ctr | avg_cpc | avg_quality_score | roas |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Summer Sale 2024 | Search | Active | 8,542.30 | 1,245,890 | 42,156 | 1,245 | 24,890.00 | 3.38 | 0.20 | 7.5 | 2.91 |
| Brand Awareness | Audience | Active | 5,686.00 | 3,892,450 | 28,430 | 567 | 11,340.00 | 0.73 | 0.20 | 6.8 | 1.99 |
| Product Launch | Search | Active | 4,998.50 | 892,340 | 31,245 | 892 | 17,840.00 | 3.50 | 0.16 | 8.2 | 3.57 |
| Retargeting | Audience | Active | 3,784.00 | 2,145,670 | 18,920 | 423 | 8,460.00 | 0.88 | 0.20 | 7.1 | 2.24 |
2. Keyword Performance Analysis
Analyze keyword performance to identify top-performing keywords and optimization opportunities. Business Value:- Identify high-performing keywords for increased investment
- Find underperforming keywords for optimization or removal
- Understand match type effectiveness
SQL query
SQL query
- AWS
- GCP
Sample Result
Sample Result
| keyword | bid_match_type | campaign_name | ad_group_name | total_impressions | total_clicks | total_spend | total_conversions | total_revenue | avg_ctr | avg_cpc | avg_quality_score | avg_position | conversion_rate | cost_per_conversion |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| buy laptop online | Exact | Electronics Sale | Laptops | 45,670 | 2,340 | 468.00 | 156 | 15,600.00 | 5.12 | 0.20 | 9 | 1.2 | 6.67 | 3.00 |
| best laptop deals | Phrase | Electronics Sale | Laptops | 38,920 | 1,890 | 378.00 | 98 | 9,800.00 | 4.86 | 0.20 | 8 | 1.5 | 5.19 | 3.86 |
| laptop sale | Broad | Electronics Sale | Laptops | 89,340 | 3,120 | 624.00 | 87 | 8,700.00 | 3.49 | 0.20 | 7 | 2.1 | 2.79 | 7.17 |
3. Geographic Performance Analysis
Analyze performance by user location to identify high-performing regions and optimize geographic targeting. Business Value:- Identify top-performing geographic regions
- Optimize location-based bid adjustments
- Discover new market opportunities
SQL query
SQL query
- AWS
- GCP
Sample Result
Sample Result
| country | state | city | total_impressions | total_clicks | total_spend | total_conversions | total_revenue | avg_ctr | avg_cpc | conversion_rate | roas |
|---|---|---|---|---|---|---|---|---|---|---|---|
| United States | California | Los Angeles | 156,234 | 5,892 | 1,178.40 | 234 | 4,680.00 | 3.77 | 0.20 | 3.97 | 3.97 |
| United States | New York | New York | 142,890 | 5,234 | 1,046.80 | 198 | 3,960.00 | 3.66 | 0.20 | 3.78 | 3.78 |
| United States | Texas | Houston | 98,450 | 3,890 | 778.00 | 145 | 2,900.00 | 3.95 | 0.20 | 3.73 | 3.73 |
| United States | Florida | Miami | 87,340 | 3,245 | 649.00 | 112 | 2,240.00 | 3.72 | 0.20 | 3.45 | 3.45 |
Implementation Notes
Data Quality Considerations
- Performance reports are aggregated daily by default. Use the
time_periodfield for trend analysis. - Quality scores range from 1-10, with higher scores indicating better ad relevance and landing page experience.
- The User Location Performance Report provides granular geographic data down to the postal code level.
API & Performance
- Microsoft Ads uses the Bulk API for entity data (campaigns, ad groups, ads, keywords) and the Reporting API for performance reports.
- Reports are generated asynchronously, which may result in slight delays during extraction.
- For optimal performance, select only the streams necessary for your analysis.
Microsoft Search Network
- Microsoft Ads serves ads across the Microsoft Search Network, including Bing, Yahoo, AOL, and partner sites.
- The
networkdimension in reports indicates where your ads appeared (e.g., “Bing and Yahoo! search” or “Syndicated search partners”).