Skip to main content

Render RSOC blocks

After Install, call _raasCsa("relatedsearch", pageOptions, block1, …) from an inline script. The _raasCsa stub in <head> queues the call until the bundle is ready.

Example

<head> same as Install. <body>: pageOptions, block object(s), then _raasCsa.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Related search on content</title>

<script type="text/javascript" charset="utf-8">
(function (g, o) {
g[o] =
g[o] ||
function () {
(g[o].q = g[o].q || []).push(arguments);
};
g[o].t = Date.now();
})(window, "_raasCsa");
</script>

<script
async
src="https://cdn.ace1m.com/raas/v1/raas.global.js"
data-tenant-id="YOUR_ACE1M_TENANT_ID"
data-tenant-key="YOUR_ACE1M_TENANT_KEY"
data-allocated-channels='["ch1","ch2","ch3","ch4","ch5"]"
data-verbose="false"
></script>
</head>
<body>
<p>Page content</p>

<div id="afscontainer1"></div>

<script type="text/javascript" charset="utf-8">
var pageOptions = {
pubId: "your-client-id",
styleId: "1234567890",
relatedSearchTargeting: "content", // required for RSOC (Related Search on Content) blocks
resultsPageBaseUrl: "https://www.example.com/search",
resultsPageQueryParam: "q",
hl: "en",
};

var rsblock1 = {
container: "afscontainer1",
relatedSearches: 6,
};

_raasCsa("relatedsearch", pageOptions, rsblock1);
</script>

<p>More page content</p>
</body>
</html>

For the full list of page-level and unit-level fields for pageOptions and each block, see the Google CSA reference.

Key pageOptions fields

FieldRequiredWhy it matters
pubIdYesYour CSA client id.
styleIdNoCustom style id for related-search units. If omitted, Google uses a system default style.
relatedSearchTargetingYesMust be "content" for RSOC pages.
resultsPageBaseUrlYesBase URL for the search results page users land on after clicking a term.
resultsPageQueryParamNoQuery param name on that results page (default is q).

Key block fields

FieldRequiredWhy it matters
containerYesTarget element id where the unit renders.
relatedSearchesNoNumber of related terms to request.
adLoadedCallbackNoOptional callback for load/impression handling.

adLoadedCallback example

Test your callback logic and handle errors so it never breaks page rendering.

var rsblock1 = {
container: "afscontainer1",
relatedSearches: 6,
adLoadedCallback: function (
containerName,
adsLoaded,
isExperimentVariant,
callbackOptions,
) {
if (adsLoaded) {
try {
console.log(
"RS loaded",
containerName,
isExperimentVariant,
callbackOptions,
);
} catch (e) {
console.error("Error in adLoadedCallback", e);
}
return;
}

console.log("There is no RS coverage from Google");
},
};

For all other fields and edge-case behavior, use the Google CSA reference.