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.