Search Ads show native ads in your site's own search box, picked by what the visitor types. Type "hotel amsterdam" and you get hotel ads. Type "running shoes" and you get running gear.
Every box on this page is a live Search Ads zone. They serve real ads from a demo account with 15 made-up advertisers, so go ahead and type.
No search box on your site yet? Paste one placeholder and the plugin draws the box, with the ads below it as full cards: image, title, description and the advertiser's link. Searches the visitor makes are remembered as recent searches on their device.
<!-- once per page, in <head> -->
<script src="https://g2.gsrv.dev/ctrl/19460.js"></script>
<!-- where it goes -->
<div id="gcs_box_12512315"></div>
<script>
goCtrl.add({"plugin":"search","fn":"init","fn_params":{
"sid":12512315,
"mode":"box",
"box":"gcs_box_12512315",
"placeholder":"Search hotels, flights, coffee, bikes...",
"recent":5,
"theme":"light",
"results":3,
"min_chars":2,
"tpl_body":'<div class="gcs-results">{body}</div>',
"tpl_row":'<div class="gcs-row">{items}</div>',
"tpl_item":'<a class="{href_itemid} gcs-item" href="#"><span class="gcs-img">{image}</span><span class="gcs-copy"><span class="gcs-title">{title}</span><span class="gcs-desc">{description}</span><span class="gcs-url">{displayurl}</span></span><span class="gcs-label">Sponsored</span></a>'
}});
</script>The same drawn box with the suggestion layout: each ad is one short line with a small image. It reads like a search suggestion, so you can show more ads in less space.
<!-- once per page, in <head> -->
<script src="https://g2.gsrv.dev/ctrl/19460.js"></script>
<!-- where it goes -->
<div id="gcs_box_12512316"></div>
<script>
goCtrl.add({"plugin":"search","fn":"init","fn_params":{
"sid":12512316,
"mode":"box",
"box":"gcs_box_12512316",
"placeholder":"Try: running shoes",
"recent":3,
"theme":"light",
"results":4,
"min_chars":2,
"tpl_body":'<div class="gcs-results">{body}</div>',
"tpl_row":'<div class="gcs-row">{items}</div>',
"tpl_item":'<a class="{href_itemid} gcs-item gcs-sugg" href="#"><span class="gcs-img">{image}</span><span class="gcs-title">{title}</span><span class="gcs-label">Ad</span></a>'
}});
</script>Point the zone at your own search field with a CSS selector. The plugin opens a dropdown under it with the ads and the visitor's recent searches. Your search form keeps working exactly as before.
<!-- once per page, in <head> -->
<script src="https://g2.gsrv.dev/ctrl/19460.js"></script>
<!-- where it goes -->
<!-- Example search box: put it where the search box should appear. Already have one? Remove this input and set "input" below to your own box's selector. -->
<input type="search" id="demo-dropdown-q" placeholder="Search" autocomplete="off">
<script>
goCtrl.add({"plugin":"search","fn":"init","fn_params":{
"sid":12512317,
"input":"#demo-dropdown-q",
"mode":"dropdown",
"recent":5,
"theme":"light",
"results":2,
"min_chars":2,
"tpl_body":'<div class="gcs-results">{body}</div>',
"tpl_row":'<div class="gcs-row">{items}</div>',
"tpl_item":'<a class="{href_itemid} gcs-item" href="#"><span class="gcs-img">{image}</span><span class="gcs-copy"><span class="gcs-title">{title}</span><span class="gcs-desc">{description}</span><span class="gcs-url">{displayurl}</span></span><span class="gcs-label">Sponsored</span></a>'
}});
</script>For dark sites, set the theme to dark (or auto to follow the visitor's device setting). This one also uses the compact suggestion rows.
<!-- once per page, in <head> -->
<script src="https://g2.gsrv.dev/ctrl/19460.js"></script>
<!-- where it goes -->
<!-- Example search box: put it where the search box should appear. Already have one? Remove this input and set "input" below to your own box's selector. -->
<input type="search" id="demo-dark-q" placeholder="Search" autocomplete="off">
<script>
goCtrl.add({"plugin":"search","fn":"init","fn_params":{
"sid":12512318,
"input":"#demo-dark-q",
"mode":"dropdown",
"recent":3,
"theme":"dark",
"results":3,
"min_chars":2,
"tpl_body":'<div class="gcs-results">{body}</div>',
"tpl_row":'<div class="gcs-row">{items}</div>',
"tpl_item":'<a class="{href_itemid} gcs-item gcs-sugg" href="#"><span class="gcs-img">{image}</span><span class="gcs-title">{title}</span><span class="gcs-label">Ad</span></a>'
}});
</script>Already show search suggestions? Put the ad placeholder inside your panel and the ads appear right under your own suggestions. Ads are only requested while your panel is open.
<!-- once per page, in <head> -->
<script src="https://g2.gsrv.dev/ctrl/19460.js"></script>
<!-- where it goes -->
<div id="id_12512319"></div>
<script>
goCtrl.add({"plugin":"search","fn":"init","fn_params":{
"sid":12512319,
"input":"#demo-panel-q",
"mode":"panel",
"panel":"#demo-panel",
"display":"id_12512319",
"results":2,
"min_chars":2,
"tpl_body":'<div class="gcs-results">{body}</div>',
"tpl_row":'<div class="gcs-row">{items}</div>',
"tpl_item":'<a class="{href_itemid} gcs-item" href="#"><span class="gcs-img">{image}</span><span class="gcs-copy"><span class="gcs-title">{title}</span><span class="gcs-desc">{description}</span><span class="gcs-url">{displayurl}</span></span><span class="gcs-label">Sponsored</span></a>'
}});
</script>Instead of a dropdown that floats over the page, the ads are listed in the page itself, right under the box, styled like search results. The list updates as the visitor types and when they press Enter, and stays when they click elsewhere. Nothing opens a new page.
<!-- once per page, in <head> -->
<script src="https://g2.gsrv.dev/ctrl/19460.js"></script>
<!-- where it goes -->
<div id="gcs_box_12512374"></div>
<!-- Optional: put <div id="id_12512374"></div> where the results should be listed. Without it they appear right under the search box. -->
<script>
goCtrl.add({"plugin":"search","fn":"init","fn_params":{
"sid":12512374,
"mode":"results",
"box":"gcs_box_12512374",
"placeholder":"Search and see the results list below",
"display":"id_12512374",
"param":"q",
"theme":"light",
"results":3,
"min_chars":2,
"tpl_body":'<div class="gcs-results">{body}</div>',
"tpl_row":'<div class="gcs-row">{items}</div>',
"tpl_item":'<a class="{href_itemid} gcs-item gcs-result" href="#"><span class="gcs-copy"><span class="gcs-rtop"><span class="gcs-label">Sponsored</span><span class="gcs-url">{displayurl}</span></span><span class="gcs-title">{title}</span><span class="gcs-desc">{description}</span></span><span class="gcs-img">{image}</span></a>'
}});
</script>Add one optional div and the results go there instead, for example in your content column while the search box stays in the header. This demo also uses the site's own search box instead of one we draw.
Sponsored results
Search in the header: the results are listed here, in the content column.
<!-- once per page, in <head> -->
<script src="https://g2.gsrv.dev/ctrl/19460.js"></script>
<!-- where it goes -->
<!-- Example search box: put it where the search box should appear. Already have one? Remove this input and set "input" below to your own box's selector. -->
<input type="search" id="demo-own-q" placeholder="Search" autocomplete="off">
<!-- Optional: put <div id="id_12512408"></div> where the results should be listed. Without it they appear right under the search box. -->
<script>
goCtrl.add({"plugin":"search","fn":"init","fn_params":{
"sid":12512408,
"mode":"results",
"input":"#demo-own-q",
"display":"id_12512408",
"param":"q",
"theme":"light",
"results":2,
"min_chars":2,
"tpl_body":'<div class="gcs-results">{body}</div>',
"tpl_row":'<div class="gcs-row">{items}</div>',
"tpl_item":'<a class="{href_itemid} gcs-item gcs-result" href="#"><span class="gcs-copy"><span class="gcs-rtop"><span class="gcs-label">Sponsored</span><span class="gcs-url">{displayurl}</span></span><span class="gcs-title">{title}</span><span class="gcs-desc">{description}</span></span><span class="gcs-img">{image}</span></a>'
}});
</script>Searches that combine words about children or teens with sexual, abusive or violent words never get an ad, and neither do searches for abuse, non-consent and similar topics. Everyday searches such as "kids shoes" or "teen fashion" still get ads. The ad server checks every search in many languages, including misspellings, letter swaps and look-alike characters, and leaves no stats row behind. Each zone can add its own blocked words on top.
AI Our AI terms agent reviews real searches every week, adds new terms and languages, and tests every change before it goes live. Last review: 16 October 2026.
Every search is stored in the statistics as Sub ID 1 of the zone. Group the normal stats by Sub ID 1 and you see views, clicks and earnings per search, all on one zone, with no extra zones to manage. Advertisers buy Search Ads as their own campaign type, with keyword targeting and all the usual geo, device and budget settings.
All brands below are made up for this demo. Each targets its own keywords, and Marketly has none, so it fills every search nothing else matches.
Search Ads is an adzone type and a campaign type in the GoAdserver ad server. Talk to us about turning it on for your platform.
Contact us