Chuyển tới nội dung chính

Event reference

Everything Qubix sees about a visitor lands in one stream of events: the click from an ad, the page that was shown, the install, the push notification, the conversion posted back by an affiliate network. Scripts read that stream, and so do the funnel and the reports.

This page lists the kinds of events, what each one carries, and the traps worth knowing before you count anything.

See your own events first

Names below are the ones this product writes, but which of them appear depends on what you run. Ask your own data:

JavaScript
function main() {
const kinds = sql`
SELECT event, count() AS n, max(event_time) AS last_seen
FROM qubix_events
WHERE event_time > now() - INTERVAL 30 DAY
GROUP BY event
ORDER BY n DESC`
for (const k of kinds) console.log(k.event, k.n, k.last_seen)
}

You may see names that are not in the tables below — test traffic, scanners probing your domains, or events from a newer version than this page. Treat an unknown name as unknown; do not guess it into a funnel.

Traffic

EventWhat it meansCarries
campaign_visitA visitor arrived from an ad — the top of the funnel, one per click.The full landing address with every marker the source put in it; campaign; geo; the ad, when the link carried one.
renderA page was shown to the visitor.The address, the PWA, geo.
white_pageThe cloak served the safe page instead of the offer.The address, campaign, geo.
campaign_visit_sdkThe same arrival, reported by the SDK from someone else's site rather than by our own redirect.Campaign; markers as the SDK sent them.
Do not add these up

campaign_visit is the top of the funnel. render and white_page describe what was shown, and one visitor produces several of them. Counting clicks means counting campaign_visit.

Installs and launches

EventWhat it meansCarries
installedThe PWA was installed.PWA, campaign, offer, ad, geo, the address.
install_acceptedThe install was accepted — written alongside installed.The same set.
install_blockedThe install did not happen: conditions did not let it through.The same set.
install_rejectedThe visitor declined the install prompt.The same set.
install_iosThe install path for iPhone, which differs from the others.The same set.
install_fallback_redirectThe install was impossible, so the visitor was sent onward to the offer.The same set.
install_fallback_stayThe install was impossible and the visitor stayed on the page.PWA, offer.
launch_pwaThe installed app was opened.PWA, campaign, offer, geo.
render_pwa_launchThe launch screen of the installed app was drawn.PWA, geo, the address.
installed and install_accepted come in pairs

They are written for the same install, so counting both doubles your installs. Pick one — installed — and use it everywhere. This is the single most common way an event-based funnel goes wrong.

Push notifications

Two different families share the push_ prefix, and mixing them is a mistake.

The subscription — what happened on the storefront. These carry the campaign, the offer and the ad, because they belong to the traffic that brought the visitor:

EventWhat it means
push_prompt_shownThe visitor was asked for permission to send notifications.
push_allowPermission granted.
push_denyPermission refused.
push_ignoredThe prompt was neither accepted nor refused.
push_subscribeThe subscription was registered and can now be sent to.

The delivery — what happened to a sent campaign. These carry the push campaign instead:

EventWhat it means
push_sentThe notification was handed over for delivery.
push_shownIt was displayed on the device.
push_clickThe visitor tapped it and came back.
push_dismissThe visitor swiped it away.
push_expiredIt was not delivered before its lifetime ran out.
push_failedDelivery failed.

So the conversion of a push campaign is push_click against push_sent, while the quality of your storefront is push_allow against push_prompt_shown. Neither ratio makes sense across the two families.

Conversions

EventWhat it meansCarries
regA registration, reported by an affiliate network.Status as the network sent it, currency, offer, ad, geo, and the network's original request.
depA deposit.The same, plus the amount and its currency.

Both arrive from outside — from the network's postback — so they know the visitor (piuid), but they do not carry the marker your traffic source put in the link. That marker arrived earlier, on campaign_visit. Sending events to your source shows how the two are tied together.

Postback diagnostics

These are not conversions. They are records of postbacks that could not be turned into one, kept so that a missing conversion can be investigated from a screen instead of a log:

EventWhat it means
postback_no_subidThe request carried no identifier, so it could not be attached to any visitor.
postback_unmatched_statusThe status was not recognised.
postback_duplicate_suppressedA repeat of a conversion already counted.
postback_stale_hashThe request arrived at an address that has since changed.
Attention

Never count these as conversions — filter your queries by the event name explicitly rather than taking everything that came from a network.

Behaviour on the page

EventWhat it means
exit_intentThe visitor was about to leave the page.
idle_redirectThe visitor was sent onward after a period of inactivity.
openThe app or page was opened.
offer_refresh_deniedA request to re-issue the offer link was refused.

Fields of an event

Not every field is filled for every kind — an install has no status, a push delivery has no offer. What is worth knowing:

FieldWhat it is
event_timeWhen it happened.
eventThe kind, from the tables above.
piuidThe visitor identifier. Present on everything and the key that ties a journey together.
urlThe full raw address of the request, with every parameter the source sent.
params['name']Any parameter of that address, already parsed out.
sub_id_1sub_id_16, click_id, external_idThe common markers, lifted into columns of their own.
status, revenue, currencyFilled on conversions.
country, city, language, device, ua, ipWho and from where.
campaign_id, offer_id, ad_id, pwa_id, domainWhat the traffic belongs to.
push_campaign_idWhich push campaign — the delivery family only.
extraEverything else the source of the event chose to record.

What's next