14 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

Immersive ads

With the immersive ads system, you can insert ad units into your game that allow Roblox to programmatically serve ad content from advertisers to your active users.

The following ad formats can be served in your game:

Note

With portal ads, the advertiser's game must include a button that allows users to return to your game.

<iframe width="440" height="247" src="https://www.youtube-nocookie.com/embed/4P79zbwU9D8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen></iframe>

Video ad format (autoplaying)

<iframe width="440" height="247" src="https://www.youtube-nocookie.com/embed/JVjkzGIgoak" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen></iframe>

Video ad format (click-to-play)

<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/Overview-ImageAd.jpg" />

Image ad format

<video controls src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/Overview-PortalAd.mp4" width="90%"></video>

Portal ad format

Ad content is specific to the user, meaning two users might simultaneously see different display ads or teleport to different advertiser games from the exact same ad unit. If a user is ineligible to see ads, ad units display either a customizable fallback image or the Roblox logo.

To illustrate this concept, see the following three images of the same ad unit showing different content depending on the user. User A sees an ad promoting The Mystery of Duvall Drive game while User B sees an ad promoting Beyond the Dark. User C doesn't see an ad at all from this ad unit because they are ineligible to see ads.

<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/Overview-UserA.jpg" />

User A

<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/Overview-UserB.jpg" />

User B

<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/Overview-UserC.jpg" />

User C

Publisher earnings from immersive ads

If your active users are eligible to see ads and meet the specific criteria from the advertiser, such as their country or device, you might be eligible to earn Robux according to how they interact with the ad content.

How publishers earn:

To learn more about how advertisers are billed, see Billing.

Roblox pays out earnings on the 25th of the following month from when you inserted ad units into your game. For example, if you insert ad units during the month of March, your payout date for the viewable impressions and successful teleports from those ad units is April 25. You can track your collective earnings from ads either through the My Transactions or the Group Transactions page. You can also analyze their overall performance through metrics graphs on the Creator Dashboard.

Note

Roblox has ad fraud systems in place to create a positive advertiser, publisher, and user experience. Per Roblox's Advertising Standards, if you engage in malicious practices to inflate impressions or teleports, Roblox might deduct Robux from your expected payout or reclaim the Robux you earned in a fraudulent way. Roblox might also suspend your game or your account.

Publisher eligibility

While anyone can insert ad units into their games, Roblox only serves ads into ad units if the game is eligible to serve ads. Eligibility does not guarantee Roblox will serve ads in your game, and nothing obligates Roblox to serve ads into your game.

For your game to be eligible to serve ads, your account and game must meet the following criteria:

Note

Resubmitting your Maturity and Compliance Questionnaire will temporarily remove your ads eligibility while the questionnaire is under review. To avoid repeated interruptions, only resubmit the questionnaire when you publish a game update that changes your previous responses.

Note

If you don't comply with these requirements, you might lose your publisher eligibility temporarily or permanently. In some cases, you might lose some or all ad payouts and might have your content or account suspended.

User eligibility

Even if your game is eligible to serve ads, not all users are eligible to see ads, such as those outside of a campaign's audience selection. If a user is ineligible to see ads, ad units display a fallback image of the Roblox logo to those ineligible users. To remove these ad units, you can remove ad units for ineligible users.

Insert ad units



When you insert an ad unit into an eligible game, make sure to check each image ad surface to confirm whether or not it's valid and able to serve ads. For example, you can scale ad units to different sizes to match your game's aesthetics, but you can't make them too small or large, otherwise they become invalid and can't serve ads.

<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/Inserting-ImageAd.jpg" width="80%" />

This ad unit is valid and can serve ads

<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/Inserting-PortalAd.jpg" width="80%" />

This ad unit is invalid because it's too small; it cannot serve ads until you scale it to a valid size

Billboards

Billboards include video and image ads.

Video ads

Eligible users can see two types of video ads within Roblox games, depending on how the advertiser bids:

To insert a video ad:

  1. From the Home or Model tab toolbar, insert a Block part into your game.
  2. Scale the part to at least 8 studs wide and 4.5 studs tall, but no more than 32 studs wide and 18 studs tall.
  3. In the Explorer window, add an AdGui object to the part. To do so, hover over the part and click the Add button, then insert an AdGui.
  4. In the Properties window, with the new AdGui selected, go to the Face property and choose a face. You can also keep the default face.
  5. Make sure to enable the EnableVideoAds checkbox to show video ads. If you leave this checkbox disabled, the part will only show image ads.

You can also implement a reward mechanism inside your game to incentivize users to watch click-to-play video ads with rewarded video ads.

Image ads

An image ad is a non-clickable static image that serves ads through an AdGui instance that you can place on block Part instances anywhere within the 3D space of a game as long as nothing obstructs the view of the ad from users. The aspect ratio of the image scales with the face of the block you choose to display the ad content.

In order for the ad unit to be valid and serve ads once you publish the game, you must ensure it meets the following criteria:

To insert an image ad:

  1. From the Home or Model tab toolbar, insert a Block part into your game.
  2. Scale the part to at least 8 studs wide and 4.5 studs tall, but no more than 32 studs wide and 18 studs tall.
  3. In the Explorer window, add an AdGui object to the part. To do so, hover over the part and click the Add button, then insert an AdGui.
  4. In the Properties window, go to the Face property and choose a face. You can also keep the default face.

