diff --git a/content/common/navigation/engine/guides.yaml b/content/common/navigation/engine/guides.yaml
index 051fc0179..0c9e853db 100644
--- a/content/common/navigation/engine/guides.yaml
+++ b/content/common/navigation/engine/guides.yaml
@@ -510,6 +510,8 @@ navigation:
path: /cloud-services/memory-stores/per-partition-limits
- title: Best practices
path: /cloud-services/memory-stores/best-practices
+ - title: Secrets stores
+ path: /cloud-services/secrets
- title: Cross-server communication
path: /cloud-services/cross-server-messaging
- title: Roblox for Unity developers
@@ -583,8 +585,10 @@ navigation:
section:
- title: Overview
path: /production/promotion/advertise-on-roblox
- - title: Ads Manager
+ - title: Ad campaigns
path: /production/promotion/ads-manager
+ - title: Reporting and billing
+ path: /production/promotion/reporting-and-billing
- title: Search ads
path: /production/promotion/search-ads
- title: Sponsored items
diff --git a/content/en-us/cloud-services/secrets.md b/content/en-us/cloud-services/secrets.md
new file mode 100644
index 000000000..b59d56e84
--- /dev/null
+++ b/content/en-us/cloud-services/secrets.md
@@ -0,0 +1,66 @@
+---
+title: Work with secrets
+description: Securely manage API keys, passwords, and assess tokens for third-party services with your experience's secrets store.
+---
+
+Roblox offers a secrets store for each experience. Secrets are sensitive information like API keys, passwords, and access tokens that you use to authenticate with external services. For example, if you want to connect to a third-party analytics or music service, you likely need to use an API key to authenticate with it.
+
+You could copy and paste the API key into a script or add it to a data store, but those approaches carry unnecessary security risks. The better solution is to use the secrets store and access the key using a small set of secure methods.
+
+## Add secrets
+
+To view, create, or edit secrets, you must be the experience owner or group owner. You can have up to 500 secrets per experience.
+
+1. Navigate to the [Creator Dashboard](https://create.roblox.com/dashboard/creations).
+
+1. Select your experience, and then choose **Secrets** > **Create Secret**.
+
+1. Provide a name, the secret, and the applicable domain.
+
+ - The name acts as a unique identifier for the secret, so we recommend something descriptive.
+ - Secrets can be up to 1,024 characters in length. API keys and access tokens should come from the service provider, but if the secret is a password, you probably created it yourself.
+ - You can use a limited wildcard syntax for the domain, such as `*` for any domain (not recommended) or `*.example.com` for any subdomain at `example.com`. Specific domains are even better, such as `my.example.com`.
+
+{/* Note the ability to manage these using Open Cloud when that arrives. */}
+
+### Local secrets
+
+Secrets are only available to live game servers or [Team Test](../studio/testing-modes.md#collaborative-testing) environments. If you try to access a secret from a local test server, such as the **Play** button in Studio, you receive a `Can't find secret with given key` error.
+
+To specify secrets for local testing, see [Game Settings](../studio/game-settings.md#security).
+
+## Use secrets
+
+Before using secrets within your experience, you must enable **Allow HTTP Requests** in the [Game Settings](../studio/game-settings.md#security) **Security** tab. Then call `Class.HttpService:GetSecret()` within a script:
+
+```lua
+local HttpService = game:GetService("HttpService")
+
+local testSecret = HttpService:GetSecret("test_secret")
+```
+
+Part of the appeal of using secret stores is that you can't accidentally print a secret. Instead of the secret itself, the following code outputs the name you provided when creating the secret:
+
+```lua
+print(testSecret) --> Secret(test_secret)
+```
+
+You can't manipulate the string directly. Instead, the `Datatype.Secret` data type lets you add a prefix and suffix to the secret to help form a URL or insert content like `Bearer`:
+
+```lua
+local HttpService = game:GetService("HttpService")
+
+local testSecret = HttpService:GetSecret("test_secret")
+
+local prefix = "https://my.example.com/endpoint?apiKey="
+local suffix = "&user=username"
+local url = testSecret:AddPrefix(prefix)
+url = url:AddSuffix(suffix)
+print(url) --> https://my.example.com/endpoint?apiKey=Secret(test_secret)&user=username
+```
+
+After you have a URL with the secret inserted, you can make standard HTTP requests using methods like `Class.HttpService:RequestAsync()`. Of course, you can ignore these methods and insert the secret directly into a header, too.
+
+
+You can't include secrets in the HTTP request body, only the URL and headers.
+
diff --git a/content/en-us/production/monetization/immersive-ads.md b/content/en-us/production/monetization/immersive-ads.md
index b5701d73d..7da4c9fe1 100644
--- a/content/en-us/production/monetization/immersive-ads.md
+++ b/content/en-us/production/monetization/immersive-ads.md
@@ -65,7 +65,7 @@ How publishers earn:
- **Portal ads** are static, non-clickable images with a door that teleports users into an advertiser's experience. Advertisers bid on a teleport. Publishers earn for each successful teleport. A teleport is when a user enters the portal and arrives at the advertiser's experience.
-To learn more about how advertisers are billed, you can refer to our overview on [ads billing](../promotion/ads-manager.md#ads-billing).
+To learn more about how advertisers are billed, you can refer to our overview on [ads billing](../promotion/reporting-and-billing.md#billing).
Roblox pays out earnings on the 25th of the following month from when you inserted ad units into your experience. 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 25th. You can track your collective earnings from ad Immersive Ads either through the **My Transactions** or **Group Transactions** page. You can also analyze their overall performance through metrics graphs on the Creator Dashboard.
diff --git a/content/en-us/production/promotion/ads-manager.md b/content/en-us/production/promotion/ads-manager.md
index b5e691c13..aaa77e170 100644
--- a/content/en-us/production/promotion/ads-manager.md
+++ b/content/en-us/production/promotion/ads-manager.md
@@ -1,23 +1,25 @@
---
-title: Ads Manager
+title: Ad campaigns
description: The Ads Manager is where advertisers can manage ad campaigns, ads reporting, and ads billings and payments in one place.
---
-This feature is in beta.
+The Ads Manager feature is in beta.
-**Ads Manager** offers advertisers valuable control over their ad campaigns, empowering them to create, optimize, and measure ads effectively while reaching their campaign objectives. Advertisers can use this tool to manage their ad campaigns, ads reporting, and ads billings in one place. Ads Manager allows you to create campaigns for **immersive ads** for ad units within experiences ([image](#image-ads) ads, [video](#video-ads) ads, [portal](#portal-ads) ads), [**sponsored experiences**](#sponsored-experiences), which appear on the Home page, and [search ads](./search-ads.md) that appear on Search results.
+The **Ads Manager** offers advertisers control over their ad campaigns, empowering them to create, optimize, and measure ads effectively while reaching their campaign objectives. Advertisers can use this tool to manage their ad campaigns, ads reporting, and ads billings in one place.
+
+With the Ads Manager, you can create campaigns for immersive ads for ad units within experiences (like [image ads](#image-ads), [video ads](#video-ads), and [portal ads](#portal-ads)), [sponsored experiences](#sponsored-experiences) that appear on the Home page, and [search ads](./search-ads.md) that appear on Search results.
## Create an ad account
-To access the Ads Manager, you need an ad account. Create an ad account with a verified email on a Roblox account registered for users aged 13 years or older.
+To access the Ads Manager, you must create an ad account with a verified email on a Roblox account registered for users aged 13 years or older.
-When creating an account, users can choose between creating a personal or business account. A personal account is for individuals who wish to advertise on Roblox, while a business account manages a company's ad presence on Roblox.
+When creating an account, you can choose between creating a personal or business account. A personal account is for individuals who want to advertise on Roblox, while a business account manages a company's ad presence on Roblox.
To create an ad account:
-1. Visit [ads.roblox.com](https://ads.roblox.com) while signed in to your Roblox account and select the **CREATE AD ACCOUNT** button.
+1. Go to the [Ads Manager](https://ads.roblox.com) portal while signed in to your Roblox account and select the **CREATE AD ACCOUNT** button.
2. Choose between a **Personal** or **Business** ad account. A personal account is for individuals who wish to advertise on Roblox, while a business account manages a company's ad presence on Roblox.
3. Check the box to confirm the provided information and click the **CREATE AD ACCOUNT** button. You'll receive a welcome letter at your verified email address confirming your account creation.
@@ -33,7 +35,7 @@ Before you can create and manage ads on Roblox, you first need to provide a paym
2. There are two payment methods available for selection:
1. **Credit or Debit Card:** Credit or debit cards are available for users 18 and above. A temporary $1.00 USD hold will be placed on the card and refunded after verification is complete within 7 business days.
- 2. **Robux Ad Credit:** Converting Robux into ad credits to fund your campaigns is available for all users 13 and up. For more information, see [Convert Robux to ad credits](#convert-robux-to-ad-credits).
+ 2. **Robux Ad Credit:** Converting Robux into ad credits to fund your campaigns is available for all users 13 and up.
### Convert Robux to ad credits
@@ -166,7 +168,7 @@ By adjusting all three categories, you can control who sees your ad to meet the
- Selecting **Standard Inventory** or **Limited Inventory** will exclude experiences with more mature content but may limit your reach. Regardless of what option you select, your ads will not be shown to users under the age of 13 or in experiences that do not comply with the Roblox community standards. For more information, see [Advertising Standards](https://en.help.roblox.com/hc/en-us/articles/13722260778260-Advertising-Standards) and [Brand Suitability Tables](#brand-suitability-tables), respectively.
+ Selecting **Standard Inventory** or **Limited Inventory** will exclude experiences with more mature content but may limit your reach. Regardless of what option you select, your ads will not be shown to users under the age of 13 or in experiences that do not comply with the Roblox community standards. For more information, see the [advertising standards](./comply-with-advertising-standards.md) and the [brand suitability tables](#brand-suitability-tables).
@@ -204,7 +206,7 @@ By adjusting all three categories, you can control who sees your ad to meet the
- For sponsored experiences, this represents the genre interests of your audience.
- For immersive ads, this represents the genre of the experiences your ads will display in.
-6. Determine your max bid price to show your ads to players through the available ad units placed in experiences. Bids are reflected as CPM (cost-per-thousand impressions) meaning that your max bid for CPM is the maximum amount you're willing to pay every thousand impressions. For more information about Roblox's bidding system, see [Bidding and Auction](#bidding-and-auction).
+6. Determine your max bid price to show your ads to players through the available ad units placed in experiences. Bids are reflected as CPM (cost-per-thousand impressions) meaning that your max bid for CPM is the maximum amount you're willing to pay every thousand impressions. For more information about Roblox's bidding system, see [Bidding and auction](#bidding-and-auction).
@@ -226,12 +228,12 @@ The following tables show what types of content you can expect to appear alongsi
While context exclusions are done as effectively as possible, complete accuracy is not guaranteed. Brand Suitability controls only affect which experiences ads are shown in and not the age of who sees an ad. Regardless of what Brand Suitability options you choose, your ads will only be shown to 13+ users. Content types listed within the brand suitability guidelines are thematic examples and are not guaranteed to appear within each inventory tier.
-For more information on content exclusions associated with content maturity, see [Content Maturity](content-maturity.md) and [Content Maturity Labels](https://en.help.roblox.com/hc/en-us/articles/8862768451604-Experience-Guidelines-and-Age-Recommendations).
+For more information on content exclusions associated with content maturity, see [Content maturity](content-maturity.md) and [Content maturity labels](https://en.help.roblox.com/hc/en-us/articles/8862768451604-Experience-Guidelines-and-Age-Recommendations).
Always excluded content
-To support brand safety, all content on Roblox must continue to abide by the [Community Standards](https://en.help.roblox.com/hc/en-us/articles/203313410-Roblox-Community-Standards). The Roblox Community Standards set a high bar for content that is safe and civil for the platform.
+To support brand safety, all content on Roblox must continue to abide by the [community standards](https://en.help.roblox.com/hc/en-us/articles/203313410-Roblox-Community-Standards). The Roblox Community Standards set a high bar for content that is safe and civil for the platform.
For example, this content is not allowed on the platform in any context:
@@ -397,9 +399,7 @@ There are nine genres available for targeting:
- **Tycoon** - Players take on the role of a business owner and manage various aspects of the business to achieve success and profitability.
-
-Audience Genre targeting isn't available when buying sponsored experiences to reach audiences in the EU.
-
+Audience genre targeting isn't available when buying sponsored experiences to reach audiences in the EU.
### Create ads
@@ -414,7 +414,7 @@ You can create three different types of ads using the Ads Manager:
The **ad type** is determined by your [campaign objective](#define-the-campaign). Campaign objectives valuing **awareness** are displayed as image ads, while campaign objectives valuing **visits** are displayed as tile and portal ads.
-Roblox reviews each submitted ad prior to it being run. Ensure your ad is eligible to run by following the [Roblox Advertising Standards](https://en.help.roblox.com/hc/en-us/articles/13722260778260).
+Roblox reviews each submitted ad prior to it being run. Ensure your ad is eligible to run by following the [advertising standards](./comply-with-advertising-standards.md).
#### Sponsored experiences
@@ -502,7 +502,7 @@ To create a video ad:
#### Search ads
-Search ads have unique audience targeting, and a specific bidding and auction process for keywords. For more information, see the [Search Ads documentation](./search-ads.md).
+Search ads have unique audience targeting, and a specific bidding and auction process for keywords. For more information, see [Search ads](./search-ads.md).
#### Live preview of ads
@@ -540,7 +540,7 @@ To review your ad campaign:
4. When you finish reviewing, click the **SUBMIT** button.
-### Edit campaigns
+### Edit a campaign
Once a campaign, ad set, or ad is submitted, an advertiser can make adjustments to certain parameters. To determine which parameters are changeable, consult the following table:
@@ -559,174 +559,3 @@ Once a campaign, ad set, or ad is submitted, an advertiser can make adjustments
If an advertiser wishes to retract a campaign for any reason, they have the option to cancel the campaign up to six hours before its scheduled start time. Cancellation is accessible at the campaign level and automatically cancels any associated ad sets and ads. This feature is available for campaigns with any payment method, and enables advertisers to recover their ad credits or prevent their credit or debit card from being charged.
You can't transfer ad credits associated with a specific campaign to another campaign. When a campaign is cancelled, Roblox applies the campaign's ad credits back to the account.
-
-## Ads reporting
-
-**Ads reporting** is a tool that provides necessary information to effectively manage campaigns at the campaign, ad set, and individual ad level. Ads Manager utilizes click-based attribution for conversion tracking, ensuring accurate and transparent reporting. Ads reporting helps advertisers evaluate campaign performance, optimize strategies, and reach their campaign objectives.
-
-- [Ad campaign reports](#ad-campaign-reports): Ads reporting at the campaign level offers insights into overall campaign effectiveness, enabling advertisers to compare and optimize various campaigns they have running simultaneously. This level provides a holistic view of performance, guiding budget allocation and strategy adjustments.
-- [Ad set reports](#ad-set-reports): Ads reporting at the ad set level highlights targeting and budget effectiveness, enabling adjustments for better audience engagement. This level informs optimization for specific audiences.
-- [Ad reports](#ad-reports): Ads reporting at the individual ad level assesses creative impact, guiding design improvements. This level reveals ad resonance and informs creative refinements.
-
-### Ad campaign reports
-
-
-
-The information provided at the [campaign](#define-the-campaign) level includes:
-
-| Reporting column | Definition |
-| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Name** | The name of the ad campaign. |
-| **Off/On** | A toggle indicating if the ad campaign is active, paused, or disabled. |
-| **Status** | Displays the status of the ad campaign. For a list of all statuses, see [Ad campaign statuses](#ad-campaign-statuses). |
-| **Spent** | The total amount of USD or ad credit you have spent on the selected campaign. |
-| **Impressions** | An **image impression** is when a user looks at the ad for at least 1 second and the ad occupies 1.5% of the viewport, is viewed at an angle of up to 55 degrees, with at least 50% of the image ad pixels visible.
A **video impression** where an impression is when a user looks at the ad for at least 0.5 seconds and the ad occupies 1.5% of the viewport, be viewed at an angle of up to 55 degrees, with at least 50% of the video ad pixels visible. |
-| **Cost Per Mille (CPM)** | The cost of 1,000 impressions of your ad. |
-| **Clicks** | The number of times users clicked on your ad on the Home and Search pages. |
-| **Click-Through Rate (CTR)** | Percentage calculated by dividing the number of clicks by the number of impressions and multiplying by 100. |
-| **Cost Per Play (CPP)** | The average cost incurred for each play, calculated by dividing the total campaign cost by the number of plays. |
-| **Plays** | The number of times users entered your experience. |
-| **Play Rate** | Percentage calculated by dividing the number of plays by the number of impressions. |
-| **Budget** | The amount of money allocated for this ad campaign, on a daily or lifetime timeframe. |
-| **Objective** | Displays the campaign objective between awareness or visits. |
-| **Schedule** | Displays the campaign run time. |
-| **Payment Method** | The method used to pay for your advertising campaign, categorized as either card or ad credit. |
-
-### Ad set reports
-
-
-
-The information provided at the [ad set](#define-ad-sets) level includes:
-
-| Reporting column | Definition |
-| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Name** | The name of the ad set. |
-| **Off/On** | A toggle indicating if the ad campaign is active, paused, or disabled. |
-| **Status** | Displays the status of the ad set. For a list of all statuses, see [Ad set statuses](#ad-set-statuses). |
-| **Campaign** | Shows to which campaign an ad set belongs. |
-| **Max Bid** | The maximum bid amount set for ad auction, shown in either USD or ad credit. |
-| **Spent** | The total amount of USD or ad credit you have spent. |
-| **Impressions** | An **image impression** is when a user looks at the ad for at least 1 second and the ad occupies 1.5% of the viewport, is viewed at an angle of up to 55 degrees, with at least 50% of the image ad pixels visible.
A **video impression** where an impression is when a user looks at the ad for at least 0.5 seconds and the ad occupies 1.5% of the viewport, be viewed at an angle of up to 55 degrees, with at least 50% of the video ad pixels visible. |
-| **Cost Per Mille (CPM)** | The cost of 1,000 impressions of your ad. |
-| **Clicks** | The number of times users clicked on your ad on the Home and Search pages. |
-| **Cost Per Click (CPC)** | The cost for each click on your ad on the Home and Search pages. |
-| **Click-Through Rate (CTR)** | Percentage calculated by dividing the number of clicks by the number of impressions and multiplying by 100. |
-| **Plays** | The number of times users entered your experience. |
-| **Play Rate** | Percentage calculated by dividing the number of plays by the number of impressions. |
-| **Cost Per Play (CPP)** | The average cost incurred for each play, calculated by dividing the total campaign cost by the number of plays. |
-
-### Ad reports
-
-
-
-The information provided at the [individual ad](#create-ads) level includes:
-
-| Reporting column | Definition |
-| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Name** | The name of the ad. |
-| **Off/On** | A toggle indicating if the ad campaign is active, paused, or disabled. |
-| **Status** | Displays the status of the individual ad. For a list of all statuses, see [Ad statuses](#ad-statuses). |
-| **Ad Set** | Displays the ad set the corresponding individual ad belongs to. |
-| **Ad Format** | Displays if the Ad is an Image or Portal Ad. |
-| **Spent** | The total amount of USD or ad credit you have spent. |
-| **Impressions** | An **image impression** is when a user looks at the ad for at least 1 second and the ad occupies 1.5% of the viewport, is viewed at an angle of up to 55 degrees, with at least 50% of the image ad pixels visible.
A **video impression** where an impression is when a user looks at the ad for at least 0.5 seconds and the ad occupies 1.5% of the viewport, be viewed at an angle of up to 55 degrees, with at least 50% of the video ad pixels visible. |
-| **Cost Per Mille (CPM)** | The cost of 1,000 impressions of your ad. |
-| **Clicks** | The number of times users clicked on your ad on the Home and Search pages. |
-| **Plays** | The number of times users entered your experience. |
-| **Play Rate** | Percentage calculated by dividing the number of plays by the number of impressions. |
-| **Cost Per Play (CPP)** | The average cost incurred for each play, calculated by dividing the total campaign cost by the number of plays. |
-
-### Delivery columns
-
-The delivery column of the Ads Manager defines the **status** of your campaign, ad set, or ad.
-
-- [Ad campaign statuses](#ad-campaign-statuses) offer a valuable overview of the campaign's overall progress, helping advertisers identify and optimize active, underperforming, or completed campaigns for better results.
-- [Ad set statuses](#ad-set-statuses) highlight the performance of each ad set in terms of targeting and budget allocation, enabling advertisers to fine-tune their strategies for improved audience engagement and to reach their campaign objectives.
-- [Ad statuses](#ad-statuses) provide insights into the delivery status of each individual ad, allowing advertisers to monitor their effectiveness and note any dependencies on their parent ad sets or Campaigns.
-
-You can use the following status tables to understand what each status means.
-
-#### Ad campaign statuses
-
-| Delivery status | Definition |
-| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Active** | Your campaign contains at least one ad running normally. |
-| **Paused** | The campaign is not delivering because it is toggled off (paused by user). |
-| **Scheduled** | The campaign flight dates are set in the future and will begin delivering when the start date has passed. |
-| **Inactive** | There are no delivering ad sets within the campaign. This could mean that no ad sets have been created within the campaign, all ad sets or ads are paused, or a combination of the two. Looking at the **Ad Sets** or **Ads** tab will help determine why they are not delivering. |
-| **Error** | Technical error. Please contact [support](https://www.roblox.com/support). |
-| **Completed** | The campaign, ad set or ad is no longer running because the scheduled end date has passed. |
-
-#### Ad set statuses
-
-| Delivery status | Definition |
-| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Active** | The ad is running normally, or your campaign or ad sets contains at least one ad running normally. |
-| **Paused** | The ad set is not delivering because it is toggled off. |
-| **Inactive** | There are no delivering ads within the ad set. This could mean one or more of the following: No ads have been created within the ad set. Ads are paused or have been rejected. Looking at the **Ads** tab will help determine why they are not delivering. |
-| **Scheduled** | The ad set start date is set in the future and will turn on at the scheduled time for the campaign. |
-| **Completed** | The campaign, ad set or ad is no longer running because the scheduled end date has passed. |
-| **Error** | Technical error. Please contact [support](https://www.roblox.com/support). |
-
-#### Ad statuses
-
-| Delivery status | Definition |
-| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| **Active** | The ad is running normally, or your campaign or ad sets contains at least one ad running normally. |
-| **Rejected** | The ad can't run because it doesn't comply with Roblox advertising policy. |
-| **In Review** | The ad is in review to make sure it complies with [Roblox Advertising Standards](https://en.help.roblox.com/hc/en-us/articles/13722260778260). Following this review, your ad will become active and begin running as scheduled. |
-| **Paused** | Ad is toggled off by the user. |
-| **Completed** | The campaign, ad set or ad is no longer running because the scheduled end date has passed. |
-| **Paused** | Ad is toggled on but parent campaign is off so ad is not active. |
-| **Paused** | Ad is toggled on but parent ad set is off so ad is not active. |
-| **Error** | Technical error. Please contact [support](https://www.roblox.com/support). |
-
-## Ads billing
-
-**Ads billing** charges advertisers for ad placements on Roblox using the [payment method on file](#add-a-payment-method). Billing information can be found under **Payment Activity**.
-
-
-
-### Credit and debit cards
-
-
-For first-time credit card users, 5.00 USD will be charged upon campaign submission and used toward your first bill. Any unused balance will be refunded.
-
-
-There are two points at which an advertiser gets charged on Roblox when using a credit or debit card. The first is whenever an advertiser reaches their payment threshold, and the second is at the first of the month if the payment threshold is not reached. Ad spend using debit and credit cards has a daily limit of $300 USD.
-
-Roblox advertisers have a payment threshold of $100 USD. Whenever an advertiser account accrues a balance of $100 through advertising on Roblox, their payment method on file is charged. If the payment threshold is not reached by the end of the month, the remaining outstanding balance is paid instead.
-
-For example:
-
-- An advertiser's account reaches the $100 payment threshold on May 7th due to their campaign parameters.
-- Their payment method gets charged $100 on May 7th.
-- If they accrue less than $100, their payment method gets charged the amount at the monthly billing cycle's close.
-
-
-
-### Ad credits
-
-Campaigns using ad credit are settled at the end of the campaign at the end date. Any unused ad credits will be refunded to their ad credit balance within 24-48 hours after the campaign ends. Ad credits will never be refunded to Robux. There is no daily spend limit when using ad credits.
-
-For example:
-
-- Advertiser sets 100 ad credit campaign running from 8/1 to 8/7.
-- 100 of ad credits are debited.
-- Campaign spends 75 by the end.
-- The remaining 25 will be refunded in ad credits.
-
-Ad credit-related activities are categorized as follows:
-
-- **Purchased Ad Credit:** Transactions related to converting Robux into ad credit. This transparent categorization ensures that you can easily track your ad credit acquisition.
-- **Funded:** Ad credit allocated towards a campaign. Tracking this allocation allows you to monitor your campaign budget and spending.
-- **Unused:** Ad Credit allocated to a specific campaign but not used, which is returned on the campaign end date. This feature ensures that your ad credits are efficiently utilized and returned when appropriate.
-- **Ad Fraud Refund:** Any refunds applied back to your account. Refunds credited for a specific campaign remain locked to that campaign, not credited at the account level.
-
-
-
-## Ad fraud protection
-
-Roblox diligently combats ad fraud using advanced detection methods for bots and other fraudulent activities, ensuring advertisers don't pay for fraudulent traffic and regularly adjusts billing and reporting to safeguard their interests. After 14 days from the campaign end date, campaigns are analyzed for fraudulent traffic, and transaction amounts are refunded accordingly. If invalid traffic is detected, refunds are applied 16 days after the campaign end date. This proactive approach helps maintain the integrity of your campaigns and ensures fair spending.
-
-Accounts responsible for ad fraud will have their accounts suspended to prevent ongoing abuse. In addition, Roblox may suspend ad campaigns or advertiser accounts for non-payment of services properly rendered. Roblox expects advertisers to act with integrity and follow the [Advertising Standards](https://en.help.roblox.com/hc/en-us/articles/13722260778260-Advertising-Standards#advertiser-integrity).
diff --git a/content/en-us/production/promotion/reporting-and-billing.md b/content/en-us/production/promotion/reporting-and-billing.md
new file mode 100644
index 000000000..9d7bf80ce
--- /dev/null
+++ b/content/en-us/production/promotion/reporting-and-billing.md
@@ -0,0 +1,392 @@
+---
+title: Reporting and billing
+description: The reporting and billing tools in the Ads Manager help you effectively manage your ad campaigns.
+---
+
+Use the reporting and billing tools in the Ads Manager to effectively manage your ad campaigns.
+
+## Reporting
+
+The ads reporting tool provides the information necessary to manage ad campaigns at the campaign, the ad set, and the individual ad level. This allows advertisers to evaluate campaign performance, optimize strategies, and reach their campaign objectives.
+
+Ads Manager provides accurate and transparent reporting through the use of click-based attribution for conversion tracking.
+
+- [Ad campaign reports](#ad-campaign-reports) offer insights into overall campaign effectiveness and enable advertisers to compare and optimize various campaigns they have running at the same time. The campaign report level provides a holistic view of performance, guiding budget allocation and strategy adjustments.
+- [Ad set reports](#ad-set-reports) highlight targeting and budget effectiveness and enable advertisers to make adjustments to improve audience engagement. The ad set report level provides information on how to optimize ads for specific audiences.
+- [Individual ad reports](#individual-ad-reports) assess creative impact and help guide design improvements.
+
+### Ad campaign reports
+
+
+
+
+
+
+ **Reporting column** |
+ **Definition** |
+
+
+
+
+ Name |
+ The name of the ad campaign. |
+
+
+ Off/On |
+ A toggle indicating if the ad campaign is active, paused, or disabled. |
+
+
+ Status |
+ The status of the ad campaign. |
+
+
+ Spent |
+ The total amount of USD or ad credit you have spent on the selected campaign. |
+
+
+ Impressions |
+ **Image impression**: the user looked at the ad for at least 1 second, the ad occupied 1.5% of the viewport, and was viewed at an angle of up to 55 degrees with at least 50% of the image ad pixels visible.
**Video impression**: the user looked at the ad for at least 0.5 seconds, the ad occupied 1.5% of the viewport, and was viewed at an angle of up to 55 degrees with at least 50% of the video ad pixels visible. |
+
+
+ Cost Per Mille (CPM) |
+ The cost of 1,000 impressions of your ad. |
+
+
+ Clicks |
+ The number of times users clicked on your ad on the Home and Search pages. |
+
+
+ Click-Through Rate (CTR) |
+ Percentage calculated by dividing the number of clicks by the number of impressions and multiplying by 100. |
+
+
+ Cost Per Play (CPP) |
+ The average cost incurred for each play, calculated by dividing the total campaign cost by the number of plays. |
+
+
+ Plays |
+ The number of times users entered your experience. |
+
+
+ Play rate |
+ Percentage calculated by dividing the number of plays by the number of impressions. |
+
+
+ Budget |
+ The amount of money allocated for this ad campaign, on a daily or lifetime timeframe. |
+
+
+ Objective |
+ The campaign objective between awareness or visits. |
+
+
+ Schedule |
+ The campaign run time. |
+
+
+ Payment method |
+ The method used to pay for your advertising campaign, categorized as either card or ad credit. |
+
+
+
+
+### Ad set reports
+
+
+
+
+
+
+ **Reporting column** |
+ **Definition** |
+
+
+
+
+ Name |
+ The name of the ad set. |
+
+
+ Off/On |
+ A toggle indicating if the ad campaign is active, paused, or disabled. |
+
+
+ Status |
+ The status of the ad set. |
+
+
+ Campaign |
+ The campaign the ad set belongs to. |
+
+
+ Max bid |
+ The maximum bid amount set for ad auction, shown in either USD or ad credit. |
+
+
+ Spent |
+ The total amount of USD or ad credit you have spent. |
+
+
+ Impressions |
+ **Image impression**: the user looked at the ad for at least 1 second, the ad occupied 1.5% of the viewport, and was viewed at an angle of up to 55 degrees with at least 50% of the image ad pixels visible.
**Video impression**: the user looked at the ad for at least 0.5 seconds, the ad occupied 1.5% of the viewport, and was viewed at an angle of up to 55 degrees with at least 50% of the video ad pixels visible. |
+
+
+ Cost Per Mille (CPM) |
+ The cost of 1,000 impressions of your ad. |
+
+
+ Clicks |
+ The number of times users clicked on your ad on the Home and Search pages. |
+
+
+ Cost Per Click (CPC) |
+ The cost for each click on your ad on the Home and Search pages. |
+
+
+ Click-Through Rate (CTR) |
+ Percentage calculated by dividing the number of clicks by the number of impressions and multiplying by 100. |
+
+
+ Plays |
+ The number of times users entered your experience. |
+
+
+ Play rate |
+ Percentage calculated by dividing the number of plays by the number of impressions. |
+
+
+ Cost Per Play (CPP) |
+ The average cost incurred for each play, calculated by dividing the total campaign cost by the number of plays. |
+
+
+
+
+### Individual ad reports
+
+
+
+
+
+
+ **Reporting column** |
+ **Definition** |
+
+
+
+
+ Name |
+ The name of the ad. |
+
+
+ Off/On |
+ A toggle indicating if the ad campaign is active, paused, or disabled. |
+
+
+ Status |
+ The status of the individual ad. |
+
+
+ Ad set |
+ The ad set the individual ad belongs to. |
+
+
+ Ad format |
+ Whether the ad is an image or a portal ad. |
+
+
+ Spent |
+ The total amount of USD or ad credit you have spent. |
+
+
+ Impressions |
+ **Image impression**: the user looked at the ad for at least 1 second, the ad occupied 1.5% of the viewport, and was viewed at an angle of up to 55 degrees with at least 50% of the image ad pixels visible.
**Video impression**: the user looked at the ad for at least 0.5 seconds, the ad occupied 1.5% of the viewport, and was viewed at an angle of up to 55 degrees with at least 50% of the video ad pixels visible. |
+
+
+ Cost Per Mille (CPM) |
+ The cost of 1,000 impressions of your ad. |
+
+
+ Clicks |
+ The number of times users clicked on your ad on the Home and Search pages. |
+
+
+ Plays |
+ The number of times users entered your experience. |
+
+
+ Play rate |
+ Percentage calculated by dividing the number of plays by the number of impressions. |
+
+
+ Cost Per Play (CPP) |
+ The average cost incurred for each play, calculated by dividing the total campaign cost by the number of plays. |
+
+
+
+
+### Delivery columns
+
+The delivery column of the Ads Manager defines the **status** of your campaign, ad set, or individual ad.
+
+- The [ad campaign status](#ad-campaign-status) offers a valuable overview of the campaign's overall progress, helping advertisers identify and optimize active, underperforming, or completed campaigns for better results.
+- The [ad set status](#ad-set-status) highlights the performance of each ad set in terms of targeting and budget allocation, enabling advertisers to fine-tune their strategies for improved audience engagement and to reach their campaign objectives.
+- The [individual ad status](#individual-ad-status) provides insights into the delivery status of each individual ad, allowing advertisers to monitor their effectiveness and note any dependencies on their parent ad sets or Campaigns.
+
+#### Ad campaign status
+
+
+
+
+ **Delivery status** |
+ **Definition** |
+
+
+
+
+ Active |
+ The campaign is running normally, or your campaign contains at least one ad running normally. |
+
+
+ Paused |
+ The campaign is not delivering because it's toggled off. |
+
+
+ Scheduled |
+ The campaign start date is set in the future and will turn on at the scheduled time. |
+
+
+ Inactive |
+ There are no delivering ad sets within the campaign. This could mean that no ad sets have been created within the campaign, all ad sets or ads are paused, or a combination of the two. Looking at the **Ad Sets** or **Ads** tab will help determine why they are not delivering. |
+
+
+ Error |
+ Technical error. Contact [support](https://www.roblox.com/support). |
+
+
+ Completed |
+ The campaign is no longer running because the scheduled end date has passed. |
+
+
+
+
+#### Ad set status
+
+
+
+
+ **Delivery status** |
+ **Definition** |
+
+
+
+
+ Active |
+ The ad set is running normally, or your ad set contains at least one ad running normally. |
+
+
+ Paused |
+ The ad set is not delivering because it's toggled off. |
+
+
+ Scheduled |
+ The ad set start date is set in the future and will turn on at the scheduled time. |
+
+
+ Inactive |
+ There are no delivering ads within the ad set. This could mean that no ads have been created within the ad set, ads are paused, or have been rejected. Looking at the **Ads** tab will help determine why they are not delivering. |
+
+
+ Error |
+ Technical error. Contact [support](https://www.roblox.com/support). |
+
+
+ Completed |
+ The ad set is no longer running because the scheduled end date has passed. |
+
+
+
+
+#### Individual ad status
+
+
+
+
+ **Delivery status** |
+ **Definition** |
+
+
+
+
+ Active |
+ The ad is running normally, or your campaign or ad set contain at least one individual ad running normally. |
+
+
+ Rejected |
+ The ad can't run because it doesn't comply with the [Roblox advertising standards](./comply-with-advertising-standards.md). |
+
+
+ In review |
+ The ad is in review to make sure it complies with the advertising standards. Following this review, your ad will become active and begin running as scheduled. |
+
+
+ Paused |
+ The individual ad is not delivering because it's toggled off, or the individual ad is toggled on but the parent campaign or ad set isn't active. |
+
+
+ Error |
+ Technical error. Contact [support](https://www.roblox.com/support). |
+
+
+ Completed |
+ The individual ad is no longer running because the scheduled end date has passed. |
+
+
+
+
+## Billing
+
+The ads billing tool charges advertisers for ad placements on Roblox using the payment method they have on file. To view billing information, go to **Billing Center** > **Payment Activity**.
+
+
+
+### Credit and debit cards
+
+
+For first-time credit card users, $5 USD will be charged upon campaign submission and used toward your first bill. Any unused balance will be refunded.
+
+
+You can get charged at two different points when you use a credit or debit card:
+
+- When you reach your payment threshold
+- On the first of the month if the payment threshold isn't reached
+
+The ad spend daily limit of credit and debit cards is $300 USD.
+
+The payment threshold for Roblox advertisers is $100 USD. Whenever an advertiser account accrues a balance of $100 through advertising on Roblox, their payment method on file is charged. If the payment threshold is not reached by the end of the month, the remaining outstanding balance is paid instead.
+
+For example, if an advertiser's account reaches the $100 payment threshold on May 7th due to their campaign parameters, their payment method gets charged $100 on May 7th. If they accrue less than $100, their payment method gets charged the amount at the monthly billing cycle's close.
+
+
+
+### Ad credits
+
+Campaigns using ad credit are settled at the end of the campaign at the end date. Any unused ad credits are refunded to their ad credit balance within 24-48 hours after the campaign ends. Ad credits are never refunded to Robux.
+
+There is no daily spend limit when using ad credits.
+
+For example, if an advertiser sets a 100 ad credit campaign to run from 8/1 to 8/7, 100 ad credits are debited from their account. But if the campaign has only spent 75 ad credits by the end, the remaining 25 credits are refunded in ad credits.
+
+The following are ad credit-related activities:
+
+- **Purchased Ad Credit:** Transactions related to converting Robux into ad credit. This transparent categorization makes sure that you can easily track your ad credit acquisition.
+- **Funded:** Ad credit allocated towards a campaign. Tracking this allocation allows you to monitor your campaign budget and spending.
+- **Unused:** Ad credit allocated to a specific campaign but not used, which is returned on the campaign end date. This feature makes sure that your ad credits are used efficiently and returned when appropriate.
+- **Ad Fraud Refund:** Any refunds applied back to your account. Refunds credited for a specific campaign remain locked to that campaign, not credited at the account level.
+
+
+
+## Ad fraud protection
+
+Roblox uses advanced detection methods for bots and other fraudulent activities to make sure that advertisers don't pay for fraudulent traffic, and regularly adjusts billing and reporting to safeguard their interests. After 14 days from the campaign end date, campaigns are analyzed for fraudulent traffic, and transaction amounts are refunded accordingly. If invalid traffic is detected, refunds are applied 16 days after the campaign end date. This proactive approach helps maintain the integrity of your campaigns and ensures fair spending.
+
+Accounts responsible for ad fraud have their accounts suspended to prevent ongoing abuse. In addition, Roblox might suspend ad campaigns or advertiser accounts for non-payment of services properly rendered. Roblox expects advertisers to act with integrity and follow the [advertising standards](./comply-with-advertising-standards.md).
diff --git a/content/en-us/production/promotion/search-ads.md b/content/en-us/production/promotion/search-ads.md
index 70e950991..b0789ac1e 100644
--- a/content/en-us/production/promotion/search-ads.md
+++ b/content/en-us/production/promotion/search-ads.md
@@ -81,7 +81,7 @@ To create search ads:
6. In the Review Campaign page, review the final details of your advertisement and click **SUBMIT** to launch your campaign.
-After launching your campaign, you can monitor the campaign's performance with [ads reporting](#reporting) and [billing](./ads-manager.md#ads-billing).
+After launching your campaign, you can monitor the campaign's performance with [ads reporting](#reporting) and [billing](./reporting-and-billing.md#billing).
## Bidding and auction
@@ -113,6 +113,6 @@ The following is the [same bidding and auction information](./ads-manager.md#bid
## Reporting
-You can review your ad campaign's performance using the Ad Manager's [ads reporting tool](./ads-manager.md#ads-reporting). At this time, you can't filter reports by keywords, but you can create ad sets with a single keyword to compare how an individual keyword performs for your campaign.
+You can review your ad campaign's performance using the Ad Manager's [ads reporting tool](./reporting-and-billing.md#reporting). At this time, you can't filter reports by keywords, but you can create ad sets with a single keyword to compare how an individual keyword performs for your campaign.
Search ad metrics also populate in the [Analytics Dashboard](../analytics/acquisition.md#acquisition-sources) acquisition metrics. At this time, search ad and sponsored ad results are combined as a single Sponsored Ad metric on acquisition reports.
diff --git a/content/en-us/reference/engine/classes/HttpService.yaml b/content/en-us/reference/engine/classes/HttpService.yaml
index 1deb1c6c2..8928f8c35 100644
--- a/content/en-us/reference/engine/classes/HttpService.yaml
+++ b/content/en-us/reference/engine/classes/HttpService.yaml
@@ -146,23 +146,15 @@ methods:
Returns a `Datatype.Secret` from the secrets store.
description: |
This method returns a value previously added to the secrets store for the
- experience. The secret content is not printable and, for security reasons,
- secrets are not available when the experience runs locally.
+ experience. The secret content is not printable and not available when the
+ experience runs locally.
The returned `Datatype.Secret` can be transformed using built-in methods
such as `Datatype.Secret:AddPrefix()`. It is expected to be sent as a part
- of the HTTP request.
-
- Note that a secret may have an associated domain name. If the domain name
- is empty, the secret cannot be sent over the network and therefore could
- not be used as an API key. To allow sending the secret anywhere, set the
- domain name to `*`. You can also limit the URL to a specific domain name
- such as `apis.myservice.com` or to subdomains of a domain, for example
- `*.myservice.org`.
-
- Production `Datatype.Secret|Secrets` are only available in live servers
- and Team Create. See [here](../../../studio/game-settings.md#security) for
- availability details of local `Datatype.Secret|Secrets`.
+ of an HTTP request.
+
+ For more information, see the
+ [usage guide](../../../cloud-services/secrets.md).
code_samples: []
parameters:
- name: key
diff --git a/content/en-us/reference/engine/classes/Humanoid.yaml b/content/en-us/reference/engine/classes/Humanoid.yaml
index 14e5f2cde..1ca5e372c 100644
--- a/content/en-us/reference/engine/classes/Humanoid.yaml
+++ b/content/en-us/reference/engine/classes/Humanoid.yaml
@@ -970,8 +970,9 @@ properties:
driving part of the `Class.Humanoid` that controls a humanoid's movement
through the 3D world. This part is normally invisible.
- Note that in the case of player characters, **RootPart** is the same as
- the `Class.Model.PrimaryPart` of the `Class.Player.Character` model.
+ For R15 characters, `Class.Model.PrimaryPart` of the `Class.Player.Character` model is set to **HumanoidRootPart**.
+
+ For R6 characters, `Class.Model.PrimaryPart` is set to the `Head` part.
code_samples:
type: BasePart
tags:
diff --git a/content/en-us/reference/engine/datatypes/Secret.yaml b/content/en-us/reference/engine/datatypes/Secret.yaml
index beb6d7595..87a86e890 100644
--- a/content/en-us/reference/engine/datatypes/Secret.yaml
+++ b/content/en-us/reference/engine/datatypes/Secret.yaml
@@ -5,7 +5,7 @@ summary: |
description: |
The `Datatype.Secret` data type stores the secret content returned by
`Class.HttpService:GetSecret()`. It cannot be printed or logged, but can be
- modified using built-in functions, as demonstrated by the code block below.
+ modified using built-in functions:
```lua
local HttpService = game:GetService("HttpService")
diff --git a/content/en-us/studio/game-settings.md b/content/en-us/studio/game-settings.md
index 9ec1304c1..ac1596f3b 100644
--- a/content/en-us/studio/game-settings.md
+++ b/content/en-us/studio/game-settings.md
@@ -145,8 +145,7 @@ You should only enable the following settings if you trust all assets from other
**Secrets** |
- Allows for the creation and configuration of `Datatype.Secret` for local Studio sessions using `Class.HttpService`. Must be a valid JSON object, with base64-encoded secret. Example: `{"secretName": ["cGFzc3dvcmQ=", "*.domain.tld"]}`, where `cGFzc3dvcmQ=` is base64-encoded word `password`, and `*.domain.tld` is domain name restriction.
- Visible only if HTTP requests are allowed. Secrets defined here are local to the device, and not available in Team Create sessions. Use [Creator Hub](https://create.roblox.com/) to define production secrets. |
+ Allows for the creation and configuration of `Datatype.Secret` for local Studio sessions using `Class.HttpService`. Must be a valid JSON object, with base64-encoded secret. Example: `{"secretName": ["cGFzc3dvcmQ=", "*.domain.tld"]}`, where `cGFzc3dvcmQ=` is base64-encoded word `password`, and `*.domain.tld` is domain name restriction. For more information, see [Work with secrets](../cloud-services/secrets.md). |
**Enable Studio Access to API Services** |
diff --git a/content/en-us/studio/setup.md b/content/en-us/studio/setup.md
index 639e88333..459953213 100644
--- a/content/en-us/studio/setup.md
+++ b/content/en-us/studio/setup.md
@@ -3,8 +3,7 @@ title: Roblox Studio setup
description: Explains how to install Roblox Studio on your system.
---
-Create immersive 3D experiences on Roblox with **Roblox Studio**, a free application available for Windows and macOS.
-Roblox Studio is not available on mobile.
+Create immersive 3D experiences on Roblox with **Roblox Studio**, a free application available on Windows and Mac.
diff --git a/tools/checks/utils/do-not-machine-translate.txt b/tools/checks/utils/do-not-machine-translate.txt
index 0e7c55cc2..e1b68fdcd 100644
--- a/tools/checks/utils/do-not-machine-translate.txt
+++ b/tools/checks/utils/do-not-machine-translate.txt
@@ -7,3 +7,4 @@ content/en-us/production/promotion/advertise-on-roblox.md
content/en-us/production/promotion/comply-with-advertising-standards.md
content/en-us/production/promotion/sponsor-items.md
content/en-us/production/earn-on-roblox.md
+content/en-us/reference/cloud/cloud.docs.json
\ No newline at end of file