VWO

VWO (Visual Website Optimizer) is an experimentation, personalisation, and behavioural-analytics platform. Its Data360 module collects custom events that you turn into Metrics for A/B test goals, funnel reports, and segmentation.

Datafly Signal delivers events to VWO Data360 server-to-server from your own first-party domain. Each event is attributed to the visitor by their VWO UUID (the _vwo_uuid first-party cookie), arrives as a Data360 custom event, and carries page context plus your event properties. No browser-side VWO tracking call is required for the events Signal sends.

Why route VWO through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach VWO even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • One consent decision governs every destination. VWO is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

  • A VWO account with the Data360 module enabled.
  • Your numeric VWO Account ID (dashboard URL or Account → Settings).
  • VWO SmartCode installed on your site so the _vwo_uuid cookie is set for each visitor. Signal needs a real VWO UUID to attribute the event; events without one are not sent.
  • The custom event(s) you intend to send created in the Data360 module first, with a Metric built on each. Event names must match exactly: alphanumeric plus hyphen/underscore, max 40 characters.
  • Knowledge of your VWO data center (US, EU, or India) — calls to the wrong region are rejected.

Configuration

FieldRequiredDescription
VWO Account IDYesNumeric account ID, sent as the a query parameter on every event.
Data CenterYesus (default), eu, or in. Signal sends EU accounts to the /eu01 path and India accounts to /as01; the wrong choice causes rejected calls.

Configure in Signal

  1. In your Signal management UI, add a new VWO integration under Personalisation.
  2. Enter your VWO Account ID and select your Data Center.
  3. Attach the VWO blueprint to your pipeline and choose the Default preset.
  4. Ensure Datafly.js collects the _vwo_uuid cookie as the collected ID vwo_uuid (read as collected_ids.vwo_uuid).
  5. Map any extra event properties you want to surface in VWO; they are forwarded under event.props.
  6. Save and deploy the pipeline.

API Endpoint

Signal POSTs each event to VWO Data360’s event-collection endpoint:

POST https://dev.visualwebsiteoptimizer.com/events/t?en=<eventName>&a=<accountId>

For non-US accounts, a regional prefix is added automatically based on your Data Center setting:

Data CenterEndpoint
UShttps://dev.visualwebsiteoptimizer.com/events/t
EUhttps://dev.visualwebsiteoptimizer.com/eu01/events/t
Indiahttps://dev.visualwebsiteoptimizer.com/as01/events/t

The endpoint is authorized by Account ID (the a query parameter); there is no separate API token on this ingestion path.

Identity Signals

VWO attributes each server-side event to a visitor using their VWO UUID:

SignalSourceVWO field
VWO UUID_vwo_uuid cookie, collected by Datafly.js as vwo_uuidd.visId (required: events without it are not sent)
Message IDVWO UUID and event time in millisecondsd.msgId (<uuid>-<ms>)
Session IDevent time in secondsd.sessionId

Because matching is by the first-party VWO UUID, no personal data is sent.

Event Mapping

Signal’s canonical event names map to VWO Data360 custom event names, sent as d.event.name:

Signal eventVWO custom event
pagepageView
searchsearch
view_itemproductViewed
content_viewedcontentViewed
add_to_cartaddToCart
begin_checkoutcheckoutStarted
purchasepurchase
sign_upsignedUp
generate_leadleadGenerated

Unmapped events are dropped by default. Create each custom event name in the Data360 module before sending it.

The en query parameter carries the event name on every endpoint, filled per event from the vendor event name, and the body carries it too as d.event.name. Test with your VWO account before relying on these events.

Example

datafly.track("purchase", {
  transaction_id: "ORD-1001",
  value: 279.98,
  currency: "gbp",
  coupon: "SPRING10"
});

is delivered to VWO Data360 as:

{
  "d": {
    "msgId": "D8A2B3C4E5F60718293A4B5C6D7E8F901-1758500000123",
    "visId": "D8A2B3C4E5F60718293A4B5C6D7E8F901",
    "sessionId": 1758500000,
    "event": {
      "name": "purchase",
      "time": 1758500000123,
      "props": {
        "isCustomEvent": true,
        "vwoMeta": { "source": "datafly-signal" },
        "page": { "url": "https://www.example.co.uk/shop/jackets", "title": "Jackets" },
        "orderId": "ORD-1001",
        "revenue": 279.98,
        "currency": "GBP",
        "coupon": "SPRING10"
      }
    }
  }
}

posted to https://dev.visualwebsiteoptimizer.com/eu01/events/t?en=...&a=<accountId> for an EU account.

Testing

  1. Trigger an event on a page where the _vwo_uuid cookie is present.
  2. In VWO, open Data360 → Audit — accepted events appear here within a short delay.
  3. Confirm the event name matches a custom event you created, and that its Metric reflects the conversion in the relevant campaign/funnel report.

Troubleshooting

SymptomLikely cause
Events rejected / not arrivingWrong Data Center — US calls hitting EU/India or vice-versa. Recheck the setting.
Event accepted but no Metric dataThe custom event name was not created in Data360, or no Metric is built on it. Names must match exactly (max 40 chars, alphanumeric + -/_).
Events missing for some visitors_vwo_uuid was missing, so the event was not sent: VWO SmartCode not installed, or Datafly.js not collecting the cookie as vwo_uuid.
Wrong Account IDVerify the a value against Account → Settings.