Ellipse Gradient for Header

Microsoft Advertising Integration Guide

Integrate Microsoft Advertising with enterprise systems through SOAP and selected REST APIs, asynchronous reporting and bulk operations, OAuth 2.0, and scheduled Martini workflows.

Microsoft Advertising integration options at a glance

Microsoft Advertising supports SOAP services as a primary integration mechanism for campaign management, customer management, reporting, bulk operations, and advertising insights. Selected capabilities are also available through REST APIs. Bulk campaign changes and reports use asynchronous jobs, polling, and downloadable or uploadable files. OAuth 2.0 works with a developer token, customer ID, account ID, and user permissions. General-purpose webhooks for campaign and reporting changes should not be assumed, so scheduled retrieval, pagination, and change-history queries are commonly used. Martini can orchestrate these calls, transform XML, JSON, and bulk files, apply validation and business rules, and persist results in downstream systems.

Integration pointSupported by Microsoft Advertising?Common use casesHow Martini supports it
SOAP APIsYesCampaign management, customer management, reporting, bulk operations, and advertising insight services use SOAP contracts across much of the Microsoft Advertising API surface.Martini can consume SOAP services, map XML request and response structures, and orchestrate service-specific workflows.
REST APIsLimitedSelected Microsoft Advertising resources and operations are available through REST, but REST does not represent the complete API surface.Martini can consume the required REST operation when the target capability is documented and available.
Bulk and asynchronous operationsYesBulk download and upload jobs support high-volume campaign, ad group, ad, and keyword changes using asynchronous processing and files.Martini can generate or transform bulk files, submit jobs, poll status, process results, and route rejected rows.
Reporting ServiceYesAsynchronous report generation provides campaign, ad group, ad, keyword, search query, and performance data.Martini can submit report requests, persist operation identifiers, poll for completion, download results, transform them, and load downstream systems.
File exchangeLimitedBulk APIs exchange downloadable and uploadable files for large-scale advertising changes; this is not a general attachment API.Martini can process file payloads, validate rows, transform formats, and coordinate file-based bulk workflows.
Pagination and change historyYesPaged retrieval and change-history functionality can support incremental synchronization of campaigns and related advertising objects.Martini can maintain checkpoints, iterate pages, retrieve supported changes, and reprocess an overlap window for delayed updates.
AuthenticationYesOAuth 2.0 uses Microsoft identity platform consent, access and refresh tokens, a developer token, customer ID, account ID, and user permissions.Martini can keep credentials and account context in secured environment configuration and use workflows to refresh and apply authentication values.
Webhooks and outbound callbacksNot confirmedGeneral-purpose notifications for campaign, keyword, ad, and reporting changes are not established by the supplied documentation.Martini can use scheduled triggers and API polling instead; any specific notification feature requires separate Microsoft Advertising confirmation.

How Microsoft Advertising exposes data and business events

Microsoft Advertising SOAP APIs

SOAP services remain a principal Microsoft Advertising integration mechanism for campaign management, customer management, reporting, bulk, and advertising insight operations. Different services can have distinct contracts and request structures.

Martini implementation pattern

Martini implementation pattern: Martini workflows call the required SOAP service, construct authenticated XML requests with customer and account context, parse responses, apply mappings and business rules, and route service errors through controlled handling.

Implementation sequence

Configure OAuth 2.0, developer token, CustomerId, and AccountId
Construct the service-specific SOAP request
Submit the request through a Martini workflow
Parse and validate the XML response
Map objects to the target data model
Apply retry and error-routing rules

Microsoft Advertising REST APIs

Microsoft Advertising provides REST access for selected resources and operations. REST coverage is partial, so the required capability must be verified before choosing this interface.

Martini implementation pattern

Martini implementation pattern: A workflow consumes the documented REST endpoint, refreshes OAuth credentials when necessary, sends the developer and account context, transforms JSON responses, and persists a checkpoint for collection retrieval.

Implementation sequence

Select the documented REST operation
Load secured OAuth and account configuration
Call the REST endpoint
Iterate through response pages
Map JSON fields to the canonical model
Store the synchronization checkpoint

Reporting Service

Microsoft Advertising reporting is asynchronous. A report request is submitted, processed by the service, and made available for download after completion.

