# Campaign performance report on Microsoft Advertising

> Tier: recipe. Operating recipe: real tool sequence, core rules, known traps.

Microsoft Advertising: Read campaign results with account scope, native units, date range and evidence of report completeness.

**Intent.** Read campaign results with account scope, native units, date range and evidence of report completeness.

## When to use

- The user requests campaign performance report for a selected Microsoft Advertising account.

## When not to use

- Inferring production delivery or account eligibility from successful sandbox configuration.

## Sources

Required: Microsoft Advertising

## Preconditions

- External assistant access is not enabled yet. This documented workflow requires provider clearance and an enabled, authorized workspace; do not attempt to bypass the access gate.
- Read bing_get_setup_guide and use only the capabilities enabled for this account.
- The account is ticked in the dashboard, confirmed via list_accounts.

## Inputs

- `window`: Analysis window. Default: last 30 days.

## Procedure

1. Verify account, currency and environment. — tools: `bing_health_check`
2. Inventory campaigns with native types and statuses. — tools: `bing_get_campaigns`
3. Select a supported report type and compatible columns. — tools: `bing_get_reporting_schema`
4. Submit the date-bounded report and poll its signed receipt until complete; report truncation. — tools: `bing_get_insights`, `bing_get_report`

## Decision rules

- **When** The report is empty or still processing → **conclude** Report no usable performance evidence; do not declare zero spend or successful delivery.
- **When** Comparing sources with different attribution windows → **conclude** Align or label the windows before drawing an efficiency comparison.

## Evidence requirements

- Every figure carries its account, metric and window.
- Anything below a readable sample size is reported as unjudged, not as zero.

## Human approval boundary

- The readout changes nothing. Any change it motivates goes through Safe Writes: preview, human confirmation, then apply.

## Failure modes

- Preserve Microsoft column units and report currency; do not apply Google or Snapchat microcurrency scaling.
- Campaign type, pagination and truncation can hide entities; state actual coverage.

## Output

- **Readout**: The figures, with windows and accounts named.
- **Flags**: What deserves a deeper skill or a human decision.
