Get daily Digital Marketing (Amplify) performance.

Returns Digital Marketing (Amplify) performance per property, day and campaign type: impressions, clicks, spend, attributed reservations and revenue, for the properties named in the required x-property-id header. Covers every requested property or none: if the API key or app cannot access a requested property, the property's account status does not allow API access, or the export is not enabled for it, the whole call fails with HTTP 403, listing the rejected property IDs when the denial can be attributed to specific properties. The token must carry the read:marketingPerformance scope, whatever other access it has: select "Read Digital Marketing performance (clicks, spend, bookings, revenue)" under Marketing Performance when creating the API key, or request the scope in the OAuth app. Up to 50 properties and 90 days per call, and 20 calls per minute per API client (HTTP 429 with a Retry-After header above that). JSON responses are paged with limit and offset over rows sorted by propertyId (as a number), date and campaignType in the order METASEARCH, METASEARCH_MANAGED, PMAX, PMAX_MANAGED, RETARGETING, OTA_TRAVEL_ADS; keep paging until a page has fewer than limit rows. Spend is converted from USD with the daily exchange rate of each row's date, so for past dates it can differ from the Performance Dashboard cards, which use today's rate. Rows of the last 14 days are PROVISIONAL. Accept: text/csv returns the same fields for the whole date range as one CSV document, not paged, with a header row naming each field, where spendUsd, spend and revenue are plain decimal amounts in major currency units (spendUsd in USD, spend and revenue in the currency named by currencyCode) and an omitted field is an empty cell; application/json or an omitted Accept returns JSON; anything else is answered with HTTP 406.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
date
required

First date (YYYY-MM-DD, property-local).

date
required

Last date (YYYY-MM-DD, property-local), at most 89 days after startDate.

string

Restricts the campaign types of the rows, with the field:operator:value syntax: campaignType:in:METASEARCH,RETARGETING or campaignType:equals:PMAX. Several ;-separated filters are ANDed, so campaignType:in:METASEARCH,PMAX;campaignType:equals:PMAX returns PMAX rows only. Campaign type values are case-sensitive. Defaults to every campaign type the property is subscribed to, plus any campaign type with activity in the date range (for example a product the property has since cancelled). Any other field or operator, or an unknown campaign type, is an HTTP 400.

integer
1 to 1000
Defaults to 100

The maximum number of rows to return in a JSON page. Default is 100, at most 1000. JSON only: sent with an Accept that resolves to CSV it is an HTTP 400.

integer
≥ 0
Defaults to 0

The number of rows to skip, in the propertyId, date, campaignType order, before collecting the page. Default is 0. An offset past the last row returns an empty data list. JSON only: sent with an Accept that resolves to CSV it is an HTTP 400.

boolean
Defaults to false

Return total, the number of rows matching the request, ignoring limit and offset. Boolean values are accepted case-insensitively, so true, TRUE, True and 1 all enable it. JSON only: sent with an Accept that resolves to CSV it is an HTTP 400.

Headers
string
required

Comma-separated IDs of the properties to export, at most 50. A missing or empty header is an HTTP 400, and so is a property ID sent in a query or body parameter alongside it.

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
OAuth2
Missing 1 required scope
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
text/csv
application/json
application/problem+json