Skip to content
Book a demoStart free
Connectors

Microsoft Advertising connector

Set up the Microsoft Advertising connector in Kaivo: authentication, configuration, the 4 BigQuery tables it syncs, and answers to common questions.

Microsoft Advertising connector pricing, tier and credits on kaivo.io

Kaivo is a fully managed data platform that syncs your Microsoft Advertising data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your marketing and sales data instead of moving it.

What is the Microsoft Advertising connector

Section titled “What is the Microsoft Advertising connector”

Sync your Microsoft Advertising accounts, campaigns, ad groups, and ads into BigQuery with Kaivo to report search spend next to your other channels.

CategoryMarketing & Sales
AuthenticationOAuth
SetupOn request, contact us to enable it

Getting started with the Microsoft Advertising connector

Section titled “Getting started with the Microsoft Advertising connector”
  1. Sign up for Kaivo and create a workspace.
  2. Ask us to enable the Microsoft Advertising connector for your workspace. You can reach our team from the chat in the app.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Connect by signing in to your Bing Ads account. Kaivo runs the connection for you, so you never share a password.

Configuring the Microsoft Advertising connector

Section titled “Configuring the Microsoft Advertising connector”

When you set up the connector, you provide:

Field Description
Start date
Any data before this date will not be fetched.

|

Tables and columns synced from Microsoft Advertising

Section titled “Tables and columns synced from Microsoft Advertising”

Kaivo syncs 4 tables from Microsoft Advertising into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

