Semantic ad matching engine, built on Semantik
Campaigns compete on meaning, not keyword lists. An incoming signal is matched to the campaign whose region of meaning it falls in, and the closest one within range wins the impression.
Keyword lists can't see a moment they didn't predict.
Keyword and segment targeting only fires on moments someone wrote down in advance. The demand worth winning shows up in language no list anticipated: a new use for the product, a shift in mood, a context nobody booked.
Each campaign is a region of meaning, and an incoming signal is matched to the campaigns it falls inside. Semantik embeds the signal, ranks the campaigns whose region it lands in, and the closest one within range wins the impression.
No keyword lists to maintain, no segment taxonomy to agree on. A campaign declares the meaning it wants to win, a signal is published as it arrives, and Semantik returns the matches ranked by distance.
Built from Semantik primitives
Each campaign is a standing SemQL region, the meanings it wants to win.
Every incoming signal is published once, and Semantik embeds it.
Semantik returns the campaigns a signal matches, ranked by distance.
The matching loop.
An incoming signal is matched to the campaign whose region of meaning it falls in. Here is the loop, end to end.
# register every campaign once: its SemQL region
# is the meaning it wants to win
for campaign in campaigns:
subscribe(campaign.namespace, campaign.region)
# then, on each incoming signal
on signal:
matches = search(signal.text) # ranked by distance
best = matches.first()
if best and best.distance < 0.30:
serve(best.campaign.creative) # the closest campaign wins
else:
serve(house_ad) # no campaign owns this moment
What a campaign region is
Each campaign declares its region as a SemQL query. A signal matches the campaigns whose query it falls inside.
# outdoor-gear brand: hiking and camping moments
MATCH DIRECTION("hiking and camping gear") CONE 0.4
# coffee brand: the first coffee of a slow morning
MATCH DISTANCE("the first coffee of a slow morning") WITHIN 0.35
# EV brand: road-trip planning, away from breakdowns
MATCH CONTRAST(ATTRACT ["planning a long road trip"], REPEL ["car breakdown, repair shop"])
Build it on Semantik.
- Register each campaign as a subscription. A campaign is a SemQL region, the meanings it wants to win. Stand it up once on the campaign namespace.
- Publish each incoming signal. Page context, a search, a moment of attention. Publish it as a message and Semantik embeds it.
- Read the ranked matches. Semantik returns the campaigns whose region the signal falls in, ranked by distance. Serve the closest within your threshold, or fall back to the house ad.
You've got the loop.
Register your campaigns as regions of meaning and your inventory competes on what a moment is about, not on keyword lists. Soon you'll describe the engine you want and Semantik will draft it for you.