Ad integrations

Ad integrations are ads that you incorporate into your game, whether through custom content or branded assets. These can include:

  • Custom ad content that doesn't use Roblox ad formats, like immersive billboards, portals, or rewarded video.
  • In-game self-promotional assets that count as advertising, like brand partnerships or promoting your own off-platform products and services. This includes creator-owned merchandise related to your game (for example, apparel or physical items featuring your game or characters).

Is your content advertising?

Roblox classifies content as an ad if the content:

  • Is published in exchange for any form of compensation to promote a brand, product, service, event, or persona.
  • Includes calls to action or promotes demand, attributes, information, or availability for specific off-platform products, services, events, or personas.

If any of your assets meet either of these criteria, you must register, label, and submit them through the ad integration registration process, even if you're promoting your own content inside your game.

For more information on what counts as advertising, see the Advertising section in the Roblox Community Standards.

Requirements

To run ad integrations in your game, you must:

  • Make sure all ad integrations comply with the Community Standards and Advertising Standards.
  • Submit all assets associated with your ad integration campaign to Roblox for review and approval before exposing them to users.
  • Clearly and prominently disclose when content is an ad using simple, easy-to-understand language.
  • Not include misleading or deceptive content to encourage user engagement (for example, offering free Robux).
  • Only show rewarded video ads to users 13 and older.

Submit your ad integration

Running an ad integration is simple and involves four key steps:

This process helps make sure that your users receive clear and appropriate disclosures about what content is an ad, why they're seeing it, and who is responsible for it.

Campaign registration

To register your ad integration campaign:

  1. Go to the Ads Manager portal while signed into your Roblox account.
  2. Go to Ad integrations.
  3. Click Register.
  4. Under Integration details:
    1. Select the game you want to add the integration to.
    2. Enter the name of the advertiser. This is the name users see in ad disclosures within your game.
    3. Select an advertiser category from the drop-down options. If your advertiser doesn't fit into any of the available categories, select None of the above. The moderation team will review your submission and may update the category if needed.
    4. Select a start and end to the campaign.
    5. Enter a name for the campaign.
  5. Under Assets:
    1. Click Manage assets.
    2. Enter the IDs for all individual assets or models included in the ad campaign. If you haven't created them yet, you can register the campaign without assets and add them later.
    3. Click Save.
  6. Click Register.

As you fill out the form, the Your revenue share box updates with an estimated revenue share cost for the campaign. For more details, see Revenue share.

Before the campaign begins, you can edit the start date, end date, campaign name, and advertiser name. Once the campaign starts, only the end date can be updated.

We recommend registering campaigns as early as possible and submitting them at least 5 days before the campaign start date.

Asset creation

You can create ad integration assets before or after registering a campaign. To associate assets with a campaign, create them in Studio and use their asset ID during the campaign registration.

If you register a campaign without assets, make sure to edit the campaign and associate the assets before the campaign goes live.

Asset deployment

Before an ad integration campaign can go live, make sure all registered and moderated assets are implemented in your game. You must check user eligibility and add the required ad labeling and disclosure.

User eligibility

Check whether users are eligible to see the ad assets using GetCampaignEligibilityAsync.


local success, result = pcall(function()
return AdService:GetCampaignEligibilityAsync("your-campaign-id")
end)
if success and result.IsEligible then
print("The local player is eligible to see your campaign!")
else
print("The local player is not eligible— your campaign may not be shown to this player.")
end

If you update your game with ad assets before the campaign start date, GetCampaignEligibilityAsync will return a rejection until the campaign begins.

Labeling and disclosure

All ad assets have to include clear and accessible disclosure for users. To support this, Roblox provides standardized ad labels that are automatically rendered in games for assets associated with the ad integration campaign.

Ad labels indicate which parts of your game are advertisements, and allow users to identify the advertiser or report the ad.

RegisterDisclosureButton enables interactive disclosure when a user clicks or taps the ad label, providing additional information about the ad. You can find the placement ID from Ads Manager in the Manage Assets section. For example:


AdService:RegisterDisclosureButton(yourDisclosureButton, "your-placement-id")

Choose the right label type based on how your ad content appears in your game and how users interact with it. Different label types work better for different contexts.

Label typeDescriptionExample
Floating ad labelAppears above, beside, or near an interactive 3D object in your game.

