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-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.