NextRoll · AsyncAPI Specification

Nextroll S2S Events

Version

View Spec View on GitHub CompanyAdvertisingAdTechMarketingAccount Based MarketingRetargetingAudiencesCampaign ManagementAnalyticsReportingMarTechAgentsAsyncAPIWebhooksEvents

AsyncAPI Specification

nextroll-s2s-events.yml Raw ↑
generated: '2026-08-14'
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)
    dry_run: >-
      optional; with a value of true the payload is validated and logged but does not
      impact audiences or attribution. The only validate-only mode NextRoll documents
      on any service — see conventions/nextroll-conventions.yml#dry_run.
  content_type: application/json
  batching: an array of events; documented limit of 100 events per request
  compression: 'HTTP compression (gzip) is supported to reduce request size.'
  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.

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/nextroll-s2s-events"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.