Note

You can also insert an image ad package from the Creator Store, then customize it to fit your game as long as the ad unit continues to meet the validation criteria. For more information about how to insert ad units from the Creator Store, see Portal ads.

After you publish the game, users can see the ad unit in one of the following states:

State Description Example
**Active** The ad unit is able to serve ads, and is currently serving an ad to a user.
**Inactive** The ad unit is able to serve ads, but it isn't currently serving an ad to a user because of one of the following reasons:

  • The user is ineligible to see ads.
  • The user has seen too many ads in a short period of time.
  • There is low ad demand from advertisers during that time period.
  • There aren't any ads that target the user's criteria, such as their gender, device, or country.


Roblox serves a default fallback image instead.
**Invalid** The ad unit isn't able to serve ads because it didn't meet the validation criteria.

Portal ads

A portal ad is made up of two core components:

The Creator Store includes portal ads that represent these core components through a BasePortal package. The only changes you can make to this package are to modify its scale, position, and rotation. Any other change you make invalidates the package and makes it unable to serve ads.

Portal ads also include a Decorative folder of both static and dynamic visual elements. You can customize these elements as long as the core components remain intact.

<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/Portal-Ads-BasePortal.png" width="320" />




<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/Portal-Ads-Decorative.png" width="320" />

For example, the following two portal ad packages have the exact same core components, but they include different visual elements you can customize to change how these ad units look and feel within your games.

<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/PortalAds-Sample1.png" width="80%" />




<img src="https://prod.docsiteassets.roblox.com/assets/monetization/immersive-ads/PortalAds-Sample2.jpg" width="80%" />

To insert a portal ad:

  1. Open the Creator Store.

    1. From Studio's Window menu or Home tab toolbar, open the Toolbox.
    2. Select the Creator Store tab.
  2. In the Categories section, click the See All button. All categories display.

  3. Click the Ads tile.

  4. Click any of the Portal template packages.

Customize the visual elements that surround the ad unit by modifying elements within the package's Decorative folder.

Once you publish the game, users can see the ad unit in one of the following states:

State Description Example
**Active** The ad unit is able to serve ads, and is currently serving an ad to a user.
**Inactive** The ad unit is able to serve ads, but it isn't currently serving an ad to a user because of one of the following reasons:

  • The user is ineligible to see ads.
  • The user has seen too many ads in a short period of time.
  • There is low ad demand from advertisers during that time period.
  • There aren't any ads that target the user's criteria, such as their gender, device, or country.


Roblox serves a default fallback image instead.
**Invalid** The ad unit isn't able to serve ads because it didn't meet the validation criteria. The block surface that serves ads turns black, and the door becomes a concrete wall.

Remove ad units for ineligible users

Per Roblox's Advertising Standards, you must either hide, replace, or block ad content from users who are ineligible to see ads. By default, immersive ad units handle this by replacing ads with a fallback image of the Roblox logo for users ineligible to see ads.

To hide or remove the ad units entirely, use GetPolicyInfoForPlayerAsync() to return an AreAdsAllowed boolean that determines the eligibility of each user who accesses your game to see ads, then include logic to modify ad visibility to ineligible users.

For example, the following code sample uses GetPolicyInfoForPlayerAsync() to check the eligibility of each user to see ads as they enter the game. If AreAdsAllowed is true for a user, portal ads remain visible, but if it's false, the script destroys all of them. While this is a great strategy to remove ad content from users who are ineligible to see ads, it's important to note that destroying ad units might change your game's gameplay if some users can see ad units while others can't.

local Players = game:GetService("Players")
local PolicyService = game:GetService("PolicyService")
local Workspace = game:GetService("Workspace")

local player = Players.LocalPlayer
-- Sample assumes a "Main Portal Template" model exists under Workspace
local mainPortal = Workspace:WaitForChild("Main Portal Template")

-- Get the policy info for the user
	local success, result = pcall(PolicyService.GetPolicyInfoForPlayerAsync, PolicyService, player)
	if success and result then
		if not result.AreAdsAllowed then
			-- Destroy the "Main Portal Template" instance on the user's client if ads are not allowed
			mainPortal:Destroy()
		end
	else
		print("Failed to get policy for player", player.Name, "| Exception:", result)
	end

View immersive ad metrics

After you insert ad units into your game, the Creator Dashboard generates different types of metrics graphs to help you analyze the overall performance of your ads.

After 48 hours of having ads running in your game, you can see how many video views, impressions, and teleports you're generating through your user base, how each ad unit format is performing, and how many Robux you're earning from individual ad units.

By tracking these trends over time, you can make strategic decisions on the number of ad units you include per place, which format of ad unit you want to prioritize, and where you can place individual ad units to generate video views, impressions, and teleports.

To view immersive ad metrics:

  1. Go to Creations and select a game.
  2. Go to Monetization ⟩ Ads.

Note

Metrics graphs that report impressions and teleports per ad unit use each ad unit's name in Studio.

Note

Roblox might make minor "over-delivery" adjustments to impressions or teleports for advertisers to account for potential invalid video views, impressions, or teleports. This can result in occasional changes in your Earnings per Mille or Earnings per Teleport metrics.