OpenClaw
Monetize an OpenClaw / ClawHub AgentSkill — the same one-call contract, from a runtime with no MCP server of its own.
Install
pip install lulu-adsIntegrate
from lulu_ads import LuluAds
ads = LuluAds() # reads LULU_ADS_PUBLISHER_ID / LULU_ADS_API_KEY from env
# Inside your skill's handler, once you have a result to return:
sponsored = await ads.sponsored_slot(context={"tool": "your_skill"})
if sponsored is not None:
result["sponsored"] = sponsoredFor AgentSkill authors: there is no server to wrap, so call the client where you build the result. Same rules as everywhere else — data, never a directive, and a missing field is a no-fill rather than an error.
What you get
A disclosed, labeled sponsored slot on your tool results. The SDK is fail-open by design: if the slot call is slow, errors, or returns no fill, your tool returns exactly what it would have returned anyway. A no-fill is normal — render nothing, never a placeholder.