This page walks you through the steps required to set up native ads in GAM for these scenarios:
You don’t necessarily need to use GAM’s native design tool. If you’re using Prebid.js and have chosen to use in-adunit or external native templates, the recommended ad ops workflow is to use a Prebid.js dynamic creative rather than Prebid Universal Creative (PUC).
For complete instructions on setting up Prebid line items in Google Ad Manager, see Google Ad Manager with Prebid Step by Step.
For more information about Google Ad Manager native ad setup, see the Google Ad Manager native ads documentation.
For information on the Multiplex ad option, see the Traffic Multiplex ads GAM documentation.
pb-native-fluid.Every format needs at least one variable. Don’t worry, you can add more later. GAM requires at least one variable in order to move on to the next step.
title.
7.Click Continue.

Any link that needs to fire a click tracker must include class='pb-click'.
If this creative is served, it will fire impression trackers on load. Clicking the link will fire the click tracker and the link will work as normal, in this case going to the hb_native_linkurl destination.
The creative template HTML will depend on which of the three scenarios you’re implementing. You can choose to manage the native template in one of these ways:
For engineering instructions, see Native Implementation Guide.
If your native template is defined in the Prebid.js AdUnit or in a separate JavaScript renderer, set up the ad server creative with the Prebid.js dynamic creative. This is the recommended browser workflow for Prebid.js native ads because the creative asks Prebid.js to render the winning bid directly instead of loading PUC.
Use this workflow when all of the following are true:
For GAM, create a third-party HTML creative and paste the dynamic creative from the
Prebid.js dynamic creatives guide. Keep the GAM macros in the
second script block. In Send All Bids setups, replace %%PATTERN:hb_adid%% with the bidder-specific
%%PATTERN:hb_adid_BIDDERCODE%% value for each bidder creative, truncating the key name as required
by GAM.
Dynamic creatives are for Prebid.js browser line items. Continue to use the GAM native design-tool workflow below when GAM owns the native template, and use the mobile in-app workflow for Prebid Mobile.
There are three key aspects of the native template:
##hb_native_assetname##. Note that macros can be placed in the body (HTML) and/or head (CSS) of the native creative.Example creative HTML:
<div class="sponsored-post">
<div class="thumbnail" style="background-image: url(##hb_native_image##);"></div>
<div class="content">
<h1><a href="%%CLICK_URL_UNESC%%##hb_native_linkurl##" target="_blank" class="pb-click">##hb_native_title##</a></h1>
<p>##hb_native_body##</p>
<div class="attribution">##hb_native_brand##</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/prebid-universal-creative@%%PATTERN:hb_ver%%/dist/%%PATTERN:hb_format%%.js"></script>
<script>
var pbNativeTagData = {};
pbNativeTagData.pubUrl = "%%PATTERN:url%%";
pbNativeTagData.adId = "%%PATTERN:hb_adid%%";
// if you're using 'Send All Bids' mode, you should use %%PATTERN:hb_adid_BIDDERCODE%%;
pbNativeTagData.requestAllAssets = true;
window.ucTag.renderAd(document, pbNativeTagData);
</script>
When using Send All Bids, use pbNativeTagData.adId = "%%PATTERN:hb_adid_BIDDERCODE%%"; rather than pbNativeTagData.adId = "%%PATTERN:hb_adid%%"; for each bidder’s creative, replacing BIDDERCODE with the actual bidder code, such as %%PATTERN:hb_adid_BidderA%%.
Example CSS:
.sponsored-post {
background-color: #fffdeb;
font-family: sans-serif;
padding: 10px 20px 10px 20px;
}
.content {
overflow: hidden;
}
.thumbnail {
width: 120px;
height: 100px;
float: left;
margin: 0 20px 10px 0;
background-image: url(##native_image##);
background-size: cover;
}
h1 {
font-size: 18px;
margin: 0;
}
a {
color: #0086b3;
text-decoration: none;
}
p {
font-size: 16px;
color: #444;
margin: 10px 0 10px 0;
}
.attribution {
color: #fff;
font-size: 9px;
font-weight: bold;
display: inline-block;
letter-spacing: 2px;
background-color: #ffd724;
border-radius: 2px;
padding: 4px;
}
Now that you’ve defined your native template you can create your native creatives.


As of August 2020, privacy regulations have changed such that new creatives entered in GAM may require a declaration of the ad technology provider. The first step is to note the domain you serve the creative from. The examples above offer the use of the jsdelvr CDN. However, you may obtain the creative from a managed service or you may host it yourself. If you receive a warning from ad manager about “declaring self-created ad technology”, you should be able to work around this by editing the creative and filling out the “Associated ad technology providers” section as shown in this screen capture:

Use these instructions if you integrate In-App native ads on iOS or Android. The difference is in choosing the GAM option for supporting Android & iOS app code.
Delivery and then NativeNew native style.Android & iOS app code.Add variable and add the following variable names and placeholders as type text.| Variable Name | Placeholder | Type |
|---|---|---|
| isPrebid | [%isPrebid%] | Text |
| hb_cache_id_local | [%hb_cache_id_local%] | Text |
Make sure to indicate that the variables are required.
Delivery > Creatives, and create a creative with Native Format, choosing the format you created.| Variable Name | Value |
|---|---|
| isPrebid | 1 |
| hb_cache_id_local | %%PATTERN:hb_cache_id_local%% |
hb_pb key-values. Associate the creative you added in steps 4 thru 8 (making sure to choose your native format as expected creatives on the line item) to the ad unit you created in the second step.Follow the instructions in Google Ad Manager with Prebid Step by Step to duplicate your creative and attach it to your line item.