Martini implementation pattern

Martini implementation pattern: Martini stores the report operation identifier, schedules or loops through status checks with a maximum duration, downloads the completed report, transforms its dimensions and metrics, and loads the result into a warehouse or application.

Implementation sequence

Submit the report request
Persist the returned operation identifier
Poll until the report is complete
Handle failed or expired report jobs
Download the report file
Transform and load report data

Bulk download and upload

Bulk operations support high-volume campaign management through asynchronous jobs and files rather than individual object updates.

Martini implementation pattern

Martini implementation pattern: Martini retrieves or creates a bulk file, validates and transforms rows, submits the bulk operation, polls for completion, and routes rejected rows or partial results for review.

Implementation sequence

Create or request the bulk operation
Generate or download the bulk file
Validate identifiers and required fields
Submit the bulk upload or download request
Poll the asynchronous operation
Process accepted and rejected rows

Scheduled synchronization and change history

Microsoft Advertising supports paged retrieval and change-history queries for supported objects. These mechanisms can support incremental synchronization but are not a universal event stream.

Martini implementation pattern

Martini implementation pattern: A scheduler starts a workflow that reads the saved checkpoint, retrieves supported changes and pages, applies an overlap window, and commits the new checkpoint only after downstream writes succeed.

Implementation sequence

Start the scheduled synchronization
Read the prior checkpoint and account scope
Retrieve change history and paged collections
Map and reconcile related objects
Write the synchronized results
Commit the checkpoint after successful processing

Common Microsoft Advertising integration patterns

Pattern 1: Sync campaigns and keywords to a CRM

When to use this pattern

Use this pattern when sales and marketing teams need Microsoft Advertising campaign structure, status, and keyword context in a CRM for attribution and planning. It supports scheduled retrieval and optional controlled updates in the opposite direction.

Integration direction
Microsoft Advertising
Martini
Salesforce
Example Mapping
Microsoft Advertising FieldCanonical FieldTarget Field
CampaignIdadvertisingCampaignIdCampaign.ExternalId
CampaignNamecampaignNameCampaign.Name
StatuscampaignStatusCampaign.Status
KeywordTextkeywordCampaignMember.Keyword__c
Martini implementation pattern

A scheduled Martini workflow consumes the applicable SOAP or REST services, retrieves paged campaigns, ad groups, ads, and keywords, maps identifiers into Salesforce objects, applies account and status rules, and writes idempotently. Transient failures are retried with backoff, while rejected records are logged for review.

Martini capabilities used
  • workflows
  • scheduler triggers
  • API consumption
  • data mapping
  • business rules
  • error handling

Pattern 2: Load Microsoft Advertising reports into a warehouse

When to use this pattern

Use this pattern to centralize spend, clicks, impressions, conversions, and other performance dimensions for historical analytics. Reprocessing a recent reporting window helps account for attribution and conversion delays.

Integration direction
Microsoft Advertising
Martini
Snowflake
Example Mapping
Microsoft Advertising FieldCanonical FieldTarget Field
TimePeriodreportDatead_performance.report_date
CampaignIdadvertisingCampaignIdad_performance.campaign_id
Impressionsimpressionsad_performance.impressions
Spendspendad_performance.spend
Martini implementation pattern

Martini submits an asynchronous report, persists the operation ID, polls with timeout controls, downloads the result, parses the report file, validates metrics and dimensions, and loads an incremental warehouse partition. The workflow records the report window and safely retries incomplete jobs.

Martini capabilities used
  • workflows
  • scheduled execution
  • SOAP API consumption
  • file processing
  • data transformation
  • SQL/database integration
  • monitoring

Pattern 3: Apply approved bulk campaign changes

When to use this pattern

Use this pattern when an enterprise planning process approves large-scale budget, bid, keyword, or ad changes. Bulk processing reduces the need to update each advertising object individually.

Integration direction
NetSuite
Martini
Microsoft Advertising
Example Mapping
Microsoft Advertising FieldCanonical FieldTarget Field
ExternalCampaignIdcampaignIdCampaignId
ApprovedBudgetdailyBudgetBudgetAmount
BidAmountbidBidAmount
KeywordkeywordTextKeyword
Martini implementation pattern

