Events
What to send yourself, and what the tag already sends for you.
Send what the browser cannot see for itself. Recognised names map onto the standard events of the ad platforms, which is what lets a conversion reach campaign optimisation. An unlisted name is kept as your own custom event rather than renamed.
Send purchases as purchases, not proxies
Reporting add_to_cart or begin_checkout as a conversion teaches ad
platforms to find people who start checkouts and abandon them, which is
exactly who they will then deliver.
Conversions
Revenue, or the promise of it. These are the events worth optimising toward.
Intent
Steps toward a sale. Optimisable, but not revenue.
Engagement and identification
From your server
The same names, sent with @vibiz/analytics/node. Properties go under
properties; who the event is about goes on the call itself.
import { track } from '@vibiz/analytics/node';
await track({
orgId: process.env.VIBIZ_ID,
event: 'purchase',
visitorId: order.visitorId,
userId: order.customerId,
eventId: `purchase-${order.id}`,
properties: { value: 4200.5, currency: 'EUR', order_id: order.id },
});order_id already deduplicates a purchase the browser sent too. Add eventId
only when the same occurrence is also reported under an id you chose, such as a
Meta pixel on the page given that same value.
There is no identify on the server: each call says who it is about.
userId becomes Meta's external_id, and contact carries contact details
and traits, under the same consent rule as the browser.
await track({
orgId: process.env.VIBIZ_ID,
event: 'sign_up',
userId: user.id,
contact: { email: user.email, phone: user.phone, plan: 'pro' },
advertisingConsent: user.adsConsent === true,
});Without advertisingConsent: true, only the traits (plan here) are sent.
A call needs at least one of visitorId, userId or contact; with none of
them it returns { ok: false } instead of sending an event nobody can be
matched to.
Sent for you
Do not send these by hand. Adding your own on top double counts every one.
Property
Type
Properties outside an ad platform vocabulary, such as plan or method, are
stored and reportable in Vibiz. They are simply not forwarded.