accounts (42 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
id INT64 ID of the account
account_financial_status STRING The financial status of the account
account_life_cycle_status STRING The life cycle status of the account
auto_tag_type STRING The type of auto-tagging
account_mode STRING The mode of the account
forward_compatibility_map STRING Map for forward compatibility
payment_method_type STRING Type of the payment method
language STRING The language used in the account
linked_agencies__id INT64 ID of the linked agency
linked_agencies__name STRING Name of the linked agency
tax_information STRING Tax information of the account
currency_code STRING The currency code used by the account
time_zone STRING The time zone of the account
business_address__city STRING The city of the business address
business_address__country_code STRING The country code of the business address
business_address__id INT64 ID of the business address
business_address__line1 STRING Address line 1
business_address__line2 STRING Address line 2
business_address__line3 STRING Address line 3
business_address__line4 STRING Address line 4
business_address__postal_code STRING The postal code of the business address
business_address__state_or_province STRING The state or province of the business address
business_address__time_stamp STRING Timestamp of the business address
business_address__business_name STRING The business name
back_up_payment_instrument_id INT64 ID of the backup payment instrument
billing_threshold_amount FLOAT64 The threshold amount for billing
bill_to_customer_id INT64 Customer ID for billing
last_modified_by_user_id INT64 ID of the user who last modified the account
last_modified_time TIMESTAMP The date and time of the last modification
name STRING The name of the account
number STRING The account number
parent_customer_id INT64 ID of the parent customer
pause_reason INT64 Reason for pausing the account
payment_method_id INT64 ID of the payment method
primary_user_id INT64 ID of the primary user
sales_house_customer_id INT64 Customer ID for sales house
sold_to_payment_instrument_id INT64 ID of the payment instrument for sales
time_stamp STRING Timestamp of the account
tax_certificate__tax_certificate_blob_container_name STRING
tax_certificate__status STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: accounts__tax_certificate__tax_certificates

Section titled “Subtable: accounts__tax_certificate__tax_certificates”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
key STRING
value STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
ad_groups (31 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
campaign_id INT64 The unique identifier of the campaign to which the ad group belongs.
account_id INT64 The unique identifier of the account to which the ad group belongs.
customer_id INT64 The unique identifier of the customer to which the ad group belongs.
ad_rotation__end_date STRING The end date for the ad rotation period.
ad_rotation__start_date STRING The start date for the ad rotation period.
ad_rotation__type STRING The type of ad rotation strategy being used.
audience_ads_bid_adjustment FLOAT64 The bid adjustment for audience-based ads.
bidding_scheme__type STRING The type of bidding strategy being used.
bidding_scheme__inherited_bid_strategy_type STRING The inherited bid strategy type from the parent campaign.
cpc_bid__amount FLOAT64 The amount of the cost-per-click bid.
cpv_bid__amount FLOAT64 The amount of the cost-per-view bid.
cpm_bid__amount FLOAT64 The amount of the cost-per-thousand-impressions bid.
end_date__day INT64 The day part of the end date.
end_date__month INT64 The month part of the end date.
end_date__year INT64 The year part of the end date.
final_url_suffix STRING A string to append to the final URL.
id INT64 The unique identifier of the ad group.
language STRING The language targeting setting for the ad group.
name STRING The name of the ad group.
network STRING The network targeting setting for the ad group.
privacy_status STRING The privacy status of the ad group.
start_date__day INT64 The day part of the start date.
start_date__month INT64 The month part of the start date.
start_date__year INT64 The year part of the start date.
status STRING The status of the ad group.
tracking_url_template STRING The tracking URL template for the ad group.
ad_schedule_use_searcher_time_zone BOOL Indicates whether ad scheduling uses the searcher’s time zone.
ad_group_type STRING The type of the ad group (e.g., Search, Display, Video, etc).
multimedia_ads_bid_adjustment INT64 The bid adjustment for multimedia ads.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: ad_groups__forward_compatibility_map

Section titled “Subtable: ad_groups__forward_compatibility_map”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
key STRING The key of the compatibility pair.
value STRING The value of the compatibility pair.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
type STRING The type of setting.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: ad_groups__url_custom_parameters__parameters

Section titled “Subtable: ad_groups__url_custom_parameters__parameters”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
key STRING The key of the custom parameter.
value STRING The value of the custom parameter.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
ads (33 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
ad_group_id INT64 The unique identifier for the ad group to which the ad belongs
account_id INT64 The unique identifier for the account associated with the ad
customer_id INT64 The unique identifier for the customer associated with the ad
ad_format_preference STRING Preference for the ad format
device_preference INT64 Preference for the device on which the ad should be displayed
editorial_status STRING The editorial review status of the ad
business_name STRING The name of the business or entity associated with the ad
call_to_action STRING The call-to-action message for the ad
call_to_action_language STRING The language used for the call-to-action message
headline STRING The headline of the ad
long_headline__asset__id INT64 The unique identifier for the asset
long_headline__asset__name INT64 The name of the asset
long_headline__asset__type INT64 The type of the asset
long_headline__asset_performance_label STRING Label indicating the performance of the asset
long_headline__editorial_status STRING The editorial review status of the asset
long_headline__pinned_field STRING Indicates if the field is pinned
long_headline_string STRING The long headline content as a string
text STRING The text content of the ad
text_part2 STRING The second part of the text content for the ad
title_part1 STRING The first part of the ad title
title_part2 STRING The second part of the ad title
title_part3 STRING The third part of the ad title
final_app_urls JSON Final URLs for mobile app links
final_url_suffix STRING Suffix to append to the final URL
id INT64 The unique identifier for the ad
status STRING The status of the ad
tracking_url_template STRING Template for tracking URLs
type STRING The type of ad
domain STRING The domain associated with the ad
path1 STRING The first part of the display URL path
path2 STRING The second part of the display URL path
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
asset__id INT64 The unique identifier for the asset
asset__name STRING The name of the asset
asset__type STRING The type of the asset
asset__text STRING The text content of the asset
asset_performance_label STRING Label indicating the performance of the asset
editorial_status STRING The editorial review status of the asset
pinned_field STRING Indicates if the field is pinned
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
asset__id INT64 The unique identifier for the asset
asset__name STRING The name of the asset
asset__type STRING The type of the asset
asset__text STRING The text content of the asset
asset_performance_label STRING Label indicating the performance of the asset
editorial_status STRING The editorial review status of the asset
pinned_field STRING Indicates if the field is pinned
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
asset__id INT64 The unique identifier for the asset
asset__name STRING The name of the asset
asset__type STRING The type of the asset
asset__text STRING The text content of the asset
asset_performance_label STRING Label indicating the performance of the asset
editorial_status STRING The editorial review status of the asset
pinned_field STRING Indicates if the field is pinned
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value STRING Final mobile URL
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value STRING Final URL
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
key STRING Key for the compatibility map
value STRING Value for the compatibility map
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: ads__url_custom_parameters__parameters

Section titled “Subtable: ads__url_custom_parameters__parameters”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
key STRING Parameter key
value STRING Parameter value
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
asset__id INT64 The unique identifier for the asset
asset__name STRING The name of the asset
asset__type STRING The type of the asset
asset__text STRING The text content of the asset
asset_performance_label STRING Label indicating the performance of the asset
editorial_status STRING The editorial review status of the asset
pinned_field STRING Indicates if the field is pinned
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
asset__id INT64 The unique identifier for the asset
asset__name STRING The name of the asset
asset__type STRING The type of the asset
asset__text STRING The text content of the asset
asset_performance_label STRING Label indicating the performance of the asset
editorial_status STRING The editorial review status of the asset
pinned_field STRING Indicates if the field is pinned
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
campaigns (21 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
account_id INT64 The unique identifier of the account associated with the campaign.
customer_id INT64 The unique identifier of the customer associated with the campaign.
audience_ads_bid_adjustment FLOAT64 Bid adjustment value for audience targeting ads.
bidding_scheme__type STRING The type of bidding strategy used for the campaign.
bidding_scheme__max_cpc__amount FLOAT64 The maximum cost-per-click bid for the campaign.
budget_type STRING The type of budget (e.g., daily, monthly) for the campaign.
multimedia_ads_bid_adjustment FLOAT64 Bid adjustment value for multimedia ads.
daily_budget FLOAT64 The daily budget amount set for the campaign.
experiment_id FLOAT64 The identifier of the experiment linked to the campaign.
final_url_suffix STRING The final URL suffix appended to campaign URLs.
id FLOAT64 The unique identifier of the campaign.
name STRING The name of the campaign.
status STRING The status of the campaign (e.g., Active, Paused).
sub_type STRING The subtype of the campaign, providing additional context.
time_zone STRING The time zone setting for the campaign.
tracking_url_template STRING The tracking URL template used for the campaign.
campaign_type STRING The type of campaign (e.g., Search, Display, Video) being run.
budget_id FLOAT64 The identifier of the budget associated with the campaign.
ad_schedule_use_searcher_time_zone BOOL Indicates whether ad schedules should be based on the searcher’s time zone.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: campaigns__forward_compatibility_map

Section titled “Subtable: campaigns__forward_compatibility_map”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
key STRING The key identifying a forward compatibility setting.
value STRING The value associated with the forward compatibility setting.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: campaigns__url_custom_parameters__parameters

Section titled “Subtable: campaigns__url_custom_parameters__parameters”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
key STRING The key parameter for URL customization.
value STRING The value parameter for URL customization.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
type STRING The type of setting applied to the campaign.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: campaigns__settings__setting__details__target_setting_detail

Section titled “Subtable: campaigns__settings__setting__details__target_setting_detail”
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
criterion_type_group STRING The group type for targeting.
target_and_bid BOOL Indicates whether targeting is set to ‘Bid only’ or ‘Target and bid’.
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
Column Type Description
_kaivo_parent_id STRING Foreign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
value STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where Microsoft Advertising supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won’t get duplicate rows.

How long does the initial sync take for Microsoft Advertising?

Section titled “How long does the initial sync take for Microsoft Advertising?”

It depends on how much history is in your Microsoft Advertising account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they’re much faster.

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don’t select are never copied to your warehouse.

What happens when Microsoft Advertising’s schema changes?

Section titled “What happens when Microsoft Advertising’s schema changes?”

New fields are never added automatically. You choose which fields to sync, so data you haven’t selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table’s sync mode: full-refresh tables always match what’s currently in Microsoft Advertising, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Section titled “How do I handle GDPR or data deletion requests?”

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in Microsoft Advertising instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the Microsoft Advertising connector in Kaivo and all of its synced data is deleted with it.

Common use cases for Microsoft Advertising data

Section titled “Common use cases for Microsoft Advertising data”

Use campaigns, ad_groups, and ads to see how each account is organised and where budget sits.

Report Microsoft Advertising next to Google Ads in one model instead of two dashboards.

Use accounts to track spend across every account you manage from one place.

Use Microsoft Advertising data in your AI and BI tools

Section titled “Use Microsoft Advertising data in your AI and BI tools”

Once Microsoft Advertising data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here’s how the most common destinations work with Microsoft Advertising data.

Use Kaivo’s MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Microsoft’s BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

The premium analytics standard, with native BigQuery integration. Setup guide →

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Connect via Power Query’s BigQuery connector. Setup guide →

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for Microsoft Advertising connector pricing and plan details.