Use it for freestanding, movable, or standalone sponsored objects, like branded vehicles, product displays, or charaacters within the environment.
HUD-style ad labelA 2D label placed on the user's screen overlay or control layer.

Use it for environments or areas where the entire location makes up the ad, like a branded store, a sponsored zone, or a virtual exhibition.
Sticker-style ad labelDirectly attached or embedded into the surface texture of a 3D object.

Use it for flat or stationary surfaces featuring branded content, like sponsored billboards, branded wall murals, columns, or architectural elements.

When placing ad labels in your game, make sure to:

  • Keep the ad label distinct and readable. The label should not be covered, distorted, or blended into surrounding visuals.
  • Avoid letting nearby branding or decorative elements visually overpower the ad label. The disclosure should be the primary focus in its immediate area.
  • Any aesthetic adjustments, like size or opacity, should not reduce clarity or make the label harder to recognize, interact with, or understand.
  • When using subtle or highly stylized branding, make the ad label especially clear and visible on first encounter.

Asset submission and moderation

To submit additional assets or models to an existing ad integration campaign:

  1. In Ads Manager, go to Ad integrations.
  2. Click Manage assets next to the relevant campaign.
  3. Enter the IDs of the individual assets or models you want to add to the campaign.
  4. Click Save.

Roblox reviews and moderates all submitted assets, and their status directly affects your campaign status. Moderation is typically completed within 48 hours.

Campaign status

To check your campaign status, go to the Ad integrations page.

StatusDescription
ApprovedThe campaign has been approved for all audiences.
CompletedThe campaign has reached its end date.
In reviewThe campaign is under review by the moderation team. While it's under review, the campaign is only shown to users aged 18 and over.
LimitedThe campaign or an asset associated with the campaign has been approved for certain countries and age groups.
PausedThe campaign has been manually stopped from serving ads.
RejectedThe campaign has failed moderation review. This means that at least one registered asset violates the Roblox advertising standards.

Asset status

Roblox also reviews and moderates all assets associated with a campaign. To check the status of your assets, go to the Ad integrations page and click Manage assets next to the relevant campaign.

StatusDescription
In reviewThe asset is under review by the moderation team.
LimitedThe asset has been partially approved for certain countries and age groups. You can appeal this status.
RejectedThe asset has failed moderation review. You can appeal this status.

To view the reason an asset was assigned a Rejected or Limited status, click Appeal status next to the asset. You can appeal the status and resubmit the asset for moderation by clicking Appeal.

Ad integration tags

Ad integration tags categorize content based on compliance with Community and Advertising Standards. During the moderation process, each ad asset is assigned one or more tags that determine the eligible audience for the campaign.

Tags have one of the following serving outcomes:

  • Rejected: The entire campaign is prohibited under the Advertising Standards or contains content that violates the Community Standards, and can't be served to users.
  • Limited serving: The entire campaign can only be served to specific users, and might be restricted by region or age.
  • Full serving (Approved): The entire campaign is approved and can be served to all relevant users.

Campaign eligibility is determined by the most restrictive asset label applied to any of your registered assets. If one asset is rejected, GetCampaignEligibilityAsync returns false for all users.

For a full list of prohibited, regulated, and restricted advertising content, see the Advertising Standards.

Revenue share

Qualified visits

For active ad integration campaigns, revenue share costs are calculated based on qualified visits.

A qualified visit is a session in which a user engages with one or more branded assets from your campaign. Qualified visits match what Roblox reports to brands as ad engagements, based on Interactive Advertising Bureau (IAB) standards for time-in-view, occlusion, and size.

If a user engages with multiple branded assets during the same session, that session counts as a single qualified visit.

If the same user returns in a separate session and engages with a branded asset again, that session counts as a new qualified visit.

Cost per 1,000 visits (CPTV)

Cost per 1,000 visits (CPTV) represents the amount Roblox charges you for qualified visits.

Rates vary by region and align with common advertising industry pricing models. As a general guideline, creators typically charge brands an average CPTV of $4 to $5 globally. Integrations that deliver higher engagement, longer time spent, or stronger outcomes may charge higher rates.

The following table shows CPTV rates for the first 28 days of a campaign:

TierMarketsCPTV (first 28 days)
USUnited States$1.50
Tier 1United Kingdom, Canada, Australia, New Zealand, Nordics$0.75
Tier 2Western Europe, Japan, South Korea$0.20
Tier 3Global floor$0.05

