Shareable link analytics
const url = 'https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/studio/analytics/shares/transactional-url/b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47?period=LAST_30_DAYS';const options = { method: 'GET', headers: {'Wink-Version': '2.0', Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/studio/analytics/shares/transactional-url/b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47?period=LAST_30_DAYS' \ --header 'Authorization: Bearer <token>' \ --header 'Wink-Version: 2.0'Returns one shareable link’s clicks and shares over the last 7, 30 or 90 days: totals, a daily chart, shares by platform, and the top referrers and countries; requires ANALYTICS:READ permission. Events are matched to the managing entity as well as the link, so another account’s link reads as empty. Views are not included: a link opened directly records a click and no view, so the two cannot be compared. Clicks and shares recorded before links were tracked individually are not attributed to any link.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Managing entity identifier (UUID)
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69Shareable link (TransactionalUrl) identifier (UUID)
Example
b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47Query Parameters
Section titled “Query Parameters”Window a single link’s analytics is read over: the last 7, 30 or 90 days, today included.
The window: LAST_7_DAYS, LAST_30_DAYS or LAST_90_DAYS
Example
LAST_30_DAYSHeader Parameters
Section titled “Header Parameters”Responses
Section titled “Responses”The link’s clicks and shares over the window
One link’s clicks, shares and bookings over a window: totals, a daily chart and the top platforms, referrers and countries.
object
When bookings started carrying a source (the analytics.booking-source.tracking-since setting); earlier bookings are not attributed. Null only when source tracking is off.
Revenue of the attributed bookings. Test bookings are excluded.
object
The amount, two decimals.
ISO 4217 currency code.
Bookings attributed to the link. Test bookings are excluded. Bookings made through this link, not guaranteed de-duplicated if a booking event is redelivered.
Attributed bookings that were cancelled. Test bookings are excluded. Counted in the window the cancellation happened, so a window’s bookings minus cancellations can be negative; derive no rate from them.
Revenue of the attributed bookings that were cancelled. Test bookings are excluded. Counted in the window the cancellation happened, so a window’s bookings minus cancellations can be negative; derive no rate from them.
object
The amount, two decimals.
ISO 4217 currency code.
Daily clicks and shares across the window.
object
ISO 4217 currency of the money values plotted on this chart. Null on charts that plot only counts. A chart that mixes money and count series carries the currency for its money series only.
Unique line chart identifier
The configuration options for the chart legend.
object
The legend labels, one entry per series.
The configuration of the chart series. The series type is determined by the value of the type field. If a type value is missing, the chart renders the type that is specified in seriesDefaults. Some options accept functions as arguments. These arguments are evaluated for each point which is supplied as a parameter. If no value is returned, the chart uses the theme or seriesDefaults values.
A named data series for a chart, pairing a display name with its array of numeric data points.
object
The array of data items which represent the series data.
You can set it to:
- Array of numbers. Supported when the series.type option is set to
area,bar,column,donut,pie,line, orwaterfall. The Bubble series need arrays of three values—X value, Y value, and Size value—for example, [1, 1, 10]. The Scatter and ScatterLine series need arrays of two values—X value and Y value. The OHLC and Candlestick series need arrays of four values—open, high, low, and close. The RangeBar and RangeArea series need arrays of two values—the from and to value.
The name of the Chart series which is visible in the legend.
The configuration options for the chart title
object
The text content of the chart title.
The configuration options of the category axis.
object
The category names. The Chart creates a category for every item of the array.
Configuration options for the category (X) axis of the chart, including the list of category names.
object
The category names. The Chart creates a category for every item of the array.
Clicks in the window.
Top visitor countries by clicks plus shares.
One row of a link’s clicks and shares broken down by a dimension (platform, referrer or country).
object
Clicks in this row.
The dimension value: a platform name, a referrer, or a country GeoName id. unknown for events that recorded none; the client translates it.
Display name for the key; the key itself when the dimension has no separate name.
Shares in this row.
End of the window (UTC).
The entity the link points at (the TransactionalUrl id).
The window the figures cover.
Shares by platform, most first.
One row of a link’s clicks and shares broken down by a dimension (platform, referrer or country).
object
Clicks in this row.
The dimension value: a platform name, a referrer, or a country GeoName id. unknown for events that recorded none; the client translates it.
Display name for the key; the key itself when the dimension has no separate name.
Shares in this row.
Top referrers by clicks plus shares.
One row of a link’s clicks and shares broken down by a dimension (platform, referrer or country).
object
Clicks in this row.
The dimension value: a platform name, a referrer, or a country GeoName id. unknown for events that recorded none; the client translates it.
Display name for the key; the key itself when the dimension has no separate name.
Shares in this row.
Shares in the window.
Start of the window (UTC).
Views of the link’s page.
Visits that reached the booking engine through the link.
Example
{ "bookingRevenue": { "amount": 1805, "currency": "USD" }, "bookings": 5, "cancellations": 1, "cancelledRevenue": { "amount": 1805, "currency": "USD" }, "chart": { "currencyCode": "THB", "identifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "legend": { "data": [ "Revenue", "Refunds" ] }, "series": [ { "data": [ 120000, 95000, 148000, 210000, 175000, 230000 ], "name": "Revenue" }, { "data": [ 5000, 3200, 7800, 4100, 6500, 2900 ], "name": "Refunds" } ], "title": { "text": "Monthly Booking Revenue" }, "xAxis": { "data": [ "Jan", "Feb", "Mar", "Apr", "May", "Jun" ] } }, "clicks": 120, "countries": [ { "clicks": 12, "key": "facebook", "label": "facebook", "shares": 3 } ], "platforms": [ { "clicks": 12, "key": "facebook", "label": "facebook", "shares": 3 } ], "referrers": [ { "clicks": 12, "key": "facebook", "label": "facebook", "shares": 3 } ], "shares": 14, "views": 0, "visits": 80}The period is not one of LAST_7_DAYS, LAST_30_DAYS or LAST_90_DAYS
object
object
Example generated
{ "detail": "example", "instance": "https://example.com", "properties": { "additionalProperty": "example" }, "status": 1, "title": "example", "type": "https://example.com"}Unauthorized — authentication is required or the session has expired
object
object
Example generated
{ "detail": "example", "instance": "https://example.com", "properties": { "additionalProperty": "example" }, "status": 1, "title": "example", "type": "https://example.com"}Forbidden — authenticated but lacking the required permission or scope
object
object
Example generated
{ "detail": "example", "instance": "https://example.com", "properties": { "additionalProperty": "example" }, "status": 1, "title": "example", "type": "https://example.com"}Not Found — the requested resource does not exist
object
object
Example generated
{ "detail": "example", "instance": "https://example.com", "properties": { "additionalProperty": "example" }, "status": 1, "title": "example", "type": "https://example.com"}Method Not Allowed — the HTTP verb is not supported on this endpoint
object
object
Example generated
{ "detail": "example", "instance": "https://example.com", "properties": { "additionalProperty": "example" }, "status": 1, "title": "example", "type": "https://example.com"}Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version
object
object
Example generated
{ "detail": "example", "instance": "https://example.com", "properties": { "additionalProperty": "example" }, "status": 1, "title": "example", "type": "https://example.com"}Unsupported Media Type — use application/json
object
object
Example generated
{ "detail": "example", "instance": "https://example.com", "properties": { "additionalProperty": "example" }, "status": 1, "title": "example", "type": "https://example.com"}Internal Server Error — an unexpected failure occurred on the server
object
object
Example generated
{ "detail": "example", "instance": "https://example.com", "properties": { "additionalProperty": "example" }, "status": 1, "title": "example", "type": "https://example.com"}Service Unavailable — a downstream dependency is unreachable
object
object
Example generated
{ "detail": "example", "instance": "https://example.com", "properties": { "additionalProperty": "example" }, "status": 1, "title": "example", "type": "https://example.com"}