Martini receives approved planning data, validates account and object identifiers, generates the required bulk upload file, submits the asynchronous upload, polls for completion, and separates accepted rows from validation failures. Operation IDs and input-file hashes provide duplicate protection during retries.

Martini capabilities used
  • workflows
  • file processing
  • data mapping
  • validation
  • business rules
  • asynchronous orchestration
  • error handling

Pattern 4: Normalize Microsoft Advertising and Google Ads performance

When to use this pattern

Use this pattern when an organization needs a shared reporting layer across advertising channels. The integration should reconcile different naming, status, date, and metric conventions before comparison.

Integration direction
Microsoft Advertising
Martini
Google Ads
Snowflake
Example Mapping
Microsoft Advertising FieldCanonical FieldTarget Field
CampaignIdchannelCampaignIdadvertising_performance.campaign_id
CampaignNamecampaignNameadvertising_performance.campaign_name
Clicksclicksadvertising_performance.clicks
Spendspendadvertising_performance.spend
Martini implementation pattern

Martini retrieves Microsoft Advertising reports and Google Ads data, maps both sources into a canonical advertising schema, applies channel and currency rules, reconciles account identifiers, and writes the normalized result. Validation catches incompatible dimensions, while workflow retries and checkpoints protect each source independently.

Martini capabilities used
  • API consumption
  • workflows
  • data mapping
  • canonical modeling
  • business rules
  • error handling
  • database integration

Applications commonly integrated with Microsoft Advertising

Microsoft Advertising data can be connected to CRM, analytics, finance, and marketing platforms to coordinate campaign operations, attribution, budgeting, and cross-channel reporting. These are implementation-specific enterprise integration targets rather than claims of native Microsoft Advertising integrations.

Application Scenario Direction Martini Pattern
Salesforce Connect campaigns and advertising performance with lead, opportunity, and attribution reporting. Microsoft Advertising → Martini → Salesforce Schedule SOAP or REST retrieval, normalize campaign and performance data, apply attribution and account-matching rules, and write mapped results to Salesforce with retry and duplicate controls.
Microsoft Dynamics 365 Align advertising activity with Microsoft sales and marketing processes and customer data. Microsoft Advertising → Martini → Microsoft Dynamics 365 Use scheduled API workflows to retrieve campaigns and reports, map account and campaign identifiers to Dynamics data, and route approved updates through controlled API operations.
Google Ads Normalize Microsoft Advertising and Google Ads performance for cross-channel comparison. Microsoft Advertising → Martini → Google Ads Retrieve data from both advertising APIs, map each source into a canonical campaign schema, reconcile dimensions and metrics, and expose or load the combined result for reporting.
Snowflake Store historical spend, clicks, impressions, conversions, and campaign performance for analytics and forecasting. Microsoft Advertising → Martini → Snowflake Submit and poll Microsoft Advertising reports, transform downloaded files into warehouse-ready rows, validate schema and time windows, and load incremental partitions.
Microsoft Fabric Combine advertising performance with customer, sales, and finance data in a Microsoft analytics environment. Microsoft Advertising → Martini → Microsoft Fabric Run scheduled reporting workflows, normalize report dimensions and metrics, and deliver validated datasets to the Fabric data platform through its supported ingestion interface.
NetSuite Compare advertising spend and campaign performance with financial planning, budgeting, and customer data. Microsoft Advertising → Martini → NetSuite Retrieve reports and campaign metadata, map account and period identifiers to NetSuite structures, apply reconciliation rules, and write approved financial integration data.
HubSpot Relate advertising activity to contacts, campaigns, and marketing attribution. Microsoft Advertising → Martini → HubSpot Schedule performance retrieval, map campaign identifiers and attribution fields to HubSpot objects, and use checkpointed writes with validation and retry handling.

How to build a Microsoft Advertising integration in Martini

Objective

Establish Microsoft Advertising access with the required OAuth 2.0 application configuration, developer token, customer ID, account ID, and user permissions.

Instructions in Martini

  • Store client credentials, refresh tokens, developer tokens, and account identifiers in secured environment configuration.
  • Choose the SOAP service or documented REST capability required by the integration.
  • Keep account-level configuration separate when processing multiple Microsoft Advertising accounts.