After the first 28 days, all qualified visits are billed at a flat CPTV rate of $0.10 for the rest of the campaign, up to a maximum campaign duration of 12 months.

For the complete list of countries in each tier, see Markets.

Markets

The following markets are grouped into tiers for CPTV pricing. The United States has its own tier and isn't listed below.

RegionCountry codeCountry
APACAUAustralia
APACNZNew Zealand
EMEADKDenmark
EMEAFIFinland
EMEAISIceland
EMEAIEIreland
EMEAIMIsle of Man
EMEAMTMalta
EMEANLNetherlands
EMEANONorway
EMEASJSvalbard and Jan Mayen
EMEASESweden
EMEACHSwitzerland
EMEAGBUnited Kingdom
US & CanadaASAmerican Samoa
US & CanadaCACanada
US & CanadaNUNiue
RegionCountry codeCountry
EMEAADAndorra
EMEAATAustria
EMEABEBelgium
EMEAHRCroatia
EMEACYCyprus
EMEAFOFaroe Islands
EMEAFRFrance
EMEADEGermany
EMEAGIGibraltar
EMEAGRGreece
EMEAGLGreenland
EMEAGGGuernsey
EMEAHKHong Kong
EMEAITItaly
EMEAJPJapan
EMEAJEJersey
EMEALILiechtenstein
EMEALULuxembourg
EMEAMCMonaco
EMEAPTPortugal
EMEASMSan Marino
EMEAKRSouth Korea
EMEAESSpain
EMEATWTaiwan
RegionCountry codeCountry
APACBNBrunei
APACKHCambodia
APACCNChina
APACFJFiji
APACIDIndonesia
APACLALaos
APACMOMacao
APACMYMalaysia
APACMVMaldives
APACFMMicronesia
APACMMMyanmar (Burma)
APACPHPhilippines
APACSGSingapore
APACTHThailand
APACTLTimor-Leste
APACVNVietnam
EMEAAFAfghanistan
EMEAALAlbania
EMEADZAlgeria
EMEAAOAngola
EMEAAMArmenia
EMEAAZAzerbaijan
EMEABHBahrain
EMEABDBangladesh
EMEABYBelarus
EMEABJBenin
EMEABTBhutan
EMEABABosnia and Herzegovina
EMEABWBotswana
EMEABGBulgaria
EMEABFBurkina Faso
EMEABIBurundi
EMEACVCabo Verde
EMEACMCameroon
EMEATDChad
EMEAKMComoros
EMEACICote d'Ivoire
EMEACZCzechia
EMEACDDemocratic Republic of the Congo
EMEADJDjibouti
EMEAEGEgypt
EMEAGQEquatorial Guinea
EMEAEEEstonia
EMEASZEswatini
EMEAETEthiopia
EMEAPFFrench Polynesia
EMEAGAGabon
EMEAGEGeorgia
EMEAGHGhana
EMEAGUGuam
EMEAGNGuinea
EMEAGWGuinea-Bissau
EMEAHUHungary
EMEAINIndia
EMEAIQIraq
EMEAILIsrael
EMEAJOJordan
EMEAKZKazakhstan
EMEAKEKenya
EMEAKIKiribati
EMEAXKKosovo
EMEAKWKuwait
EMEAKGKyrgyzstan
EMEALVLatvia
EMEALBLebanon
EMEALSLesotho
EMEALRLiberia
EMEALYLibya
EMEALTLithuania
EMEAMGMadagascar
EMEAMWMalawi
EMEAMLMali
EMEAMHMarshall Islands
EMEAMRMauritania
EMEAMUMauritius
EMEAYTMayotte
EMEAMDMoldova
EMEAMNMongolia
EMEAMEMontenegro
EMEAMAMorocco
EMEAMZMozambique
EMEANANamibia
EMEANRNauru
EMEANPNepal
EMEANCNew Caledonia
EMEANENiger
EMEANGNigeria
EMEAMKNorth Macedonia
EMEAMPNorthern Mariana Islands
EMEAOMOman
EMEAPKPakistan
EMEAPWPalau
EMEAPSPalestine
EMEAPGPapua New Guinea
EMEAPLPoland
EMEAQAQatar
EMEACGRepublic of the Congo
EMEAREReunion
EMEARORomania
EMEARWRwanda
EMEAWSSamoa
EMEASTSao Tome and Principe
EMEASASaudi Arabia
EMEASNSenegal
EMEARSSerbia
EMEASCSeychelles
EMEASLSierra Leone
EMEASKSlovakia
EMEASISlovenia
EMEASBSolomon Islands
EMEASOSomalia
EMEAZASouth Africa
EMEASSSouth Sudan
EMEALKSri Lanka
EMEASDSudan
EMEATJTajikistan
EMEATZTanzania
EMEAGMThe Gambia
EMEATGTogo
EMEATOTonga
EMEATNTunisia
EMEATRTurkiye
EMEATMTurkmenistan
EMEATVTuvalu
EMEAUGUganda
EMEAUAUkraine
EMEAAEUnited Arab Emirates
EMEAUZUzbekistan
EMEAVUVanuatu
EMEAWFWallis and Futuna
EMEAEHWestern Sahara
EMEAYEYemen
EMEAZMZambia
EMEAZWZimbabwe
LATAMAIAnguilla
LATAMAGAntigua and Barbuda
LATAMARArgentina
LATAMAWAruba
LATAMBBBarbados
LATAMBZBelize
LATAMBMBermuda
LATAMBOBolivia
LATAMBRBrazil
LATAMVGBritish Virgin Islands
LATAMBQCaribbean Netherlands
LATAMKYCayman Islands
LATAMCLChile
LATAMCOColombia
LATAMCKCook Islands
LATAMCRCosta Rica
LATAMCWCuracao
LATAMDMDominica
LATAMDODominican Republic
LATAMECEcuador
LATAMSVEl Salvador
LATAMGFFrench Guiana
LATAMGDGrenada
LATAMGPGuadeloupe
LATAMGTGuatemala
LATAMGYGuyana
LATAMHTHaiti
LATAMHNHonduras
LATAMJMJamaica
LATAMMQMartinique
LATAMMXMexico
LATAMMSMontserrat
LATAMNINicaragua
LATAMPAPanama
LATAMPYParaguay
LATAMPEPeru
LATAMPRPuerto Rico
LATAMBLSaint Barthelemy
LATAMKNSaint Kitts and Nevis
LATAMLCSaint Lucia
LATAMMFSaint Martin
LATAMPMSaint Pierre and Miquelon
LATAMVCSaint Vincent and the Grenadines
LATAMSXSint Maarten
LATAMSRSuriname
LATAMBSThe Bahamas
LATAMTTTrinidad and Tobago
LATAMTCTurks and Caicos Islands
LATAMVIU.S. Virgin Islands
LATAMUYUruguay
LATAMVEVenezuela

