Skip to main content
v1 is deprecated. New integrations should use v2.

Requesting an Ad Format

Use the ad_formats field in your bid request to specify which formats your integration can render. The server picks the best match and the response includes an ad_format field confirming what was returned. When ad_formats is omitted, it defaults to ["sponsored_message"] for contextual requests and ["sponsored_prompt"] for opener requests. Sponsored polls are contextual-only. Request them only with request_type: "contextual" and never on opener placements.

Available Formats

The legacy spellings sponsored_message and sponsored_poll remain accepted in ad_formats; responses currently echo them in ad_format for the card and poll. Use the ad_format field in the response to determine which format was returned and render accordingly. A native ad card displayed inline in the conversation. Includes a headline, description, brand visuals, and a call-to-action. The card has two render modes, declared by the server in the placement field. When placement is missing, treat it as "text". text — compact card with the advertiser logo only. The response includes logo_url; image_url is absent. Forced when config.image_enabled=false, when no product photo is available, or when the DSP chooses text mode.
Sponsored message in text mode (logo only)
image — full card with a hero product photo. The response includes image_url; logo_url may also be present alongside.
Sponsored message in image mode (full product photo)
Response fields: ad_format, advertiser, domain, headline, description, cta_text, url, placement, logo_url, image_url, restricted_click_area, view_url
Coming soon — contact us at contact@thrad.ai for early access.
A set of sponsored follow-up questions displayed as clickable prompts before or during a conversation.
Sponsored prompt example

Sponsored prompt in a chat interface

Response fields: ad_format, advertiser, sponsored_prompt, url, logo_url The response returns an array of bids, each containing a sponsored prompt:
A horizontally scrollable strip of 3–5 product cards from a single advertiser. Each card shows a product title, image, and optional price, and is its own click target; the strip shares one brand logo and one sponsored label.
Sponsored carousel example

Sponsored carousel in a chat interface

Response fields: ad_format, advertiser, domain, logo_url, view_url, items
Rendering rules:
  • Render items left-to-right in the order given. You may truncate trailing items if space demands; never reorder.
  • Items are always currently-servable products — render what you receive without caching across requests.
An interactive poll sponsored by an advertiser. Sponsored polls are contextual-only and appear in the same mid-conversation inventory path as sponsored messages. They are not opener or pre-chat inventory.
Sponsored poll example

Sponsored poll in a chat interface

Request poll inventory by sending ad_formats on a contextual bid request:
Poll-only contextual request
Mixed contextual request
When you request both sponsored_message and sponsored_poll, Thrad first selects the winning campaign through the normal contextual auction. After a campaign wins, campaign delivery settings determine whether the returned creative is a message or poll. Response fields: ad_format, price, sponsored_poll_id, advertiser, domain, logo_url, question, options, vote_url, results_url, cta_text, cta_url, redirect_after_vote, results, dsp, bidId
Sponsored polls do not return a standalone view_url field. The impression pixel is embedded inside cta_url as a view_url query parameter (alongside thrad_view_url) — parse it out and fire it when the poll becomes visible. When a poll has no click-through, cta_text/cta_url are omitted and view_url is returned as a top-level field instead. See Billing & Viewability.

Poll Rendering

Render poll options as buttons or equivalent controls. Do not wrap the whole poll card in an advertiser click link; option clicks must call the signed vote_url.
See Sponsored Poll Tracking for vote, duplicate vote, and results endpoint behavior.

Response Handling

No Bid Response

A 200 OK response with "bid": null is not an error. It means the auction ran successfully but no DSP submitted a winning bid. This is normal behavior and should be handled gracefully in your UI.