Objective

Select a scheduled, API-led, or controlled workflow trigger based on the vendor's request/response and asynchronous operating model.

Instructions in Martini

  • Use a scheduler for reporting, change-history, and incremental synchronization.
  • Use an API endpoint when another system must submit approved campaign changes.
  • Do not assume a general-purpose Microsoft Advertising webhook is available.

Objective

Call the selected Microsoft Advertising service and handle pagination, asynchronous operation identifiers, and report or bulk files.

Instructions in Martini

  • Iterate through collection pages until no additional pages remain.
  • Persist report or bulk operation identifiers before polling.
  • Apply maximum polling durations and handle failed, expired, or partially completed jobs.

Objective

Coordinate API calls, polling, file processing, enrichment, and downstream writes as a maintainable Martini workflow.

Instructions in Martini

  • Separate authentication, retrieval, transformation, and persistence responsibilities.
  • Use reusable workflow logic for account scope, polling, and common error handling.
  • Record correlation IDs, account context, and synchronization windows.

Objective

Transform Microsoft Advertising SOAP XML, REST JSON, report files, or bulk files into the target model and validate required values.

Instructions in Martini

  • Map Customers, Accounts, Campaigns, Ad groups, Ads, Keywords, and Reports using stable identifiers.
  • Normalize status, dates, metrics, currencies, and service-specific enumerations.
  • Validate required fields and route invalid bulk rows or report data for review.

Objective

Enforce account ownership, attribution, deduplication, budget approval, and incremental synchronization rules before writing data or changes.

Instructions in Martini

  • Use stable Microsoft Advertising identifiers and operation IDs for idempotent processing.
  • Apply approved-change rules before generating bulk uploads.
  • Reprocess a recent reporting overlap window where attribution or conversion data can be delayed.

Common Microsoft Advertising data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
CustomersRepresent advertising organizations and the customer context containing one or more accounts.Salesforce, Microsoft Dynamics 365, NetSuiteMartini retrieves customer data through the relevant SOAP or REST service, maps customer identifiers and permissions, and stores account context for downstream workflows.
AccountsContain campaigns, budgets, billing configuration, and account-level settings.Salesforce, Microsoft Dynamics 365, finance platforms, SQL databasesMartini uses CustomerId and AccountId as scoped configuration, retrieves account data, and applies account-specific routing and validation.
CampaignsDefine budgets, targeting strategy, bidding configuration, and campaign status.Salesforce, HubSpot, Microsoft Dynamics 365, data warehousesMartini retrieves or updates campaigns through the applicable service, maps identifiers and status values, and enforces business rules before writes.
Ad groupsOrganize ads and keywords around a targeting theme within a campaign.CRM platforms, analytics platforms, SQL databasesMartini preserves campaign and ad-group relationships, transforms nested SOAP or report structures, and manages incremental synchronization.
AdsRepresent advertising creatives delivered through campaigns and ad groups.Salesforce, HubSpot, shared reporting storesMartini validates creative and status fields, maps them to canonical marketing structures, and handles service-specific XML or JSON formats.
KeywordsRepresent search or targeting terms used to trigger ads and determine bids.Salesforce, data warehouses, planning systemsMartini synchronizes keyword identifiers, bids, status, and hierarchy, with duplicate controls for updates and bulk operations.

Authentication and security considerations

OAuth 2.0 and application consent

Microsoft Advertising integrations generally use Microsoft identity platform OAuth 2.0 authorization. Access tokens are sent as bearer tokens and refresh tokens support continued access without repeated user authorization.

Application and account context

Requests commonly require a developer token, CustomerId, and AccountId in addition to OAuth credentials. The authenticated user must have permission to access the relevant customer and account.

Martini configuration

  • Store client credentials, refresh tokens, developer tokens, customer identifiers, and account identifiers in secured environment configuration.
  • Keep account-level configuration isolated when workflows process multiple advertising accounts.
  • Do not embed secrets in workflow definitions, mappings, files, or source-controlled assets.

Operational considerations for Microsoft Advertising integrations

Rate limits and pagination

Use controlled concurrency, backoff for throttling, and page iteration for collection operations. Do not assume one request returns all campaigns, ad groups, ads, or keywords.

