Send offline conversions to Microsoft Advertising

Microsoft Advertising offline conversions let your brand send conversions that happen away from your website — such as in-store purchases, phone orders, or qualified leads — to Microsoft Advertising. Microsoft Advertising uses these conversions to measure campaign performance, build audiences, and optimize bidding toward the outcomes that matter to your business. Amperity identifies each conversion by a Microsoft click ID (msclkid) or a hashed email address or phone number.

Send offline conversions to Microsoft Advertising to measure campaign performance, build audiences, and optimize bidding toward outcomes that happen away from your website — such as in-store purchases, phone orders, or qualified leads. Each row returned by your query is sent as a single offline conversion, matched to a Microsoft click ID or a hashed customer identifier.

Amperity hashes email and phone identifiers with SHA-256 before sending them; raw identifier values never leave Amperity. See the ApplyOfflineConversions reference for more information.

Beta

The Microsoft Advertising offline conversions connector is currently in beta. Contact your Amperity representative to learn more.

Build a query

Use a query to build a combination of data — typically from the Unified Transactions and Customer 360 tables — that returns one row per offline conversion to send to Microsoft Advertising. Each row must include a conversion goal name, a conversion timestamp, and at least one identifier: a Microsoft click ID, an email address, or a phone number. You can also include an order ID, a conversion value, and a currency code, which Amperity sends with each conversion.

Review the Offline conversion fields section for the columns your query must and may return, and the Operation modes section for how send-conversions and adjust-conversions queries differ.

Note

Microsoft Advertising does not deduplicate offline conversions. Bound your query to new conversions — or use a unique-count conversion goal — so the same conversion is not sent, and counted, more than once.

Operation modes

A destination sends data in one of two operation modes, set by the Operation mode setting:

  • send-conversions uploads new offline conversions to Microsoft Advertising.

  • adjust-conversions restates or retracts conversions that were uploaded previously. A Restate adjustment updates a conversion’s value; a Retract adjustment voids it.

A destination uses a single mode. To both upload and adjust conversions, configure a separate destination for each mode. In adjust-conversions mode, each row must also identify the original conversion with conversion_name, conversion_time, and one of msclkid, email, or phone.

Set up a conversion goal

Before you send offline conversions, create an offline conversion goal in Microsoft Advertising and note its name. The conversion_name column returned by your query must match the goal name exactly, including capitalization.

A new conversion goal can take up to two hours to become available. Until it does, Microsoft Advertising rejects conversions sent to that goal.

Add orchestration

An orchestration defines the relationship between query results and a destination, including the destination and the frequency at which an orchestration runs.

To add an orchestration

  1. Open the Activations page, select the Orchestrations tab, and then click the Add orchestration button. This opens the Add orchestration dialog box.

  2. From the Object type dropdown, select Query.

  3. From the Object dropdown, select the query for which results is sent to Microsoft Advertising.

  4. From the Destination dropdown, select a destination that is configured for sending data to Microsoft Advertising.

  5. Verify all settings.

  6. Set the workflow to Manual. You can change this to automatic later, after verifying the end-to-end workflow.

  7. Click Save.

Run orchestration

Run the orchestration manually to validate that it works.

To run the orchestration

  1. Open the Activations page, select the Orchestrations tab, and then open the menu for the Microsoft Advertising orchestration. Select Run.

  2. The Status column for the orchestration updates to say “Waiting to start”, after which the notifications pane updates to include a notification that shows the current status.

  3. When the orchestration has run successfully, the status is updated to “Completed”.

Data validation

Amperity validates each row before sending and drops rows that Microsoft Advertising would reject, so that one invalid row does not cause an entire batch of conversions to be rejected. Dropped rows are reported as failed with the reason. A row is dropped when:

  • conversion_name or conversion_time is missing.

  • None of msclkid, email, or phone is present.

  • conversion_time cannot be parsed as an ISO 8601 instant with a UTC offset (for example, 2026-07-10T12:00:00Z), or is more than 90 days in the past.

  • In adjust-conversions mode: adjustment_type is not Restate or Retract, adjustment_time is missing or is not later than conversion_time, or a Restate is missing adjustment_value or adjustment_currency_code.

An individual identifier that cannot be used — an email without an @, or a phone number that cannot be normalized — is dropped from that row; the rest of the conversion is still sent when another identifier remains. A non-numeric conversion_value (and its currency_code) is dropped the same way.

Offline conversion fields

The following table describes each column Amperity sends to Microsoft Advertising. A query must return columns with the same name as listed in the “Amperity name” column; Amperity maps them to the Microsoft Advertising field names automatically.

Important

A query must return conversion_name and conversion_time, plus at least one of msclkid, email, or phone to identify the conversion. All other columns are optional; currency_code is sent only when conversion_value is present. In adjust-conversions mode, a query must also return adjustment_type and adjustment_time; Restate adjustments also require adjustment_value and adjustment_currency_code.

Amperity name

Microsoft Advertising field

Description

conversion_name

ConversionName

Required

The name of the offline conversion goal. Case-sensitive — must match the goal in Microsoft Advertising exactly. See Set up a conversion goal.

conversion_time

ConversionTime

Required

When the conversion occurred, as an ISO 8601 instant with a UTC offset (for example, 2026-07-10T12:00:00Z). Values that cannot be parsed, or that are more than 90 days old, are dropped.

msclkid

MicrosoftClickId

Optional

The Microsoft click ID captured from the ad click. One of msclkid, email, or phone is required.

email

HashedEmailAddress

Optional

An email address. Amperity applies SHA-256 hashing before sending. One of msclkid, email, or phone is required.

phone

HashedPhoneNumber

Optional

A phone number. Amperity normalizes the number to E.164 format using the US region and applies SHA-256 hashing before sending. One of msclkid, email, or phone is required.

order_id

ClientId

Optional

Your identifier for the conversion. Include it so the conversion can be restated or retracted later in adjust-conversions mode.

conversion_value

ConversionValue

Optional

A numeric value for the conversion.

currency_code

ConversionCurrencyCode

Optional

A three-character ISO 4217 currency code for conversion_value. Sent only when conversion_value is present.

In adjust-conversions mode, a query returns the same identifying columns, plus the following:

Amperity name

Microsoft Advertising field

Description

adjustment_type

AdjustmentType

Required

Restate to update a conversion’s value, or Retract to void it.

adjustment_time

AdjustmentTime

Required

When the adjustment occurred, as an ISO 8601 instant. Must be later than conversion_time.

adjustment_value

AdjustmentValue

Required for Restate

The new conversion value.

adjustment_currency_code

AdjustmentCurrencyCode

Required for Restate

A three-character ISO 4217 currency code for adjustment_value.