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.