Asynchronous jobs

Reporting and bulk workflows need persisted operation IDs, polling delays, maximum durations, and handling for failed, expired, or partial results.

Idempotency and checkpoints

Use stable object identifiers, operation IDs, input-file hashes, and synchronization checkpoints to avoid duplicate updates. Commit checkpoints only after downstream writes succeed.

Data consistency

Change history has a supported time window, and reporting metrics may change as attribution and conversions arrive. Reprocess a recent overlap window and account for deleted or related objects.

Transformation and schema changes

SOAP responses, report files, and bulk files can contain nested structures, enumerations, and service-specific types. Validate unexpected fields and enum values while tolerating additive fields where possible.

Testing and monitoring

Test each Microsoft Advertising service contract and account scope separately. Monitor authentication refreshes, polling timeouts, throttling, rejected bulk rows, report freshness, and downstream write failures.

Why use Martini instead of scripts or point-to-point integrations?

Orchestration beyond scripts

Microsoft Advertising integrations combine SOAP and REST calls, paginated retrieval, asynchronous polling, report downloads, bulk files, and downstream persistence. Martini coordinates these stages in workflows instead of leaving state and retry behavior inside one-off scripts.

Reusable transformation and business rules

Martini provides reusable mappings, validation, transformations, account routing, and canonical models for campaign and reporting data. This helps separate vendor-specific service contracts from downstream application models.

Controlled operations

Martini can expose APIs for approved change requests, schedule synchronization, protect credentials through environment configuration, and apply consistent error handling, checkpoints, retries, and monitoring across accounts.

Maintainability

Separating retrieval, polling, transformation, and persistence makes changes to Microsoft Advertising services or target systems easier to test and deploy than tightly coupled point-to-point scripts.

Frequently asked questions

How can Microsoft Advertising be integrated with enterprise systems?

Microsoft Advertising can be integrated through its SOAP services, selected REST APIs, asynchronous Reporting Service, Bulk download and upload operations, paginated retrieval, and supported change-history queries. OAuth 2.0, a developer token, customer and account identifiers, and appropriate user permissions are typically required.

Can Martini integrate with Microsoft Advertising?

Yes. Martini can consume Microsoft Advertising SOAP services and selected REST APIs, orchestrate asynchronous reporting and bulk jobs, process XML, JSON, and bulk files, schedule synchronization, and write normalized results to applications or supported SQL databases.

Do I need a connector to integrate Microsoft Advertising with Martini?

No. A dedicated Microsoft Advertising connector is not required. Martini can use Microsoft Advertising's documented SOAP and REST APIs, OAuth 2.0 authentication, asynchronous reporting and bulk operations, files, pagination, and change-history capabilities.

Is there any extra Lonti cost to integrate Microsoft Advertising with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Microsoft Advertising. The integration is subject to the provisioned capacity of the Martini environment. Microsoft Advertising, cloud infrastructure, database services, and other third-party systems may have separate subscription or usage charges.

Should a new Microsoft Advertising integration use REST or SOAP?

Use REST when the required Microsoft Advertising resource and operation are documented there. SOAP remains a primary mechanism for many campaign management, customer management, reporting, bulk, and advertising insight capabilities, so the choice should be made per operation rather than for the vendor as a whole.

Are Microsoft Advertising webhooks or event notifications available?

General-purpose webhooks for every campaign, ad, keyword, or reporting change should not be assumed from the supplied documentation. The safer synchronization model is scheduled API retrieval, asynchronous job polling, and change-history queries unless a specific Microsoft Advertising feature documents an applicable notification mechanism.

How does synchronization with Microsoft Advertising handle reports and large updates?

Reporting and bulk operations are asynchronous. Martini can submit a job, persist its operation identifier, poll with a timeout and delay, download or create the relevant file, transform the data, and process accepted, rejected, failed, or partially completed results.

How does Martini handle Microsoft Advertising mapping, errors, and duplicates?

Martini can map SOAP XML, REST JSON, reporting output, and bulk files into canonical or target models, then apply validation and business rules. Workflows can use stable account and object identifiers, operation IDs, file hashes, checkpoints, backoff, retries, and error routing to reduce duplicates and make failures recoverable.