Skip to main content
Adgentek measures five event classes. If you integrate with an SDK, all of this is automatic. If you integrate via the REST API, the impression rules below are your responsibility, and they determine whether you get paid for impression-priced demand.

The one rule

Impression pixels fire client-side, from the user’s browser or app, as an image request. Never from your backend. Never via fetch. Impressions fired from server infrastructure are classified as general invalid traffic (GIVT) by verification vendors (IAS, DoubleVerify, MOAT) because they originate from datacenter IP space. GIVT impressions are discarded and unbilled. Impressions fired via fetch() fail silently on CORS in many contexts, so the event never arrives. The correct client-side implementation:
// Correct: fires from the user's browser, no CORS involvement
new Image().src = ad.tracking.impression_url;
// Wrong: CORS will block this silently in many contexts
fetch(ad.tracking.impression_url);
// Wrong: fires from datacenter IP space, classified as GIVT, unbilled
// (any server-side HTTP request to the impression URL)

Event classes

Impression. Fired client-side when the ad enters the viewport. SDKs handle viewability timing automatically. This is the billable event for CPM demand. Billing notice (burl). A server-side notification fired on impression receipt. This is the only legitimate server-side event in the stack, and it is used on headless surfaces (AdsMCP) where no client render exists. A burl does not substitute for an impression pixel and does not qualify a surface for CPM demand. Engagement. Interaction events inside interactive formats: chip taps, free-text questions, interaction depth in a Spark unit. Fired client-side by the format runtime. Click. All clicks route through the Adgentek redirect layer, where click-quality filtering runs. This is what makes CPC demand safe on every surface, including headless ones. Never link directly to advertiser destinations; always use the click URL from the ad payload. Conversion. Measured advertiser-side via the Adgentek conversion pixel on the advertiser’s site. Conversions are what make CPA demand work on headless surfaces: the billable event is verified independently of the ad render.

What this means per integration path

PathImpressionburlEngagementClickNotes
SDKs and WidgetAutomaticNot neededAutomaticAutomaticNothing to implement
REST APIYou fire it client-sideOptionalYou report via SDK-lite eventsUse the payload click URLCertification unlocks CPM demand
AdsMCPNot availableFired on receiptNot availableUse the payload click URLCPA and filtered CPC only
If any of this is unclear for your architecture, write to hello@adgentek.ai before you build. Getting the impression path wrong is the single most common integration error, and it directly costs you revenue.