XOM's ad system places advertising inline in the social feed and manages it from a dedicated Ad Manager in the admin console. It is built around two halves: a creative manager for the individual ad units, and a campaign dashboard for budgets, metrics, and reporting.
01Ad creatives
An ad creative is a structured record, not a rendered banner. Each one carries a headline, body copy, media reference, call-to-action label and destination, industry category, targeting block, and its commercial fields — cost per click, cost per impression, total budget, and the campaign it belongs to.
Six ad types are supported, each with a distinct revenue basis:
| Type | Revenue basis | |---|---| | Standard | Cost per click | | Premium | Higher CPC plus cost per impression | | Affiliate | Commission on conversions | | Sponsored | Flat sponsorship fee spread across impressions | | Flash | Time-limited CPC with a countdown | | Native | Blended CPC and CPM, styled to match organic content |
Media can be a static image, a video, or a directory path. The directory option lets the engine choose a different asset from the folder on each render, which keeps a campaign visually fresh without manual rotation. A source flag separates internal DigiFX creatives from external vendor creatives so that vendor revenue can be reported without internal house ads inflating the figures. The current seed set is internal DigiFX creatives; external vendor ads are added as contracts come in.
02Targeting and feed placement
Targeting is expressed on the creative as three lists: user types, interests, and geographies. The advertisement component rendered inside the feed filters the available creatives against the viewer's profile, then selects one based on the feed position index, so ad slots are distributed through the scroll rather than clustered.
Users are not without recourse. A "hide sponsored" toggle under content filtering settings removes sponsored and promotional content from a user's feed.
03Measurement
The feed component records six distinct signals per creative — impression on render, click on CTA interaction, hover after a short dwell, viewability after the unit has been in the viewport, accumulated view time via an IntersectionObserver, and dismissal. These are written to per-creative and per-campaign metric paths in the Realtime Database.
The campaign dashboard rolls these into the standard set: impressions, clicks, CTR, CPC, CPM, conversions, conversion rate, budget, spend, remaining budget, and ROI. Reports can be exported as CSV for spreadsheet work or JSON for downstream systems, over a 7, 30, or 90 day window, with a summary section covering platform-wide totals.
04Operational controls
Platform-level settings include a master on/off switch for all advertising, ad refresh rate, default CPC, maximum ads per feed page, ad position, a sponsored-post toggle, a tracking-level selector, and a GDPR compliance mode that applies stricter privacy handling for EU users.