FAQ

Will I be billed for every visit to a branded integration?

Each qualified visit is billed once per session. If a user engages with 10 branded assets during a single session, it counts as 1 qualified visit. If the same user returns across 10 separate sessions and engages with a branded asset each time, it counts as 10 qualified visits.

This approach is consistent with other advertising formats, where the same user can generate multiple engagements over time.



Will I always be charged the maximum cost?

No. You're charged the lower of:

  • The actual cost calculated from your branded visits.
  • Your locked-in maximum cost.

What are the invoicing and payment terms?

Roblox issues invoices at the end of each quarter for campaigns that ended during that quarter. Payment is due within 90 days of the invoice date, giving you time to receive payment from the brand before paying Roblox.



What happens if I change the dates of my campaign?

If you change your campaign dates, the additional cost is calculated using the same rate as your original locked-in maximum cost.

For example, if you lock in a maximum cost of $5,000 for a 7-day campaign and then extend the campaign to 14 days, your maximum cost increases to $10,000.

For campaign days beyond the initial 28-day pricing period, qualified visits are billed at the flat CPTV rate of $0.10.



What are some options for reducing the actual cost of my planned campaign?

If your estimated campaign cost is higher than the amount you're able to charge the brand, consider adjusting the campaign configuration to reduce costs:

  • Reduce the number of campaign days. Shortening the campaign duration is the simplest way to reduce costs.
  • End the campaign after reaching a target number of impressions. You can toggle the campaign off in Ads Manager at any time. While a campaign is off, GetCampaignEligibilityAsync returns false for all users.

Is there a maximum cost for deals?

Yes. All campaigns in 2027 have a hard cap of $400,000.

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.