NextRoll · AsyncAPI Specification
Nextroll S2S Events
Version
View Spec
View on GitHub
CompanyAdvertisingAdTechMarketingAccount Based MarketingRetargetingAudiencesCampaign ManagementAnalyticsReportingMarTechAgentsAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-01'
method: searched
source: https://apidocs.nextroll.com/server-to-server-api/events.html
spec_type: none
spec_type_note: >-
NextRoll publishes NO AsyncAPI document. Probed /asyncapi.yaml and /asyncapi.json on
services.adroll.com, srv.adroll.com and apidocs.nextroll.com — nothing. This file is
a faithful catalogue of the event surface the provider documents in prose, not a
generated AsyncAPI spec. Nothing here is invented.
direction: inbound
direction_note: >-
IMPORTANT for scoring and for agents: this is an event INGESTION surface — the
customer's server sends events TO AdRoll. It is not a webhook/callback surface;
NextRoll publishes no outbound webhook or subscription mechanism, and no `Webhooks`
pointer is wired in apis.yml for that reason.
surface:
name: NextRoll Server-to-Server (S2S) Event API
endpoint: POST https://srv.adroll.com/api
query_parameters:
advertisable: the EID of the advertisable the events belong to (required)
content_type: application/json
batching: an array of events; documented limit of 100 events per request
authentication:
scheme: Server Access Token (SAT)
self_service: false
note: SATs are issued by a NextRoll account manager and shared through a one-time,
seven-day 1Password link.
maturity: 'under active development — "generally stable, it may change. Event
processing is not yet fully complete."'
docs:
overview: https://apidocs.nextroll.com/server-to-server-api/overview.html
events: https://apidocs.nextroll.com/server-to-server-api/events.html
reference: https://apidocs.nextroll.com/server-to-server-api/reference.html
code_examples: https://github.com/AdRoll/server-to-server
envelope:
required:
- advertisable_eid
- pixel_eid
- event_name
- page_location
- ip
- identifiers (at least one of first_party_cookie or adct)
optional:
- event_attributes
- user_agent
- conversion_value
- currency
- timestamp
- device_os
- device_type
- package_app_name
- package_app_version
- external_data
field_notes:
currency: three-letter ISO 4217 codes
timestamp: UTC seconds, decimal point permitted for milliseconds; defaults to now
external_data: JSON string for caller-defined metadata
identifiers:
- id: adct
name: Click ID
description: Unique click token AdRoll appends to the landing-page URL as the `adct`
query parameter when a user clicks an ad.
- id: first_party_cookie
name: First-party cookie
description: Retrieved from the AdRoll pixel via adroll.get_cookie(callback), or
generated by the customer (valid for one year) using the published code examples.
- id: device_id
name: Mobile advertising id
description: Apple IDFA or Google GAID for mobile app events.
- id: email
name: Email (cleartext)
- id: email_sha256
name: Email hashed with SHA-256 of the lowercased address
- id: email_md5
name: Email hashed with MD5 of the lowercased address
- id: user_id
name: Custom user id
description: A stable identifier the customer assigns to a user in their own system.
product_object:
fields: [product_id, product_group, price, quantity, category]
note: price currency must match the event-level `currency` field.
events:
- name: pageView
category: b2c
description: A user viewed a page on the site or app. The default event when no more
specific event applies.
required_attributes: []
optional_attributes: [event_attributes.products]
caution: Do not send an S2S pageView for a page where the AdRoll pixel is already
installed — it double-counts traffic.
- name: homeView
category: b2c
description: A user viewed the homepage.
required_attributes: []
optional_attributes: []
- name: productSearch
category: b2c
description: A user searched for products.
required_attributes: []
optional_attributes: [event_attributes.keywords, event_attributes.products]
- name: addToCart
category: b2c
description: A user added one or more products to the cart.
optional_attributes: [event_attributes.products]
- name: purchase
category: b2c
description: A user completed a purchase.
optional_attributes: [event_attributes.order_id, event_attributes.products]
- name: highValuePage
category: b2b-abm
description: A user viewed a page the advertiser treats as high intent.
- name: gatedContent
category: b2b-abm
description: A user accessed gated content.
- name: demoRequest
category: b2b-abm
description: A user requested a demo.
- name: signupPlan
category: b2b-abm
description: A user signed up for a plan.
- name: signupTrial
category: b2b-abm
description: A user started a trial.
- name: contactSales
category: b2b-abm
description: A user contacted sales.
- name: liveChat
category: b2b-abm
description: A user engaged live chat.
- name: formFill
category: b2b-abm
description: A user submitted a form.
event_count: 13
parallel_surface:
name: AdRoll Pixel v2 JavaScript API
method: adroll.track(eventName, attributes)
note: The same thirteen event names are the supported browser-side events, so the
S2S catalogue and the pixel catalogue are one vocabulary across two transports.
see: components/nextroll-components.yml
mobile:
page_location: >-
Mobile app events build a synthetic URL on a domain the customer controls (it need
not resolve), carrying device_os, device_type, package_app_name and
package_app_version as query parameters, so URL audiences can target app events.
gaps:
- No AsyncAPI document, no JSON Schema for the event envelope, no channel bindings.
- No outbound webhooks or event subscriptions — reporting is pull-only via the GraphQL
Reporting API.
- No documented delivery receipt, retry or deduplication contract for submitted events.