From 011956f5182c1da7dfe9f19fd91fc508b5d05a7c Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Fri, 30 May 2025 09:59:26 -0300 Subject: [PATCH 01/13] Updated and merged store listing pages --- .../add-on/add-and-edit-store-listing-info.md | 23 ------------------- .../add-on/create-app-store-listing.md | 16 +++++++++++++ 2 files changed, 16 insertions(+), 23 deletions(-) delete mode 100644 hub/apps/publish/publish-your-app/add-on/add-and-edit-store-listing-info.md diff --git a/hub/apps/publish/publish-your-app/add-on/add-and-edit-store-listing-info.md b/hub/apps/publish/publish-your-app/add-on/add-and-edit-store-listing-info.md deleted file mode 100644 index 3f65d4d0f3..0000000000 --- a/hub/apps/publish/publish-your-app/add-on/add-and-edit-store-listing-info.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -description: This section will guide you in adding or editing all the app add-on store listing information. -title: Add and edit Store listing info for add-on -ms.date: 10/30/2022 -ms.topic: article -ms.localizationpriority: medium ---- - -# Add and edit Store listing info for add-on - -To edit a Store listing, click the language name from the add-on submission overview page. The info you can enter for each language is described below. - -## Title - -You must provide a title here, which is the name your customers will see for this add-on. Your title can be up to 100 characters. - -## Description - -If you'd like to display more info than just a title, you can enter up to 200 characters here. This field is optional. - -## Icon - -You also have the option to provide an image that may be displayed to the customer. This icon must be a .png file that measures exactly 300 x 300 pixels. diff --git a/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md b/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md index c5f32bae44..a08c7dd0fe 100644 --- a/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md +++ b/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md @@ -22,3 +22,19 @@ Under the **Store listing** section of your add-on's submission, click **Add/rem To remove a language, click **Remove** (or click **Manage languages** and uncheck the box for languages you’d like to remove). When you have finished making your selections, click **Save** to return to the submission overview page. + +# Add and edit Store listing info for add-on + +To edit a Store listing, click the language name from the add-on submission overview page. The info you can enter for each language is described below. + +## Product name + +You must provide a title here, which is the name your customers will see for this add-on. Your title can be up to 100 characters. + +## Description + +You must provide a description of up to 200 characters. This information will be displayed to customers along with the title. + +## Icon + +You also have the option to provide an image that may be displayed to the customer. This icon must be a .png file that measures exactly 300 x 300 pixels. This icon is optional. \ No newline at end of file From 581fef54eb724c6b8719922509e91eef53e77c06 Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Fri, 30 May 2025 09:59:43 -0300 Subject: [PATCH 02/13] Merged app properties pages --- .../add-on/enter-app-properties.md | 32 ++++++++++++++ .../publish-your-app/add-on/support-info.md | 43 ------------------- 2 files changed, 32 insertions(+), 43 deletions(-) delete mode 100644 hub/apps/publish/publish-your-app/add-on/support-info.md diff --git a/hub/apps/publish/publish-your-app/add-on/enter-app-properties.md b/hub/apps/publish/publish-your-app/add-on/enter-app-properties.md index 33162ce246..6533a1abd5 100644 --- a/hub/apps/publish/publish-your-app/add-on/enter-app-properties.md +++ b/hub/apps/publish/publish-your-app/add-on/enter-app-properties.md @@ -58,6 +58,38 @@ These are the possible options for an add-on's content type: - Video download - Video streaming +## Privacy policy URL + +You are responsible for ensuring your app add-on complies with privacy laws and regulations, and for providing a valid privacy policy URL here if required. + +In this section, you must indicate whether or not your app accesses, collects, or transmits any [personal information](../../store-policies.md#105-personal-information). If you answer **Yes**, a privacy policy URL is required. Otherwise, it is optional (though if we determine that your app requires a privacy policy, and you have not provided one, your submission may fail certification). + +> [!NOTE] +> If we detect that your packages declare [capabilities](/windows/uwp/packaging/app-capability-declarations) that could allow personal information to be accessed, transmitted, or collected, we will mark this question as **Yes**, and you will be required to enter a privacy policy URL. + +To help you determine if your app requires a privacy policy, review the [App Developer Agreement](https://go.microsoft.com/fwlink/?linkid=528905) and the [Microsoft Store Policies](../../store-policies.md#105-personal-information). + +> [!NOTE] +> Microsoft doesn't provide a default privacy policy for your app. Likewise, your app is not covered by any Microsoft privacy policy. + +## Website + +Enter the URL of the web page for your app. This URL must point to a page on your own website, not your app's web listing in the Store. This field is optional, but recommended. + +## Support contact info + +Enter the URL of the web page where your customers can go for support with your app, or an email address that customers can contact for support. We recommend including this info for all submissions, so that your customers know how to get support if they need it. Note that Microsoft does not provide your customers with support for your app. + +> [!IMPORTANT] +> The **Support contact info** field is required if your app or game is available on Xbox. Otherwise, it is optional (but recommended). + +## Phone number and address info + +Enter Phone number, Address, Apartment / Suite, City, State / Province, Country and Postal code so customers can reach out to you in case of any concern or dispute. + +> [!IMPORTANT] +> Businesses / Company accounts offering products in France market need to ensure to provide this info for compliance with France Consumer Protection Laws and Regulations 2023 - 2024. This is optional for individual developers. + ## Additional properties These fields are optional for all types of add-ons. diff --git a/hub/apps/publish/publish-your-app/add-on/support-info.md b/hub/apps/publish/publish-your-app/add-on/support-info.md deleted file mode 100644 index 3086976a73..0000000000 --- a/hub/apps/publish/publish-your-app/add-on/support-info.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -description: This section lets you provide info to help customers understand more about your app add-on and how to get support. -title: Support info for add-on -ms.date: 10/30/2022 -ms.topic: article -ms.localizationpriority: medium ---- - -# Support info for add-on - -This section lets you provide info to help customers understand more about your app and how to get support. - -## Privacy policy URL - -You are responsible for ensuring your app add-on complies with privacy laws and regulations, and for providing a valid privacy policy URL here if required. - -In this section, you must indicate whether or not your app accesses, collects, or transmits any [personal information](../../store-policies.md#105-personal-information). If you answer **Yes**, a privacy policy URL is required. Otherwise, it is optional (though if we determine that your app requires a privacy policy, and you have not provided one, your submission may fail certification). - -> [!NOTE] -> If we detect that your packages declare [capabilities](/windows/uwp/packaging/app-capability-declarations) that could allow personal information to be accessed, transmitted, or collected, we will mark this question as **Yes**, and you will be required to enter a privacy policy URL. - -To help you determine if your app requires a privacy policy, review the [App Developer Agreement](https://go.microsoft.com/fwlink/?linkid=528905) and the [Microsoft Store Policies](../../store-policies.md#105-personal-information). - -> [!NOTE] -> Microsoft doesn't provide a default privacy policy for your app. Likewise, your app is not covered by any Microsoft privacy policy. - -## Website - -Enter the URL of the web page for your app. This URL must point to a page on your own website, not your app's web listing in the Store. This field is optional, but recommended. - -## Support contact info - -Enter the URL of the web page where your customers can go for support with your app, or an email address that customers can contact for support. We recommend including this info for all submissions, so that your customers know how to get support if they need it. Note that Microsoft does not provide your customers with support for your app. - -> [!IMPORTANT] -> The **Support contact info** field is required if your app or game is available on Xbox. Otherwise, it is optional (but recommended). - -## Phone number and address info - -Enter Phone number, Address, Apartment / Suite, City, State / Province, Country and Postal code so customers can reach out to you in case of any concern or dispute. - -> [!IMPORTANT] -> Businesses / Company accounts offering products in France market need to ensure to provide this info for compliance with France Consumer Protection Laws and Regulations 2023 - 2024. This is optional for individual developers. From d620651fb5e366d594202d12bcc66801d4be1a10 Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Fri, 30 May 2025 10:00:24 -0300 Subject: [PATCH 03/13] Updated price, availability and schedule price changes documents --- .../add-on/price-and-availability.md | 7 +++-- .../add-on/schedule-pricing-changes.md | 28 +++++++++++++++--- .../msix-set-app-pricing-other-types.png | Bin 0 -> 70499 bytes 3 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 hub/apps/publish/publish-your-app/msix/images/msix-set-app-pricing-other-types.png diff --git a/hub/apps/publish/publish-your-app/add-on/price-and-availability.md b/hub/apps/publish/publish-your-app/add-on/price-and-availability.md index c762bec640..db9aa673ae 100644 --- a/hub/apps/publish/publish-your-app/add-on/price-and-availability.md +++ b/hub/apps/publish/publish-your-app/add-on/price-and-availability.md @@ -22,7 +22,7 @@ For more info and a full list of the available markets, see [Define market selec You can determine whether your add-on should be offered for purchase to customers. -The default option is **Can be displayed in the parent product’s Store listing**. Leave this option checked for add-ons that will be made available to any customer. +The default option is **Can be displayed in the parent product’s Microsoft Store listing**. Leave this option checked for add-ons that will be made available to any customer. For more info, see [Visibility options](./visibility-options.md). @@ -31,13 +31,14 @@ For more info, see [Visibility options](./visibility-options.md). ## Schedule -By default (unless you have selected one of the **Hidden in the Store** options in the **Visibility** section), your add-on will be available to customers as soon as it passes certification and complete the publishing process. To choose other dates, select **Show options** to expand this section. +By default (unless you have selected one of the **Hidden in the Microsoft Store** options in the **Visibility** section), your add-on will be available to customers as soon as it passes certification and complete the publishing process. To choose other dates, select **Show options** to expand this section. For more info, see [Configure precise release scheduling](./schedule-pricing-changes.md#configure-precise-release-scheduling). ## Pricing -You must select a base price for your add-on (unless you have selected the **Stop acquisition** option in the **Visibility** section). The default selection is **Free**, so if you want to charge money for the add-on, be sure to choose one of the available price tiers (starting at .99 USD). +You must select a base price for your add-on (unless you have selected the **Stop acquisition** option in the **Visibility** section). For **Subscription** product type, the base price default selection is **Free**, for other product types there is no a default base price but it can be selected from the retail price dropdown after selecting the currency. +If you want to charge money for the add-on, be sure to choose one of the available price tiers (starting at .99 USD). You can also schedule price changes to indicate the date and time at which the add-on’s price should change. Additionally, you have the option to customize these changes for specific markets. diff --git a/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md b/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md index d0784a1a6c..9f4673191c 100644 --- a/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md +++ b/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md @@ -12,27 +12,38 @@ ms.localizationpriority: medium The **Pricing** section of the [Pricing and availability](./price-and-availability.md) page lets you select the base price for an app. You can also [schedule price changes](#schedule-price-changes) to indicate the date and time at which your app’s price should change. Additionally, you have the option to [override the base price for specific markets](#override-base-price-for-specific-markets), either by selecting a new price tier or by entering a free-form price in the market's local currency. Please be aware that Microsoft does not alter the product pricing you set without your approval. You’re in charge of making sure the prices match the current market situations, including currency exchange rates. +### Subscription type + :::image type="content" source="../msix/images/msix-set-app-pricing.png" lightbox="../msix/images/msix-set-app-pricing.png" alt-text="A screenshot of the Pricing and availability section showing how to set app pricing."::: +In the **Pricing** section, click **view conversion table** to see the corresponding prices in all currencies. This also displays an ID number associated with each price tier, which you’ll need if you're using the [Microsoft Store submission API](/windows/uwp/monetize/manage-app-submissions#price-tiers) to enter prices. You can click **Download** to download a copy of the price tier table as a .csv file. + > [!NOTE] > Although this topic refers to apps, price selection for add-on submissions uses the same process. Note that for [subscription add-ons](/windows/uwp/monetize/enable-subscription-add-ons-for-your-app), the base price that you select can't ever be increased (whether by changing the base price or by scheduling a price change), although it may be decreased. +### Consumable and Durable types + +:::image type="content" source="../msix/images/msix-set-app-pricing-other-types.png" lightbox="../msix/images/msix-set-app-pricing-other-types.png" alt-text="A screenshot of the Pricing and availability section showing how to set app pricing."::: + +In the **Pricing** section, click **Review price per market** to see the corresponding prices for all markets. + ### Base price When you select your app's **Base price**, that price will be used in every market where your app is sold, unless you override the base price in any market(s). -You can set the **Base price** to **Free**, or you can choose an available price tier, which sets the price in all the countries/regions where you choose to distribute your app. Price tiers start at 0.99 USD, with additional tiers available at increasing increments (1.09 USD, 1.19 USD, and so on). The increments generally increase as the price gets higher. +You can set the **Base price** to **Free** or **0** depending on your product type. Also you can choose an available price tier, which sets the price in all the countries/regions where you choose to distribute your app. Price tiers start at 0.99 USD, with additional tiers available at increasing increments (1.09 USD, 1.19 USD, and so on). The increments generally increase as the price gets higher. > [!NOTE] > These price tiers also apply to add-ons. > Each price tier has a corresponding value in each of the more than 60 currencies offered by the Store. We use these values to help you sell your apps at a comparable price point worldwide. You can select your base price in any currency, and we’ll automatically use the corresponding value for different markets. Note that at times we may adjust the corresponding value in a certain market to account for changes in currency conversion rates. You can click on Review price per market button to view the prices for each market. -In the **Pricing** section, click **view conversion table** to see the corresponding prices in all currencies. This also displays an ID number associated with each price tier, which you’ll need if you're using the [Microsoft Store submission API](/windows/uwp/monetize/manage-app-submissions#price-tiers) to enter prices. You can click **Download** to download a copy of the price tier table as a .csv file. +> [!NOTE] +> For Consumable and Durable types, first you need to select a currency before setting the price. Keep in mind that the price tier you select may include sales or value-added tax that your customers must pay. To learn more about your app’s tax implications in selected markets, see [Tax details for paid apps](/partner-center/tax-details-marketplace). You should also review the [price considerations for specific markets](./market-selection.md#price-considerations-for-specific-markets). > [!NOTE] -> If you choose the **Stop acquisition** option under **Make this product available but not discoverable in the Store** in the [Visibility](./visibility-options.md#discoverability) section), you won't be able to set pricing for your submission (since no one will able to acquire the app unless they use a promotional code to get the app for free). +> If you choose the **Stop acquisition** option under **Make this product available but not discoverable in the Store** in the [Visibility](./visibility-options.md#discoverability) section, you won't be able to set pricing for your submission (since no one will able to acquire the app unless they use a promotional code to get the app for free). ### Schedule price changes @@ -49,7 +60,7 @@ You can click **Schedule a price change** again to schedule as many subsequent c > > With a scheduled price change, you can adjust the price to be either higher or lower. The change will take place on the date you specify, but it won’t be displayed as a sale in the Store, or have any special formatting applied; the app will just have a new price. -### Override base price for specific markets +### Override base price for specific markets (Subscription type) By default, the options you select above will apply to all markets in which your app is offered. You can optionally change the price for one or more markets, either by choosing a different price tier or entering a free-form price in the market’s local currency. This way, you can maintain your regional pricing strategy and respond more effectively to the changes in the currency exchange rates in each market. @@ -73,6 +84,15 @@ To change the markets included in a market group, click the name of the market g > [!NOTE] > A market can’t belong to multiple market groups within the **Pricing** section. +### Override base price for specific markets (Consumable and Durable types) + +By default, the currency and price you select above will apply to all markets in which your app is offered. You can optionally change the price for one or more market group by choosing a different price tier. This way, you can maintain your regional pricing strategy and respond more effectively to the changes in the currency exchange rates in each market. + +You can override the base price for one or more market groups. Once you’ve done so, you can override the base price for an additional market group by selecting **Create new market group** again and repeating the process described below. To remove the override pricing you’ve specified for a market group, click **Remove**. + +> [!NOTE] +> A market can’t belong to multiple market groups within the **Pricing** section. + ## Configure precise release scheduling The **Schedule** section on the [Pricing and availability](./price-and-availability.md) page lets you set the precise date and time that your app should become available in the Store, giving you greater flexibility and the ability to customize dates for different markets. diff --git a/hub/apps/publish/publish-your-app/msix/images/msix-set-app-pricing-other-types.png b/hub/apps/publish/publish-your-app/msix/images/msix-set-app-pricing-other-types.png new file mode 100644 index 0000000000000000000000000000000000000000..11f908ee01accea03b4c2d8e716b963844f7a5f2 GIT binary patch literal 70499 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 By3_yw literal 0 HcmV?d00001 From a9bd8437d89186de972d991d06c53fa0a9e4f2da Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Fri, 30 May 2025 10:00:43 -0300 Subject: [PATCH 04/13] Rephrased some content to make it clearer --- .../add-on/manage-submission-options.md | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md b/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md index c187b3659c..d5bcfee78b 100644 --- a/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md +++ b/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md @@ -18,7 +18,7 @@ By default, we'll publish your submission as soon as it passes certification (or **Publish this submission as soon as it passes certification (or per dates you selected in the Schedule section)** is the default selection, and means that your submission will begin the publishing process as soon as it passes certification, unless you have configured dates in the [Schedule](./schedule-pricing-changes.md#configure-precise-release-scheduling) section of the **Pricing and availability** page. -For most submissions, we recommend leaving the **Publishing hold options** section set to this option. If you want to specify certain dates for your submission to be published, use the **Publish this submission as soon as it passes certification (or per dates you selected in the Schedule section)**. Leaving this section set to the default option will not cause the submission to be published earlier than the date(s) that you set in the **Schedule** section. The dates you selected in the **Schedule** section will be used to determine when your product becomes available to customers in the Store. +For most submissions, we recommend keeping the **Publishing hold options** section set to the default. If you want your submission to be published on specific dates, configure those dates in the **Schedule** section. The default publishing hold option will ensure your submission is not published before the dates you set in the **Schedule** section. Your product will become available to customers in the Store based on the schedule you specify. ### Publish your submission manually @@ -26,11 +26,11 @@ If you don’t want to set a release date yet, and you prefer your submission to ### Start publishing your submission on a certain date -Choose **Start publishing this submission on** to ensure that the submission is not published until a certain date. With this option, your submission will be released as soon as possible on or after the date you specify. The date must be at least 24 hours in the future. Along with the date, you can also specify the time at which the submission should begin to be published. +Choose **Start publishing this submission on** if you want to delay publishing until a specific date. With this option, your submission will be released as soon as possible on or after the date you specify (which must be at least 24 hours in the future). You can also set the exact time for publishing to begin. -You can change this release date after submitting your product, as long as it hasn’t entered the Publish step yet. +You can update this release date after submitting your product, as long as it hasn’t entered the Publish step. -As noted earlier, if you want to specify certain dates for your submission to be published, use the **Publish this submission as soon as it passes certification (or per dates you selected in the Schedule section)** and leave the **Publishing hold options** set to the default selection. Using the **Start publishing this submission on** option means that your submission will not start the publishing process until that date, but delays during certification or publishing could cause the actual release date to be later than the date you select. +Remember, if you want your submission to be published on certain dates, you can use the **Publish this submission as soon as it passes certification (or per dates you selected in the Schedule section)** option and leave the **Publishing hold options** set to default. The **Start publishing this submission on** option ensures your submission won’t begin publishing until your chosen date, but delays during certification or publishing may result in the actual release occurring later than planned. ## Restricted capabilities @@ -40,35 +40,35 @@ During the certification process, our testers will review the info you provide t If we don’t approve your use of the capability, your submission will fail certification, and we will provide feedback in the certification report. You then have the option to create a new submission and upload packages which don’t declare the capability, or, if applicable, address any issues related to your use of the capability and request approval in a new submission. -Note that there are some restricted capabilities which will very rarely be approved. For more info about each restricted capability, see [App capability declarations](/windows/uwp/packaging/app-capability-declarations#restricted-capabilities). +Note that there are some restricted capabilities which will very rarely be approved. For more info about each restricted capability, see [App capability declarations](/windows/uwp/packaging/app-capability-declarations). ## Notes for certification -As you submit your app, you have the option to use the **Notes for certification** page to provide additional info to the certification testers. This info can help ensure that your app is tested correctly. Including these notes is particularly important for products that use Xbox Live Services and/or that require logging in to an account. If we can't fully test your submission, it may fail certification. +As you submit your app, you can use the **Notes for certification** page to give certification testers extra information that will help them test your app correctly. Providing these notes is especially important for apps that use Xbox Live Services or require users to log in. If testers can’t fully test your app, your submission may fail certification. -Make sure to include the following (if applicable for your app): +Be sure to include the following details if they apply to your app: -- **User names and passwords for test accounts**: If your app requires users to log in to a service or social media account, provide the user name and password for a test account. The certification testers will use this account when reviewing your app. +- **User names and passwords for test accounts**: If your app requires login to a service or social media, provide a test account’s user name and password. Testers will use this account during their review. -- **Steps to access hidden or locked features**: Briefly describe how testers can access any features, modes, or content that might not be obvious. Apps that appear to be incomplete may fail certification. +- **Steps to access hidden or locked features**: Briefly explain how testers can access any features, modes, or content that aren’t obvious. Apps that seem incomplete may fail certification. -- **Steps to verify background audio usage**: If your app allows audio to run in the background, testers may need instructions on how to access this feature so they can confirm it functions appropriately. +- **Steps to verify background audio usage**: If your app supports background audio, give instructions so testers can confirm this feature works as intended. -- **Expected differences in behavior based on region or other customer settings**: For example, if customers in different regions will see different content, make sure to call this out so that testers understand the differences and review appropriately. +- **Expected differences in behavior based on region or other customer settings**: If your app behaves differently for users in different regions or with different settings, explain these differences so testers know what to expect. -- **Info about what's changed in an app update**: For updates to previously published apps, you may want to let the testers know what has changed, especially if your packages are the same and you're just making changes to your app listing (such as adding more screenshots, changing your app's category, or editing the description). +- **Info about what's changed in an app update**: For updates, let testers know what’s new, especially if only your app listing has changed (like screenshots, category, or description) and not the app package itself. -- **The date you're entering the notes**: This is particularly important if you are using a development sandbox in Partner Center (for example, this is the case for any game that integrates with Xbox Live), since the notes you enter when publishing to a sandbox will remain when you request certification. Seeing the date helps testers evaluate whether there were any temporary issues that may no longer apply. +- **The date you're entering the notes**: This is important if you’re using a development sandbox in Partner Center (such as for Xbox Live integration). The date helps testers know if any issues mentioned might no longer apply. - **Anything else you think testers will need to understand about your submission** -When considering what to write, remember: +When writing your notes, keep these tips in mind: -- **A real person will read these notes.** Testers will appreciate a polite note and clear, helpful instructions. +- **A real person will read these notes.** Testers appreciate polite, clear, and helpful instructions. -- **Be succinct and keep instructions simple.** If you really need to explain something in detail, you can include the URL to a page with more info. However, keep in mind that customers of your app won't see these notes. If you feel that you need to provide complicated instructions for testing your app, consider whether your app might need to be made simpler so that customers (and testers) will know how to use it. +- **Be succinct and keep instructions simple.** If you need to provide detailed explanations, you can include a URL for more information. Remember, customers won’t see these notes. If your instructions are complicated, consider simplifying your app so both customers and testers can use it easily. -- **Services and external components must be online and available.** If your app needs to connect to a service in order to function, make sure that the service will be online and available. Include any information about the service that testers will need, such as login info. If your app can't connect to a service it needs during testing, it may fail certification. +- **Services and external components must be online and available.** If your app depends on an online service, make sure it’s available during testing and provide any needed information, such as login details. If testers can’t connect to required services, your app may fail certification. ## App submission controls From 708e70a8f132bba7bc06bba0f2007cdd03a075b1 Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Fri, 30 May 2025 10:01:05 -0300 Subject: [PATCH 05/13] Updated app submission page --- .../add-on/create-app-submission.md | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/hub/apps/publish/publish-your-app/add-on/create-app-submission.md b/hub/apps/publish/publish-your-app/add-on/create-app-submission.md index 309fed8888..c5aea633be 100644 --- a/hub/apps/publish/publish-your-app/add-on/create-app-submission.md +++ b/hub/apps/publish/publish-your-app/add-on/create-app-submission.md @@ -42,14 +42,21 @@ Here's a list of the info that you provide when creating your add-on submission. | **Pricing** | Required | | **Sale pricing** | Optional | +### Age ratings + +To publish a product in the Microsoft Store, you must provide accurate answers to questions and receive age ratings. + +> [!NOTE] +> You only need to provide age ratings information if your add-on has a **Durable** product type. + ### Store listings One Store listing required. We recommend providing Store listings for every language your app supports. | Field name | Notes | | --------------- | ------------------------------- | -| **Title** | Required (100 character limit) | -| **Description** | Optional (200 character limit) | +| **Product name**| Required (100 character limit) | +| **Description** | Required (200 character limit) | | **Icon** | Optional (.png, 300x300 pixels) | When you've finished entering this info, click **Submit to the Store**. In most cases, the certification process takes about an hour. After that, your add-on will be published to the Store and ready for customers to purchase. @@ -57,12 +64,6 @@ When you've finished entering this info, click **Submit to the Store**. In most > [!NOTE] > The add-on must also be implemented in your app's code. For more info, see [In-app purchases and trials](/windows/uwp/monetize/in-app-purchases-and-trials). -## Set your add-on product type and product ID - -An add-on must be associated with an app that you've created in Partner Center (even if you haven't submitted it yet). You can find the button to Create a new add-on on your app's Overview page or on its Add-ons page. - -After you select Create a new add-on, you'll be prompted to specify a product type and assign a product ID for your add-on. - ### Product type First, you'll need to indicate which type of add-on you are offering. This selection refers to how the customer can use your add-on. @@ -70,14 +71,6 @@ First, you'll need to indicate which type of add-on you are offering. This selec > [!NOTE] > You won't be able to change the product type after you save this page to create the add-on. If you choose the wrong product type, you can always delete your in-progress add-on submission and start over by creating a new add-on. - - -#### Durable - -Select **Durable** as your product type if your add-on is typically purchased only once. These add-ons are often used to unlock additional functionality in an app. - -The default **Product lifetime** for a durable add-on is **Forever**, which means the add-on never expires. You have the option to set the **Product lifetime** to a different duration in the [Properties](./enter-app-properties.md) step of the add-on submission process. If you do so, the add-on will expire after the duration you specify (with options from 1-365 days), in which case a customer could purchase it again after it expires. - #### Consumable If the add-on can be purchased, used (consumed), and then purchased again, you'll want to select one of the **consumable** product types. Consumable add-ons are often used for things like in-game currency (gold, coins, etc.) which can be purchased in set amounts and then used up by the customer. For more info, see [Enable consumable add-on purchases](/windows/uwp/monetize/enable-consumable-add-on-purchases). @@ -87,6 +80,14 @@ There are two types of consumable add-ons: - **Developer-managed consumable**: Balance and fulfillment must be managed within your app. Supported on all OS versions. - **Store-managed consumable:** Balance will be tracked by Microsoft across all of the customer’s devices running Windows 10, version 1607 or later; not supported on any earlier OS versions. To use this option, the parent product must be compiled using Windows 10 SDK version 14393 or later. Also note that you can't submit a Store-managed consumable add-on to the Store until the parent product has been published (though you can create the submission in Partner Center and begin working on it at any time). You'll need to enter the quantity for your Store-managed consumable add-on in the **Properties** step of your submission. + + +#### Durable + +Select **Durable** as your product type if your add-on is typically purchased only once. These add-ons are often used to unlock additional functionality in an app. + +The default **Product lifetime** for a durable add-on is **Forever**, which means the add-on never expires. You have the option to set the **Product lifetime** to a different duration in the [Properties](./enter-app-properties.md) step of the add-on submission process. If you do so, the add-on will expire after the duration you specify (with options from 1-365 days), in which case a customer could purchase it again after it expires. + #### Subscription If your want to charge customers on a recurring basis for your add-on, choose **Subscription**. From fea637e43151870822b8ff1c4c6014751d41c970 Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Fri, 30 May 2025 10:01:19 -0300 Subject: [PATCH 06/13] Updated toc --- hub/apps/publish/toc.yml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/hub/apps/publish/toc.yml b/hub/apps/publish/toc.yml index fe291eae3e..a726e19a59 100644 --- a/hub/apps/publish/toc.yml +++ b/hub/apps/publish/toc.yml @@ -192,17 +192,9 @@ items: - name: Set and schedule pricing href: publish-your-app/add-on/schedule-pricing-changes.md - name: Add properties - items: - - name: Overview - href: publish-your-app/add-on/enter-app-properties.md - - name: Provide support info - href: publish-your-app/add-on/support-info.md + href: publish-your-app/add-on/enter-app-properties.md - name: Create Store Listings - items: - - name: Overview - href: publish-your-app/add-on/create-app-store-listing.md - - name: Add and edit Store listing info - href: publish-your-app/add-on/add-and-edit-store-listing-info.md + href: publish-your-app/add-on/create-app-store-listing.md - name: Manage Submission options href: publish-your-app/add-on/manage-submission-options.md - name: Update existing add-on From 7648bef2cf03b11c3f14ab9b105ee90fd7cd6e82 Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Fri, 30 May 2025 12:39:46 -0300 Subject: [PATCH 07/13] Applied minor fixes --- .../add-on/app-certification-process.md | 8 ++++---- .../add-on/create-app-store-listing.md | 4 ++-- .../add-on/create-app-submission.md | 14 +++++++------- .../add-on/enter-app-properties.md | 4 ++-- .../add-on/manage-submission-options.md | 14 +++++++------- .../publish-your-app/add-on/market-selection.md | 2 +- .../add-on/price-and-availability.md | 2 +- .../add-on/product-declarations.md | 2 +- .../add-on/publish-update-to-your-app-on-store.md | 2 +- .../add-on/reserve-your-apps-name.md | 2 +- .../add-on/schedule-pricing-changes.md | 2 +- .../publish-your-app/add-on/visibility-options.md | 2 +- .../publish-your-app/add-on/what-are-add-ons.md | 2 +- .../add-on/write-great-app-description.md | 2 +- 14 files changed, 31 insertions(+), 31 deletions(-) diff --git a/hub/apps/publish/publish-your-app/add-on/app-certification-process.md b/hub/apps/publish/publish-your-app/add-on/app-certification-process.md index 1f7109a143..32829d0ab4 100644 --- a/hub/apps/publish/publish-your-app/add-on/app-certification-process.md +++ b/hub/apps/publish/publish-your-app/add-on/app-certification-process.md @@ -8,7 +8,7 @@ ms.localizationpriority: medium # The app certification process for add-on -When you finish creating your app's submission and click **Submit to the Store**, the submission enters the certification step. This process usually is completed within a few hours, though in some cases it may take up to three business days. After your submission passes certification, it can take up to 24 hours for customers to see the app’s listing for a new submission, or for an updated submission with changes to packages. If your update only changes Store listing details, the publishing process will be completed in less than an hour. You'll be notified when your submission is published, and the app's status in the dashboard will be **In the Store**. +When you finish creating your app's submission and click **Submit to the Store**, the submission enters the certification step. This process is usually completed within a few hours, though in some cases it may take up to three business days. After your submission passes certification, it can take up to 24 hours for customers to see the app’s listing for a new submission, or for an updated submission with packages changes. If you update only changes Store listing details, the publishing process will be completed in less than an hour. You'll be notified when your submission is published, and the app's status in the dashboard will be **In the Store**. ## Preprocessing @@ -22,7 +22,7 @@ During this phase, several tests are conducted: - **Technical compliance tests:** Technical compliance is tested by the Windows App Certification Kit. (You should always make sure to [test your app with the Windows App Certification Kit](/windows/uwp/debug-test-perf/windows-app-certification-kit) before you submit it to the Store.) - **Content compliance:** The amount of time this takes varies depending on how complex your app is, how much visual content it has, and how many apps have been submitted recently. Be sure to provide any info that testers should be aware of in the [Notes for certification](./manage-submission-options.md#notes-for-certification) page. -After the certification process is complete, you'll get a certification report telling you whether or not your app passed certification. If it didn't pass, the report will indicate which test failed or which [policy](../../store-policies.md) was not met. After you fix the problem, you can create a new submission for your app to start the certification process again. +After the certification process is complete, you'll get a certification report telling you whether or not your app passed certification. If it didn't pass, the report will indicate which test failed or which [policy](../../store-policies.md) was not met. Once you fix the problem, you can create a new submission for your app and start the certification process again. ## Release @@ -37,13 +37,13 @@ When your app passes certification, it's ready to move to the **Publishing** pro Your app's packages are digitally signed to protect them against tampering after they have been released. Once this phase has begun, you can no longer cancel your submission or change its release date. -For new apps and updates which include changes to the app's packages, the publishing process will be completed within 24 hours. For updates that only change options such as Store listing details, but don't change the app's packages, the publishing process will take less than one hour. +For new apps and updates that include changes to the app's packages, the publishing process will be completed within 24 hours. For updates that only change options such as Store listing details, but don't change the app's packages, the publishing process will take less than one hour. While your app is in the publishing phase, the **Show details** link in the Status column for your app’s submission lets you know when your new packages and Store listing details are available to customers on each of your supported OS versions. Steps that have not yet completed will show **Pending**. Your app will remain in the publishing phase until the process has completed, meaning that the new packages and/or listing details are available to all of your app’s potential customers. ## In the Store -After successfully going through the steps above, the submission's status will change from **Publishing** to **In the Store**. Your submission will then be available in the Microsoft Store for customers to download (unless you have chosen another [Discoverability](./visibility-options.md#discoverability) option). +After successfully completing the steps above, the submission's status will change from **Publishing** to **In the Store**. Your submission will then be available in the Microsoft Store for customers to download (unless you have chosen another [Discoverability](./visibility-options.md#discoverability) option). > [!NOTE] > We also conduct spot checks of apps after they've been published so we can identify potential problems and ensure that your app complies with all of the [Microsoft Store Policies](../../store-policies.md). If we find any problems, you'll be notified about the issue and how to fix it, if applicable, or if it has been removed from the Store. diff --git a/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md b/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md index a08c7dd0fe..84512f0b51 100644 --- a/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md +++ b/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md @@ -8,7 +8,7 @@ ms.localizationpriority: medium # Create add-on store listings -When submitting an add-on in [Partner Center](https://partner.microsoft.com/dashboard), the info you provide in the **Store listings** step will be displayed to your customers when they see the option to acquire your add-on. Make sure to consider the Store listing info carefully in order to represent your add-on accurately in a way that makes it appealing to customers. You can provide customized Store listings for different languages. +When submitting an add-on in [Partner Center](https://partner.microsoft.com/dashboard), the info you provide in the **Store listings** step will be displayed to your customers when they see the option to acquire your add-on. Be sure to consider the Store listing info carefully in order to represent your add-on accurately in a way that makes it appealing to customers. You can provide customized Store listings in different languages. > [!TIP] > You can also [import and export Store listings](./import-and-export-store-listings.md) for your add-on if you'd like to enter your listing info offline in a .csv file, rather than providing this info directly in Partner Center. This may be especially convenient when creating listings in many languages. However, you can always enter your info directly in [Partner Center](https://partner.microsoft.com/dashboard) rather than using the import/export feature. @@ -33,7 +33,7 @@ You must provide a title here, which is the name your customers will see for thi ## Description -You must provide a description of up to 200 characters. This information will be displayed to customers along with the title. +You must provide a description, up to 200 characters. This information will be displayed to customers along with the title. ## Icon diff --git a/hub/apps/publish/publish-your-app/add-on/create-app-submission.md b/hub/apps/publish/publish-your-app/add-on/create-app-submission.md index c5aea633be..10931f37a2 100644 --- a/hub/apps/publish/publish-your-app/add-on/create-app-submission.md +++ b/hub/apps/publish/publish-your-app/add-on/create-app-submission.md @@ -44,14 +44,14 @@ Here's a list of the info that you provide when creating your add-on submission. ### Age ratings -To publish a product in the Microsoft Store, you must provide accurate answers to questions and receive age ratings. +To publish a product in the Microsoft Store, you must provide accurate answers to the age ratings questions and receive age ratings. > [!NOTE] > You only need to provide age ratings information if your add-on has a **Durable** product type. ### Store listings -One Store listing required. We recommend providing Store listings for every language your app supports. +At least one Store listing is required. We recommend that you provide Store listings for every language your app supports. | Field name | Notes | | --------------- | ------------------------------- | @@ -78,7 +78,7 @@ If the add-on can be purchased, used (consumed), and then purchased again, you'l There are two types of consumable add-ons: - **Developer-managed consumable**: Balance and fulfillment must be managed within your app. Supported on all OS versions. -- **Store-managed consumable:** Balance will be tracked by Microsoft across all of the customer’s devices running Windows 10, version 1607 or later; not supported on any earlier OS versions. To use this option, the parent product must be compiled using Windows 10 SDK version 14393 or later. Also note that you can't submit a Store-managed consumable add-on to the Store until the parent product has been published (though you can create the submission in Partner Center and begin working on it at any time). You'll need to enter the quantity for your Store-managed consumable add-on in the **Properties** step of your submission. +- **Store-managed consumable**: Balance will be tracked by Microsoft across all of the customer’s devices running Windows 10, version 1607 or later; not supported on any earlier OS versions. To use this option, the parent product must be compiled using Windows 10 SDK version 14393 or later. Also note that you can't submit a Store-managed consumable add-on to the Store until the parent product has been published (though you can create the submission in Partner Center and begin working on it at any time). You'll need to enter the quantity for your Store-managed consumable add-on in the **Properties** step of your submission. @@ -90,13 +90,13 @@ The default **Product lifetime** for a durable add-on is **Forever**, which mean #### Subscription -If your want to charge customers on a recurring basis for your add-on, choose **Subscription**. +If you want to charge customers on a recurring basis for your add-on, select **Subscription**. After a subscription add-on is initially acquired by a customer, they will continue to be charged at recurring intervals in order to keep using the add-on. The customer can cancel the subscription at any time to avoid further charges. You'll need to specify the subscription period, and whether or not to offer a free trial, in the **Properties** step of your submission. Subscription add-ons are only supported for customers running Windows 10, version 1607 or later. The parent app must be compiled using Windows 10 SDK version 14393 or later and it must use the in-app purchase API in the **Windows.Services.Store** namespace instead of the **Windows.ApplicationModel.Store** namespace. For more info, see [Enable subscription add-ons for your app](/windows/uwp/monetize/enable-subscription-add-ons-for-your-app). -You must submit the parent product before you can publish subscription add-ons to the Store (though you can create the submission in Partner Center and begin working on it at any time). +You must submit the parent product before you can publish subscription add-ons to the Store, although you can create the submission in Partner Center and begin working on it at any time. ### Product ID @@ -105,11 +105,11 @@ Regardless of the product type you choose, you will need to enter a unique produ Here are a few things to keep in mind when choosing a product ID: - A product ID must be unique within the parent product. -- You can’t change or delete an add-on's product ID after it's been published. +- You can’t change or delete an add-on’s product ID after it's been published. - A product ID can't be more than 100 characters in length. - A product ID cannot include any of the following characters: **< > \* % & : \\ ? + ,** - Customers won't see the product ID. (Later, you can enter a [title and description](./create-app-store-listing.md) to be displayed to customers.) -- If your previously-published app supports Windows Phone 8.1 or earlier, you must only use alphanumeric characters, periods, and/or underscores in your product ID. If you use any other types of characters, the add-on will not be available for purchase to customers running Windows Phone 8.1 or earlier. +- If your previously published app supports Windows Phone 8.1 or earlier, you must only use alphanumeric characters, periods, or underscores in your product ID. If you use any other types of characters, the add-on will not be available for purchase to customers running Windows Phone 8.1 or earlier. ## Notifications diff --git a/hub/apps/publish/publish-your-app/add-on/enter-app-properties.md b/hub/apps/publish/publish-your-app/add-on/enter-app-properties.md index 6533a1abd5..53afd1a5d5 100644 --- a/hub/apps/publish/publish-your-app/add-on/enter-app-properties.md +++ b/hub/apps/publish/publish-your-app/add-on/enter-app-properties.md @@ -29,7 +29,7 @@ If you selected **Store-managed consumable** for your product type, **Quantity** ## Subscription period -If you selected **Subscription** for your product type, **Subscription period** is shown here. Choose an option to specify how frequently a customer will be charged for the subscription. The default option is **Monthly**, but you can also select **3 months**, **6 months**, **Annually**, or **24 months**. +If you selected **Subscription** for your product type, **Subscription period** is shown here. Select an option to specify how frequently a customer will be charged for the subscription. The default option is **Monthly**, but you can also select **3 months**, **6 months**, **Annually**, or **24 months**. > [!IMPORTANT] > After your add-on is published, you can't change your **Subscription period** selection. @@ -85,7 +85,7 @@ Enter the URL of the web page where your customers can go for support with your ## Phone number and address info -Enter Phone number, Address, Apartment / Suite, City, State / Province, Country and Postal code so customers can reach out to you in case of any concern or dispute. +Enter your phone number, address, apartment/suite, city, state/province, country, and postal code so customers can contact you in case of any concern or dispute. > [!IMPORTANT] > Businesses / Company accounts offering products in France market need to ensure to provide this info for compliance with France Consumer Protection Laws and Regulations 2023 - 2024. This is optional for individual developers. diff --git a/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md b/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md index d5bcfee78b..fcc7a15303 100644 --- a/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md +++ b/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md @@ -6,7 +6,7 @@ ms.topic: article ms.localizationpriority: medium --- -# Manage Submission options for add-on +# Manage submission options for add-on The **Submission options** page of the app submission process is where you can provide more information to help us test your product properly. This is an optional step, but is recommended for many submissions. You can also optionally set publishing hold options if you want to delay the publishing process. @@ -77,8 +77,8 @@ When writing your notes, keep these tips in mind: To delete a draft submission, follow these steps: 1. Go to the Apps and Games overview page and open the app for which you want to delete the app add-on. You can only delete an app add-on that is not submitted or live on the Store. -1. Click on the app add-on you want to delete. -1. Click on delete from the Action section. +1. Click the app add-on you want to delete. +1. Click delete from the Action section. 1. Confirm the delete action. ### Cancel review @@ -86,18 +86,18 @@ To delete a draft submission, follow these steps: To cancel a review process, follow these steps: 1. Go to the Apps and Games overview page and open the app for which you submitted the app add-on for review or certification. -1. Click on the app add-on for which you want to cancel the certification process. +1. Click the app add-on for which you want to cancel the certification process. 1. Click **View progress** to for the app add-on submission for which you'd like to cancel the review process. 1. Click **Cancel certification**. 1. Confirm that you want to cancel the review process. ### Make product available or unavailable -To make your app unavailable without deleting it from the store, follow the following steps. +To make your app unavailable without deleting it from the store, follow these steps. 1. Go to the Apps and Games overview page and open the app for which you want to make the app add-on unavailable. -1. Click on the app add-on you want to make unavailable. -1. From the action section on the far-right hand side, click **Make product unavailable**. +1. Click the app add-on you want to make unavailable. +1. From the action section on the right-hand side, click **Make product unavailable**. 1. Confirm that you want to make your app add-on unavailable. To make your app add-on available again, perform the same steps as above, but click **Make product available** instead. diff --git a/hub/apps/publish/publish-your-app/add-on/market-selection.md b/hub/apps/publish/publish-your-app/add-on/market-selection.md index 4d084d90e7..020c55e73b 100644 --- a/hub/apps/publish/publish-your-app/add-on/market-selection.md +++ b/hub/apps/publish/publish-your-app/add-on/market-selection.md @@ -29,7 +29,7 @@ Note that your selections here apply only to new acquisitions; if someone alread > Keep in mind that even if you select all markets, local laws and restrictions or other factors may prevent certain apps from being listed in some countries and regions. See [company account verification requirements](/windows/apps/publish/store-business-verification-reqs) for more information. Also, some markets may have specific requirements related to age ratings. If your app doesn’t meet these requirements, we won't be able to offer your app in that market. See [Age ratings](../msix/age-ratings.md) for more info. > [!NOTE] -> You will also see a checkbox that lets you indicate whether to offer your app in any market that the Store may add in the future. If you leave this box checked, and we later add new markets, the base price and general availability date for your submission will be used for your app in those markets. If you don't want this to happen, you can uncheck this box, in which case we will not list your app in any future markets (though you can always add them later). +> You will also see a checkbox that lets you indicate whether to offer your app in any market that the Store may add in the future. If you leave this box checked and we later add new markets, the base price and general availability date for your submission will be used for your app in those markets. If you don't want this to happen, you can uncheck this box, in which case we will not list your app in any future markets (though you can always add them later). ## Microsoft Store consumer markets diff --git a/hub/apps/publish/publish-your-app/add-on/price-and-availability.md b/hub/apps/publish/publish-your-app/add-on/price-and-availability.md index db9aa673ae..25cf731721 100644 --- a/hub/apps/publish/publish-your-app/add-on/price-and-availability.md +++ b/hub/apps/publish/publish-your-app/add-on/price-and-availability.md @@ -38,7 +38,7 @@ For more info, see [Configure precise release scheduling](./schedule-pricing-cha ## Pricing You must select a base price for your add-on (unless you have selected the **Stop acquisition** option in the **Visibility** section). For **Subscription** product type, the base price default selection is **Free**, for other product types there is no a default base price but it can be selected from the retail price dropdown after selecting the currency. -If you want to charge money for the add-on, be sure to choose one of the available price tiers (starting at .99 USD). +If you want to charge money for the add-on, be sure to choose one of the available price tiers (starting at $0.99 USD). You can also schedule price changes to indicate the date and time at which the add-on’s price should change. Additionally, you have the option to customize these changes for specific markets. diff --git a/hub/apps/publish/publish-your-app/add-on/product-declarations.md b/hub/apps/publish/publish-your-app/add-on/product-declarations.md index 7ce6d682cd..52bb4a2be8 100644 --- a/hub/apps/publish/publish-your-app/add-on/product-declarations.md +++ b/hub/apps/publish/publish-your-app/add-on/product-declarations.md @@ -10,7 +10,7 @@ ms.localizationpriority: medium The **Product declarations** section of the [Properties](./enter-app-properties.md) page of the [submission process](./create-app-submission.md) helps make sure your app is displayed appropriately and offered to the right set of customers, and helps them understand how they can use your app. -The following sections describe some of the declarations and what you need to consider when determining whether each declaration applies to your app. Note that two of these declarations are checked by default (as described below.) Depending on your product's category, you may also see additional declarations. Be sure to review all of the declarations and ensure they accurately reflect your submission. +The following sections describe some of the declarations and what you need to consider when determining whether each declaration applies to your app. Note that two of these declarations are checked by default (as described below). Depending on your product's category, you may also see additional declarations. Be sure to review all of the declarations and ensure they accurately reflect your submission. ## This app allows users to make purchases, but does not use the Microsoft Store commerce system diff --git a/hub/apps/publish/publish-your-app/add-on/publish-update-to-your-app-on-store.md b/hub/apps/publish/publish-your-app/add-on/publish-update-to-your-app-on-store.md index dd694480de..efe6966b10 100644 --- a/hub/apps/publish/publish-your-app/add-on/publish-update-to-your-app-on-store.md +++ b/hub/apps/publish/publish-your-app/add-on/publish-update-to-your-app-on-store.md @@ -12,4 +12,4 @@ You can make changes to a published add-on at any time. Add-on changes are submi To submit updates, go to the add-on's page in Partner Center and click **Update**. This will create a new submission for the add-on, using the info from your previous submission as a starting point. Make the changes you'd like, and then click **Submit to the Store**. -If you'd like to remove an add-on you've previously offered, you can do this by creating a new submission and changing the [Distribution and visibility](./price-and-availability.md) option to **Hidden in the Store** with the **Stop acquisition** option. Be sure to update your app's code as needed to also remove references to the add-on. \ No newline at end of file +If you'd like to remove an add-on you've previously offered, you can do this by creating a new submission and changing the [Distribution and visibility](./price-and-availability.md) option to **Hidden in the Store** with the **Stop acquisition** option. Be sure to update your app's code as needed to remove references to the add-on. \ No newline at end of file diff --git a/hub/apps/publish/publish-your-app/add-on/reserve-your-apps-name.md b/hub/apps/publish/publish-your-app/add-on/reserve-your-apps-name.md index a5f7426e09..6725deebd1 100644 --- a/hub/apps/publish/publish-your-app/add-on/reserve-your-apps-name.md +++ b/hub/apps/publish/publish-your-app/add-on/reserve-your-apps-name.md @@ -15,7 +15,7 @@ Follow the following steps to reserve your app's name: 1. Navigate to the [Partner Center apps and games page](https://partner.microsoft.com/dashboard/apps-and-games/overview). 2. Click **New product**. -3. Click on **MSIX or PWA app**. If you want to submit MSIX or PWA game, click on **Game**. +3. Click on **MSIX or PWA app**. If you want to submit an MSIX or PWA game, click on **Game**. :::image type="content" source="../msix/images/msix-new-product.png" lightbox="../msix/images/msix-new-product.png" alt-text="A screenshot showing how to create a MSIX/PWA app."::: diff --git a/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md b/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md index 9f4673191c..237494af94 100644 --- a/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md +++ b/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md @@ -31,7 +31,7 @@ In the **Pricing** section, click **Review price per market** to see the corresp When you select your app's **Base price**, that price will be used in every market where your app is sold, unless you override the base price in any market(s). -You can set the **Base price** to **Free** or **0** depending on your product type. Also you can choose an available price tier, which sets the price in all the countries/regions where you choose to distribute your app. Price tiers start at 0.99 USD, with additional tiers available at increasing increments (1.09 USD, 1.19 USD, and so on). The increments generally increase as the price gets higher. +You can set the **Base price** to **Free** or **0** depending on your product type. You can also choose an available price tier, which sets the price in all the countries/regions where you choose to distribute your app. Price tiers start at 0.99 USD, with additional tiers available at increasing increments (1.09 USD, 1.19 USD, and so on). The increments generally increase as the price gets higher. > [!NOTE] > These price tiers also apply to add-ons. diff --git a/hub/apps/publish/publish-your-app/add-on/visibility-options.md b/hub/apps/publish/publish-your-app/add-on/visibility-options.md index 38dfb7ca2d..fe3a9958da 100644 --- a/hub/apps/publish/publish-your-app/add-on/visibility-options.md +++ b/hub/apps/publish/publish-your-app/add-on/visibility-options.md @@ -18,7 +18,7 @@ The Audience section lets you specify whether you want to restrict the visibilit ### Public audience -By default, your app’s Store listing will be visible to a **Public audience**. This is appropriate for most submissions, unless you want to limit who can see your app’s listing to specific people. You can also use the options in the [Discoverability](#discoverability) section to restrict discoverability if you’d like. +By default, your app’s Store listing will be visible to the **Public audience**. This is appropriate for most submissions, unless you want to limit who can see your app’s listing to specific people. You can also use the options in the [Discoverability](#discoverability) section to restrict discoverability if you’d like. > [!IMPORTANT] > If you submit a product with this option set to **Public audience**, you can't choose **Private audience** in a later submission. diff --git a/hub/apps/publish/publish-your-app/add-on/what-are-add-ons.md b/hub/apps/publish/publish-your-app/add-on/what-are-add-ons.md index 1d525b7d9e..51ad8aeada 100644 --- a/hub/apps/publish/publish-your-app/add-on/what-are-add-ons.md +++ b/hub/apps/publish/publish-your-app/add-on/what-are-add-ons.md @@ -9,4 +9,4 @@ ms.date: 07/02/2024 Add-ons (also sometimes referred to as in-app products) are supplementary items for your app that can be purchased by customers. An add-on can be a fun new feature, a new game level, or anything else you think will keep users engaged. Not only are add-ons a great way to make money, but they help to drive customer interaction and engagement. -Add-ons are published through Partner Center, and require you to have an active developer account. You'll also need to enable the add-ons in your app's code. \ No newline at end of file +Add-ons are published through Partner Center and require you to have an active developer account. You'll also need to enable the add-ons in your app's code. \ No newline at end of file diff --git a/hub/apps/publish/publish-your-app/add-on/write-great-app-description.md b/hub/apps/publish/publish-your-app/add-on/write-great-app-description.md index 1a252b56dd..78c430ac87 100644 --- a/hub/apps/publish/publish-your-app/add-on/write-great-app-description.md +++ b/hub/apps/publish/publish-your-app/add-on/write-great-app-description.md @@ -23,7 +23,7 @@ Here are some tips for making your app's description the best it can be. - **Use a length that is just right.** A good description reads quickly, but also includes enough info to get the reader interested and explain what the app does. A complex app will need more sentences to describe it; a simple app may need only a few. In most cases the right length is somewhere over 200 words, but well under 3000. - **Be clear about free trials and add-ons.** If you offer a free trial of your app, be sure to explain how that trial works, so that customers understand which features are limited. It's also a good idea to mention what types of add-ons are available, particularly if they have significant impacts on your app's functionality. - **Use standard capitalization and punctuation.** Descriptions in all caps, or those that have unusual punctuation, can be hard to read. -- **Don't forget to check the spelling and grammar.** A description with lots of misspelled words or mangled sentences doesn't reflect well on the quality of your app. Be sure to review your description (or have someone else take a look) to check for errors. +- **Don't forget to check the spelling and grammar.** A description with lots of misspelled words or mangled sentences don't reflect well on the quality of your app. Be sure to review your description (or have someone else take a look) to check for errors. - **Don't include links or info that belongs elsewhere.** URLs that you enter in the description field won't be clickable, so don't try to add links for things like your privacy policy or support website. Instead, add these in the designated areas of the **Properties** page of your submission. - **Don't use HTML tags.** HTML or other code will not be rendered. Your description needs to be plain text only. - **Get ideas by reviewing descriptions of similar apps in the Store.** Take a look at how other developers describe their apps. This also helps you figure out what you can emphasize that is different about your app. From 21896be974e30dc0fbe816c74c05636b4a230d83 Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Fri, 30 May 2025 13:02:41 -0300 Subject: [PATCH 08/13] Fixed some issues --- .../publish-your-app/add-on/create-app-store-listing.md | 8 ++++---- .../publish-your-app/add-on/resolve-submission-errors.md | 2 +- .../publish-your-app/add-on/schedule-pricing-changes.md | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md b/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md index 84512f0b51..d59f7a65c6 100644 --- a/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md +++ b/hub/apps/publish/publish-your-app/add-on/create-app-store-listing.md @@ -23,18 +23,18 @@ To remove a language, click **Remove** (or click **Manage languages** and unchec When you have finished making your selections, click **Save** to return to the submission overview page. -# Add and edit Store listing info for add-on +## Add and edit Store listing info for add-on To edit a Store listing, click the language name from the add-on submission overview page. The info you can enter for each language is described below. -## Product name +### Product name You must provide a title here, which is the name your customers will see for this add-on. Your title can be up to 100 characters. -## Description +### Description You must provide a description, up to 200 characters. This information will be displayed to customers along with the title. -## Icon +### Icon You also have the option to provide an image that may be displayed to the customer. This icon must be a .png file that measures exactly 300 x 300 pixels. This icon is optional. \ No newline at end of file diff --git a/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md b/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md index ef34070751..ce58c828d8 100644 --- a/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md +++ b/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md @@ -47,7 +47,7 @@ Review this list to help avoid issues that frequently prevent apps from getting - [Provide any necessary info](./manage-submission-options.md#notes-for-certification) required to use your app, such as the user name and password for a test account if your app requires users to log in to a service, or any steps required to access hidden or locked features. -- Include a [privacy policy URL](./support-info.md#privacy-policy-url) if your app requires one; for example, if your app accesses any kind of personal information in any way or is otherwise required by law. To help determine if your app requires a privacy policy, review the [App Developer Agreement](https://go.microsoft.com/fwlink/?linkid=528905) and the [Microsoft Store Policies](../../store-policies.md). +- Include a [privacy policy URL](./enter-app-properties.md#privacy-policy-url) if your app requires one; for example, if your app accesses any kind of personal information in any way or is otherwise required by law. To help determine if your app requires a privacy policy, review the [App Developer Agreement](https://go.microsoft.com/fwlink/?linkid=528905) and the [Microsoft Store Policies](../../store-policies.md). - Make sure that your app's description clearly represents what your app does. For help, see our guidance on [writing a great app description](./write-great-app-description.md). diff --git a/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md b/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md index 237494af94..a174bc6b95 100644 --- a/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md +++ b/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md @@ -10,11 +10,11 @@ ms.localizationpriority: medium ## Configure app pricing -The **Pricing** section of the [Pricing and availability](./price-and-availability.md) page lets you select the base price for an app. You can also [schedule price changes](#schedule-price-changes) to indicate the date and time at which your app’s price should change. Additionally, you have the option to [override the base price for specific markets](#override-base-price-for-specific-markets), either by selecting a new price tier or by entering a free-form price in the market's local currency. Please be aware that Microsoft does not alter the product pricing you set without your approval. You’re in charge of making sure the prices match the current market situations, including currency exchange rates. +The **Pricing** section of the [Pricing and availability](./price-and-availability.md) page lets you select the base price for an app. You can also [schedule price changes](#schedule-price-changes) to indicate the date and time at which your app’s price should change. Additionally, you have the option to [override the base price for specific markets](#override-base-price-for-specific-markets-subscription-type), either by selecting a new price tier or by entering a free-form price in the market's local currency. Please be aware that Microsoft does not alter the product pricing you set without your approval. You’re in charge of making sure the prices match the current market situations, including currency exchange rates. ### Subscription type -:::image type="content" source="../msix/images/msix-set-app-pricing.png" lightbox="../msix/images/msix-set-app-pricing.png" alt-text="A screenshot of the Pricing and availability section showing how to set app pricing."::: +:::image type="content" source="../msix/images/msix-set-app-pricing.png" lightbox="../msix/images/msix-set-app-pricing.png" alt-text="A screenshot of the Pricing and availability section showing how to set app pricing for a Subscription type."::: In the **Pricing** section, click **view conversion table** to see the corresponding prices in all currencies. This also displays an ID number associated with each price tier, which you’ll need if you're using the [Microsoft Store submission API](/windows/uwp/monetize/manage-app-submissions#price-tiers) to enter prices. You can click **Download** to download a copy of the price tier table as a .csv file. @@ -23,7 +23,7 @@ In the **Pricing** section, click **view conversion table** to see the correspon ### Consumable and Durable types -:::image type="content" source="../msix/images/msix-set-app-pricing-other-types.png" lightbox="../msix/images/msix-set-app-pricing-other-types.png" alt-text="A screenshot of the Pricing and availability section showing how to set app pricing."::: +:::image type="content" source="../msix/images/msix-set-app-pricing-other-types.png" lightbox="../msix/images/msix-set-app-pricing-other-types.png" alt-text="A screenshot of the Pricing and availability section showing how to set app pricing for Consumable and Durable types."::: In the **Pricing** section, click **Review price per market** to see the corresponding prices for all markets. From b8d7a2c04f0fc295f19fd8639d3f155c2813f2ad Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Wed, 4 Jun 2025 16:05:59 -0300 Subject: [PATCH 09/13] Applied PR's feedback --- .../publish-your-app/add-on/resolve-submission-errors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md b/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md index ce58c828d8..0614dfc168 100644 --- a/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md +++ b/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md @@ -49,7 +49,7 @@ Review this list to help avoid issues that frequently prevent apps from getting - Include a [privacy policy URL](./enter-app-properties.md#privacy-policy-url) if your app requires one; for example, if your app accesses any kind of personal information in any way or is otherwise required by law. To help determine if your app requires a privacy policy, review the [App Developer Agreement](https://go.microsoft.com/fwlink/?linkid=528905) and the [Microsoft Store Policies](../../store-policies.md). -- Make sure that your app's description clearly represents what your app does. For help, see our guidance on [writing a great app description](./write-great-app-description.md). +- Make sure that your app's description clearly represents what your app does. For some tips on making your description stand out, see [Write a great app description](/hub/apps/publish/best-practices/best-practices.md). - Provide complete and accurate responses to all of the questions in the [Age ratings](../msix/age-ratings.md) section. From d9485347031a4f5693af278e200a0064ae8751b5 Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Wed, 4 Jun 2025 16:26:42 -0300 Subject: [PATCH 10/13] Applied PR's feedback --- .../publish/best-practices/best-practices.md | 59 +++++++++++++++++++ .../add-on/resolve-submission-errors.md | 2 +- 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 hub/apps/publish/best-practices/best-practices.md diff --git a/hub/apps/publish/best-practices/best-practices.md b/hub/apps/publish/best-practices/best-practices.md new file mode 100644 index 0000000000..1f8ad74f37 --- /dev/null +++ b/hub/apps/publish/best-practices/best-practices.md @@ -0,0 +1,59 @@ +--- +description: Best practices for publishing your app +title: Best practices for publishing your app +ms.topic: article +ms.date: 05/27/2025 +--- + +# Best practices + +## Tips for choosing a great app name + +Choosing the right name for your app is important. Pick a name that will capture your customers' interest and draw them in to learn more about your app. Here are some tips for choosing a great app name. + +**Keep it short**. While your app's name can have up to 256 characters, the space used to display your app's name is limited. Long names may be truncated based on where in the store your app is being displayed and the user's display size and settings. + +> [!TIP] +> Windows uses variable width fonts, so the number of visible characters in your title depends on which characters you use. For example, using Segoe UI, about 30 `i` characters will fit in the same space as 10 `w` characters. If you have multiple apps, be sure to test the visibility of each app's title, even if they are the same number of characters. Also be sure to test all localizations of your app's name. Keep in mind that East-Asian characters tend to be wider than Latin characters, so fewer characters will be displayed. + +**Be original**. Make sure your app name is distinctive enough that it won't be easily confused with an existing app. + +**Do not use names trademarked by others**. Make sure that you have the right to use the name that you reserve. If someone else has trademarked the name, they can report an infringement and you will not be able to keep using that name. If that happens after your app has been published, it will be removed from the Store until you've changed all instances of the name in your app, its content, and its store listing before you can submit your app for certification again. + +**Avoid trailing differentiators**. Information that distinguishes different versions of your app should not be put at the end of your title. This information can be truncated by the UI, and users can miss it even if it is displayed. + +If this is unavoidable, use different logos and app images to make it easier to differentiate one app from another. + +**Do not include emojis in your name**. You will not be able to reserve a name that includes emojis or other unsupported characters. + +### Choosing which device families to support + +If you upload packages targeting one individual device family, we'll check the box to make those packages available to new customers on that type of device. For example, if a package targets Windows.Desktop, the **Windows 10/11 Desktop** box will be checked for that package (and you won't be able to check the boxes for other device families). + +Packages targeting the Windows.Universal device family can run on any Windows 10 or Windows 11 device (including Xbox One). By default, we'll make those packages available to new customers on all device types _except_ for Xbox. + +You can uncheck the box for any Windows 10 or Windows 11 device family if you don’t want to offer your submission to customers on that type of device. If a device family’s box is unchecked, new customers on that type of device won’t be able to acquire the app (though customers who already have the app can still use it, and will get any updates you submit). + +If your app supports them, we recommend keeping all of the boxes checked, unless you have a specific reason to limit the types of Windows 10 or Windows 11 devices which can acquire your app. For instance, if you know that your app doesn't offer a good experience on [Surface Hub](https://developer.microsoft.com/windows/surfacehub) and/or [Microsoft HoloLens](https://developer.microsoft.com/mixed-reality), you can uncheck the **Windows 10 Team** and/or **Windows 10 Holographic** box. This prevents any new customers from acquiring the app on those devices. If you later decide you're ready to offer it to those customers, you can create a new submission with the boxes checked. + +## Write a great app description for MSIX app + +A great description can make your app stand out in the Microsoft Store and help encourage customers to download it. [The description you enter when submitting your app](/hub/apps/publish/publish-your-app/msix/add-and-edit-store-listing-info.md#description) is displayed in your app's Store listing. The first few lines may also be displayed in search results and algorithm lists in the Store. + +Here are some tips for making your app's description the best it can be. + +- **Grab attention in the first few sentences.** The beginning of your description is the most important, so make sure it grabs and holds attention. Start with the value prop: why should potential customers take the time and money to get your app? What is the benefit to choosing your app over another? In one or two sentences, using plain and clear language, explain your app's unique appeal and why someone would want it. +- **Make it easy to learn about your app.** After your initial hook, describe additional benefits, in-app purchase opportunities, and other details about your app that customers will want to know. Make sure you include any disclosures or information that you are required to provide under the law in the markets where you are distributing your app. +- **Use lists and short paragraphs.** Potential customers may just take a quick glance at your app's description. Breaking up the content by using short paragraphs and lists makes it easier to scan. + + > [!NOTE] + >  Adding a list of [product features](/hub/apps/publish/publish-your-app/msix/create-app-store-listing.md) can also help to quickly show what your app does. This list appears directly below the app description. + +- **Avoid dry language.** Write your description using engaging language. Be sure the wording clearly describes what your app does, but say it in a way that doesn't sound boring. For many apps, a casual and friendly tone works well. +- **Use a length that is just right.** A good description reads quickly, but also includes enough info to get the reader interested and explain what the app does. A complex app will need more sentences to describe it; a simple app may need only a few. In most cases the right length is somewhere over 200 words, but well under 3000. +- **Be clear about free trials and add-ons.** If you offer a free trial of your app, be sure to explain how that trial works, so that customers understand which features are limited. It's also a good idea to mention what types of add-ons are available, particularly if they have significant impacts on your app's functionality. +- **Use standard capitalization and punctuation.** Descriptions in all caps, or those that have unusual punctuation, can be hard to read. +- **Don't forget to check the spelling and grammar.** A description with lots of misspelled words or mangled sentences doesn't reflect well on the quality of your app. Be sure to review your description (or have someone else take a look) to check for errors. +- **Don't include links or info that belongs elsewhere.** URLs that you enter in the description field won't be clickable, so don't try to add links for things like your privacy policy or support website. Instead, add these in the designated areas of the **Properties** page of your submission. +- **Don't use HTML tags.** HTML or other code will not be rendered. Your description needs to be plain text only. +- **Get ideas by reviewing descriptions of similar apps in the Store.** Take a look at how other developers describe their apps. This also helps you figure out what you can emphasize that is different about your app. diff --git a/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md b/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md index 0614dfc168..50a2b949f1 100644 --- a/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md +++ b/hub/apps/publish/publish-your-app/add-on/resolve-submission-errors.md @@ -49,7 +49,7 @@ Review this list to help avoid issues that frequently prevent apps from getting - Include a [privacy policy URL](./enter-app-properties.md#privacy-policy-url) if your app requires one; for example, if your app accesses any kind of personal information in any way or is otherwise required by law. To help determine if your app requires a privacy policy, review the [App Developer Agreement](https://go.microsoft.com/fwlink/?linkid=528905) and the [Microsoft Store Policies](../../store-policies.md). -- Make sure that your app's description clearly represents what your app does. For some tips on making your description stand out, see [Write a great app description](/hub/apps/publish/best-practices/best-practices.md). +- Make sure that your app's description clearly represents what your app does. For some tips on making your description stand out, see [Write a great app description](../../best-practices/best-practices.md). - Provide complete and accurate responses to all of the questions in the [Age ratings](../msix/age-ratings.md) section. From 3992774c2e64153697b40ac9892473dc1a138598 Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Thu, 5 Jun 2025 10:46:49 -0300 Subject: [PATCH 11/13] Update create-app-submission.md --- .../publish-your-app/add-on/create-app-submission.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hub/apps/publish/publish-your-app/add-on/create-app-submission.md b/hub/apps/publish/publish-your-app/add-on/create-app-submission.md index 10931f37a2..57d401403b 100644 --- a/hub/apps/publish/publish-your-app/add-on/create-app-submission.md +++ b/hub/apps/publish/publish-your-app/add-on/create-app-submission.md @@ -32,6 +32,9 @@ Here's a list of the info that you provide when creating your add-on submission. | **Keywords** | Optional (up to 10 keywords, 30 character limit each) | | **Custom developer data** | Optional (3000 character limit) | +> [!TIP] +> For detailed information about the **Properties** fields, see the [Enter add-on properties](./enter-app-properties.md) section. + ### Pricing and availability page | Field name | Notes | @@ -42,6 +45,9 @@ Here's a list of the info that you provide when creating your add-on submission. | **Pricing** | Required | | **Sale pricing** | Optional | +> [!TIP] +> For detailed information about the **Pricing and availability** fields, see the [Set app pricing and availability for add-on](./price-and-availability.md) section. + ### Age ratings To publish a product in the Microsoft Store, you must provide accurate answers to the age ratings questions and receive age ratings. @@ -61,6 +67,9 @@ At least one Store listing is required. We recommend that you provide Store list When you've finished entering this info, click **Submit to the Store**. In most cases, the certification process takes about an hour. After that, your add-on will be published to the Store and ready for customers to purchase. +> [!TIP] +> For detailed information about the **Store listings** fields, see the [Create add-on store listings](./create-app-store-listing.md) section. + > [!NOTE] > The add-on must also be implemented in your app's code. For more info, see [In-app purchases and trials](/windows/uwp/monetize/in-app-purchases-and-trials). From cc988161e4bfc3b8058d6b80d18f846b286d8ccf Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Thu, 5 Jun 2025 11:07:36 -0300 Subject: [PATCH 12/13] Applied PR's feedback --- .../publish/best-practices/best-practices.md | 247 ++++++++++++++ .../add-on/configure-release-schedule.md | 72 ++++ .../add-on/schedule-pricing-changes.md | 309 ------------------ hub/apps/publish/toc.yml | 2 + 4 files changed, 321 insertions(+), 309 deletions(-) create mode 100644 hub/apps/publish/publish-your-app/add-on/configure-release-schedule.md diff --git a/hub/apps/publish/best-practices/best-practices.md b/hub/apps/publish/best-practices/best-practices.md index 1f8ad74f37..818da39b1e 100644 --- a/hub/apps/publish/best-practices/best-practices.md +++ b/hub/apps/publish/best-practices/best-practices.md @@ -57,3 +57,250 @@ Here are some tips for making your app's description the best it can be. - **Don't include links or info that belongs elsewhere.** URLs that you enter in the description field won't be clickable, so don't try to add links for things like your privacy policy or support website. Instead, add these in the designated areas of the **Properties** page of your submission. - **Don't use HTML tags.** HTML or other code will not be rendered. Your description needs to be plain text only. - **Get ideas by reviewing descriptions of similar apps in the Store.** Take a look at how other developers describe their apps. This also helps you figure out what you can emphasize that is different about your app. + +## Global Time Zones + +Below is a table that shows what specific time zones are used in each market, so when your submission uses local time (e.g. release at 9am local), you can find out what time will it be released in each market, in particular helpful with markets that have more than one time zone, like Canada. + +| Market | Time Zone | +| -------------------------------------------- | ------------------------------------------------------------- | +| Afghanistan | (UTC+04:30) Kabul | +| Albania | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Algeria | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| American Samoa | (UTC+13:00) Samoa | +| Andorra | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Angola | (UTC+01:00) West Central Africa | +| Anguilla | (UTC-04:00) Atlantic Time (Canada) | +| Antarctica | (UTC+12:00) Auckland, Wellington | +| Antigua and Barbuda | (UTC-04:00) Atlantic Time (Canada) | +| Argentina | (UTC-03:00) City of Buenos Aires | +| Armenia | (UTC+04:00) Abu Dhabi, Muscat | +| Aruba | (UTC-04:00) Atlantic Time (Canada) | +| Australia | (UTC+10:00) Canberra, Melbourne, Sydney | +| Austria | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | +| Azerbaijan | (UTC+04:00) Baku | +| Bahamas, The | (UTC-05:00) Eastern Time (US & Canada) | +| Bahrain | (UTC+04:00) Abu Dhabi, Muscat | +| Bangladesh | (UTC+06:00) Dhaka | +| Barbados | (UTC-04:00) Atlantic Time (Canada) | +| Belarus | (UTC+03:00) Minsk | +| Belgium | (UTC+01:00) Brussels, Copenhagen, Madrid, Paris | +| Belize | (UTC-06:00) Central Time (US & Canada) | +| Benin | (UTC+01:00) West Central Africa | +| Bermuda | (UTC-04:00) Atlantic Time (Canada) | +| Bhutan | (UTC+06:00) Dhaka | +| Bolivarian Republic of Venezuela | (UTC-04:00) Caracas | +| Bolivia | (UTC-04:00) Georgetown, La Paz, Manaus, San Juan | +| Bonaire, Saint Eustatius and Saba | (UTC-04:00) Atlantic Time (Canada) | +| Bosnia and Herzegovina | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Botswana | (UTC+01:00) West Central Africa | +| Bouvet Island | (UTC+00:00) Monrovia, Reykjavik | +| Brazil | (UTC-03:00) Brasilia | +| British Indian Ocean Territory | (UTC+06:00) Dhaka | +| British Virgin Islands | (UTC-04:00) Atlantic Time (Canada) | +| Brunei | (UTC+08:00) Irkutsk | +| Bulgaria | (UTC+02:00) Chisinau | +| Burkina Faso | (UTC+00:00) Monrovia, Reykjavik | +| Burundi | (UTC+02:00) Harare, Pretoria | +| Côte d'Ivoire | (UTC+00:00) Monrovia, Reykjavik | +| Cambodia | (UTC+07:00) Bangkok, Hanoi, Jakarta | +| Cameroon | (UTC+01:00) West Central Africa | +| Canada | (UTC-05:00) Eastern Time (US & Canada) | +| Cabo Verde | (UTC-01:00) Cabo Verde Is. | +| Cayman Islands | (UTC-05:00) Eastern Time (US & Canada) | +| Central African Republic | (UTC+01:00) West Central Africa | +| Chad | (UTC+01:00) West Central Africa | +| Chile | (UTC-04:00) Santiago | +| China | (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi | +| Christmas Island | (UTC+07:00) Krasnoyarsk | +| Cocos (Keeling) Islands | (UTC+06:30) Yangon (Rangoon) | +| Colombia | (UTC-05:00) Bogota, Lima, Quito, Rio Branco | +| Comoros | (UTC+03:00) Nairobi | +| Congo | (UTC+01:00) West Central Africa | +| Congo (DRC) | (UTC+01:00) West Central Africa | +| Cook Islands | (UTC-10:00) Hawaii | +| Costa Rica | (UTC-06:00) Central Time (US & Canada) | +| Croatia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Curaçao | (UTC-04:00) Cuiaba | +| Cyprus | (UTC+02:00) Chisinau | +| Czechia | (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | +| Denmark | (UTC+01:00) Brussels, Copenhagen, Madrid, Paris | +| Djibouti | (UTC+03:00) Nairobi | +| Dominica | (UTC-04:00) Atlantic Time (Canada) | +| Dominican Republic | (UTC-04:00) Atlantic Time (Canada) | +| Ecuador | (UTC-05:00) Bogota, Lima, Quito, Rio Branco | +| Egypt | (UTC+02:00) Chisinau | +| El Salvador | (UTC-06:00) Central Time (US & Canada) | +| Equatorial Guinea | (UTC+01:00) West Central Africa | +| Eritrea | (UTC+03:00) Nairobi | +| Estonia | (UTC+02:00) Chisinau | +| Ethiopia | (UTC+03:00) Nairobi | +| Falkland Islands | (UTC-04:00) Santiago | +| Faroe Islands | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | +| Fiji | (UTC+12:00) Fiji | +| Finland | (UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius | +| France | (UTC+01:00) Brussels, Copenhagen, Madrid, Paris | +| French Guiana | (UTC-03:00) Cayenne, Fortaleza | +| French Polynesia | (UTC-10:00) Hawaii | +| French Southern and Antarctic Lands | (UTC+05:00) Ashgabat, Tashkent | +| Gabon | (UTC+01:00) West Central Africa | +| Gambia, The | (UTC+00:00) Monrovia, Reykjavik | +| Georgia | (UTC-05:00) Eastern Time (US & Canada) | +| Germany | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | +| Ghana | (UTC+00:00) Monrovia, Reykjavik | +| Gibraltar | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Greece | (UTC+02:00) Athens, Bucharest | +| Greenland | (UTC+00:00) Monrovia, Reykjavik | +| Grenada | (UTC-04:00) Atlantic Time (Canada) | +| Guadeloupe | (UTC-04:00) Atlantic Time (Canada) | +| Guam | (UTC+10:00) Guam, Port Moresby | +| Guatemala | (UTC-06:00) Central Time (US & Canada) | +| Guernsey | (UTC+00:00) Monrovia, Reykjavik | +| Guinea | (UTC+00:00) Monrovia, Reykjavik | +| Guinea-Bissau | (UTC+00:00) Monrovia, Reykjavik | +| Guyana | (UTC-04:00) Atlantic Time (Canada) | +| Haiti | (UTC-05:00) Eastern Time (US & Canada) | +| Heard Island and McDonald Islands | (UTC-05:00) Bogota, Lima, Quito, Rio Branco | +| Holy See (Vatican City) | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Honduras | (UTC-06:00) Central Time (US & Canada) | +| Hong Kong SAR | (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi | +| Hungary | (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | +| Iceland | (UTC+00:00) Monrovia, Reykjavik | +| India | (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi | +| Indonesia | (UTC+07:00) Bangkok, Hanoi, Jakarta | +| Iraq | (UTC+04:00) Abu Dhabi, Muscat | +| Ireland | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | +| Israel | (UTC+02:00) Jerusalem | +| Italy | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | +| Jamaica | (UTC-05:00) Eastern Time (US & Canada) | +| Japan | (UTC+09:00) Osaka, Sapporo, Tokyo | +| Jersey | (UTC+00:00) Monrovia, Reykjavik | +| Jordan | (UTC+02:00) Chisinau | +| Kazakhstan | (UTC+05:00) Ashgabat, Tashkent | +| Kenya | (UTC+03:00) Nairobi | +| Kiribati | (UTC+14:00) Kiritimati Island | +| Korea | (UTC+09:00) Seoul | +| Kuwait | (UTC+04:00) Abu Dhabi, Muscat | +| Kyrgyzstan | (UTC+06:00) Astana | +| Laos | (UTC+07:00) Bangkok, Hanoi, Jakarta | +| Latvia | (UTC+02:00) Chisinau | +| Lesotho | (UTC+02:00) Harare, Pretoria | +| Liberia | (UTC+00:00) Monrovia, Reykjavik | +| Libya | (UTC+02:00) Chisinau | +| Liechtenstein | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Lithuania | (UTC+02:00) Chisinau | +| Luxembourg | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Macao SAR | (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi | +| Madagascar | (UTC+03:00) Nairobi | +| Malawi | (UTC+02:00) Harare, Pretoria | +| Malaysia | (UTC+08:00) Kuala Lumpur, Singapore | +| Maldives | (UTC+05:00) Ashgabat, Tashkent | +| Mali | (UTC+00:00) Monrovia, Reykjavik | +| Malta | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Man, Isle of | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | +| Marshall Islands | (UTC+12:00) Petropavlovsk-Kamchatsky - Old | +| Martinique | (UTC-04:00) Atlantic Time (Canada) | +| Mauritania | (UTC+00:00) Monrovia, Reykjavik | +| Mauritius | (UTC+04:00) Port Louis | +| Mayotte | (UTC+03:00) Nairobi | +| Mexico | (UTC-06:00) Guadalajara, Mexico City, Monterrey | +| Micronesia | (UTC+10:00) Guam, Port Moresby | +| Moldova | (UTC+02:00) Chisinau | +| Monaco | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Mongolia | (UTC+07:00) Krasnoyarsk | +| Montenegro | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Montserrat | (UTC-04:00) Atlantic Time (Canada) | +| Morocco | (UTC+01:00) Casablanca | +| Mozambique | (UTC+02:00) Harare, Pretoria | +| Myanmar | (UTC+06:30) Yangon (Rangoon) | +| Namibia | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | +| Nauru | (UTC+12:00) Petropavlovsk-Kamchatsky - Old | +| Nepal | (UTC+05:45) Kathmandu | +| Netherlands | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | +| New Caledonia | (UTC+11:00) Solomon Is., New Caledonia | +| New Zealand | (UTC+12:00) Auckland, Wellington | +| Nicaragua | (UTC-06:00) Central Time (US & Canada) | +| Niger | (UTC+01:00) West Central Africa | +| Nigeria | (UTC+01:00) West Central Africa | +| Niue | (UTC+13:00) Samoa | +| Norfolk Island | (UTC+11:00) Solomon Is., New Caledonia | +| North Macedonia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Northern Mariana Islands | (UTC+10:00) Guam, Port Moresby | +| Norway | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | +| Oman | (UTC+04:00) Abu Dhabi, Muscat | +| Pakistan | (UTC+05:00) Islamabad, Karachi | +| Palau | (UTC+09:00) Osaka, Sapporo, Tokyo | +| Palestinian Authority | (UTC+02:00) Chisinau | +| Panama | (UTC-05:00) Eastern Time (US & Canada) | +| Papua New Guinea | (UTC+10:00) Vladivostok | +| Paraguay | (UTC-04:00) Asuncion | +| Peru | (UTC-05:00) Bogota, Lima, Quito, Rio Branco | +| Philippines | (UTC+08:00) Kuala Lumpur, Singapore | +| Pitcairn Islands | (UTC-08:00) Pacific Time (US & Canada) | +| Poland | (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | +| Portugal | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | +| Qatar | (UTC+04:00) Abu Dhabi, Muscat | +| Reunion | (UTC+04:00) Port Louis | +| Romania | (UTC+02:00) Chisinau | +| ROW | (UTC-07:00) Mountain Time (US & Canada) | +| Russia | (UTC+03:00) Moscow, St. Petersburg | +| Rwanda | (UTC+02:00) Harare, Pretoria | +| São Tomé and Príncipe | (UTC+00:00) Monrovia, Reykjavik | +| Saint Barthélemy | (UTC+04:00) Yerevan | +| Saint Helena, Ascension and Tristan da Cunha | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | +| Saint Kitts and Nevis | (UTC-04:00) Atlantic Time (Canada) | +| Saint Lucia | (UTC-04:00) Atlantic Time (Canada) | +| Saint Martin (French Part) | (UTC-04:00) Atlantic Time (Canada) | +| Saint Pierre and Miquelon | (UTC-02:00) Mid-Atlantic - Old | +| Saint Vincent and the Grenadines | (UTC-04:00) Atlantic Time (Canada) | +| Samoa | (UTC+13:00) Samoa | +| San Marino | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Saudi Arabia | (UTC+03:00) Kuwait, Riyadh | +| Senegal | (UTC+00:00) Monrovia, Reykjavik | +| Serbia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Seychelles | (UTC+04:00) Abu Dhabi, Muscat | +| Sierra Leone | (UTC+00:00) Monrovia, Reykjavik | +| Singapore | (UTC+08:00) Kuala Lumpur, Singapore | +| Sint Maarten (Dutch Part) | (UTC-04:00) Atlantic Time (Canada) | +| Slovakia | (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | +| Slovenia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Solomon Islands | (UTC+11:00) Solomon Is., New Caledonia | +| Somalia | (UTC+03:00) Nairobi | +| South Africa | (UTC+02:00) Harare, Pretoria | +| South Georgia and the South Sandwich Islands | (UTC-02:00) Mid-Atlantic - Old | +| Spain | (UTC+01:00) Brussels, Copenhagen, Madrid, Paris | +| Sri Lanka | (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi | +| Suriname | (UTC-03:00) Cayenne, Fortaleza | +| Svalbard and Jan Mayen | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Swaziland | (UTC+02:00) Harare, Pretoria | +| Sweden | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | +| Switzerland | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | +| Taiwan | (UTC+08:00) Taipei | +| Tajikistan | (UTC+05:00) Ashgabat, Tashkent | +| Tanzania | (UTC+03:00) Nairobi | +| Thailand | (UTC+07:00) Bangkok, Hanoi, Jakarta | +| Timor-Leste | (UTC+09:00) Seoul | +| Togo | (UTC+00:00) Monrovia, Reykjavik | +| Tokelau | (UTC+13:00) Nuku'alofa | +| Tonga | (UTC+13:00) Nuku'alofa | +| Trinidad and Tobago | (UTC-04:00) Atlantic Time (Canada) | +| Tunisia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | +| Türkiye | (UTC+03:00) Istanbul | +| Turkmenistan | (UTC+05:00) Ashgabat, Tashkent | +| Turks and Caicos Islands | (UTC-05:00) Eastern Time (US & Canada) | +| Tuvalu | (UTC+12:00) Petropavlovsk-Kamchatsky - Old | +| U.S. Minor Outlying Islands | (UTC+13:00) Samoa | +| U.S. Virgin Islands | (UTC-04:00) Atlantic Time (Canada) | +| Uganda | (UTC+03:00) Nairobi | +| Ukraine | (UTC+02:00) Chisinau | +| United Arab Emirates | (UTC+04:00) Abu Dhabi, Muscat | +| United Kingdom | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | +| United States | (UTC-05:00) Eastern Time (US & Canada) | +| Uruguay | (UTC-03:00) Brasilia | +| Uzbekistan | (UTC+05:00) Ashgabat, Tashkent | +| Vanuatu | (UTC+11:00) Solomon Is., New Caledonia | +| Vietnam | (UTC+07:00) Bangkok, Hanoi, Jakarta | +| Wallis and Futuna | (UTC+12:00) Petropavlovsk-Kamchatsky - Old | +| Yemen | (UTC+04:00) Abu Dhabi, Muscat | +| Zambia | (UTC+02:00) Harare, Pretoria | +| Zimbabwe | (UTC+02:00) Harare, Pretoria | diff --git a/hub/apps/publish/publish-your-app/add-on/configure-release-schedule.md b/hub/apps/publish/publish-your-app/add-on/configure-release-schedule.md new file mode 100644 index 0000000000..dd3703818f --- /dev/null +++ b/hub/apps/publish/publish-your-app/add-on/configure-release-schedule.md @@ -0,0 +1,72 @@ +--- +description: Learn how to configure precise release scheduling for your app add-on in the Microsoft Store, including setting release and stop acquisition dates for specific markets. +title: Configure precise release scheduling +ms.date: 6/5/2025 +ms.topic: article +ms.localizationpriority: medium +--- + +# Configure precise release scheduling + +The **Schedule** section on the [Pricing and availability](./price-and-availability.md) page lets you set the precise date and time that your app should become available in the Store, giving you greater flexibility and the ability to customize dates for different markets. + +:::image type="content" source="../msix/images/msix-precise-release-scheduling.png" lightbox="../msix/images/msix-precise-release-scheduling.png" alt-text="A screenshot of the Pricing and availability section showing precise release scheduling options."::: + +> [!NOTE] +> Although this topic refers to apps, release scheduling for add-on submissions uses the same process. +> You can additionally opt to set a date when the product should no longer be available in the Store. Note that this means that the product can no longer be found in the Store via searching or browsing, but any customer with a direct link can see the product's Store listing. They can only download it if they already own the product or if they have a [promotional code](../../generate-promotional-codes.md) and are using a Windows 10 or Windows 11 device. + +By default (unless you have selected one of the **Make this app available but not discoverable in the Store** options in the [Visibility](./visibility-options.md#discoverability) section), your app will be available to customers as soon as it passes certification and complete the publishing process. To choose other dates, select **Show options** to expand this section. + +Note that you won't be able to configure dates in the **Schedule** section if you have selected one of the **Make this app available but not discoverable in the Store** options in the [Visibility](./visibility-options.md#discoverability) section, because your app won't be released to customers, so there is no release date to configure. + +> [!IMPORTANT] +> The dates you specify in the Schedule section only apply to customers on Windows 10 and Windows 11. +> +> If your previously-published app supports earlier OS versions, any **Stop acquisition** date you select will not apply to those customers; they will still be able to acquire the app (unless you submit an update with a new selection in the [Visibility](./visibility-options.md#discoverability) section, or if you select **Make app unavailable** from the **App overview** page). + +## Base schedule + +Selections you make for the Base schedule will apply to all markets in which your app is available, unless you later add dates for specific markets (or market groups) by selecting [Customize for specific markets](#customize-the-schedule-for-specific-markets). + +You’ll see two options here: **Release** and **Stop acquisition**. + +## Release + +In the **Release** drop-down, you can set when you want your app to be available in the Store. This means that the app is discoverable in the Store via searching or browsing, and that customers can view its Store listing and acquire the app. + +> [!NOTE] +> After your app has been published and has become available in the Store, you will no longer be able to select a **Release** date (since the app will already have been released). +> Here are the options you can configure for a product’s **Release** schedule: + +- **as soon as possible**: The product will release as soon as it is certified and published. This is the default option. +- **at**: The product will release on the date and time that you select. You additionally have two options: + - **UTC**: The time you select will be Universal Coordinated Time (UTC) time, so that the app releases at the same time everywhere. + - **Local**: The time you select will be the used in each time zone associated with a market. (Note that for markets that include more than one time zone, only one time zone in that market will be used. For the United States, the Eastern time zone is used. A comprehensive list of time zones is shown further down this page.) + +## Stop acquisition + +In the **Stop acquisition** dropdown, you can set a date and time when you want to stop allowing new customers to acquire it from the Store or discover its listing. This can be useful if you want to precisely control when an app will no longer be offered to new customers, such as when you are coordinating availability between more than one of your apps. + +By default, **Stop acquisition** is set to never. To change this, select **at** in the drop-down and specify a date and time, as described above. At the date and time you select, customers will no longer be able to acquire the app. + +It's important to understand that this option has the same impact as selecting **Make this app discoverable but not available** in the [Visibility](./visibility-options.md#discoverability) section and choosing **Stop acquisition: Any customer with a direct link can see the product’s Store listing, but they can only download it if they owned the product before, or have a promotional code and are using a Windows 10 or Windows 11 device.** To completely stop offering an app to new customers, click **Make app unavailable** from the App overview page. For more info, see [Removing an app from the Store](../msix/app-package-management.md#removing-an-app-from-the-store). + +> [!TIP] +> If you select a date to **Stop acquisition**, and later decide you'd like to make the app available again, you can create a new submission and change **Stop acquisition** back to **Never**. The app will become available again after your updated submission is published. + +## Customize the schedule for specific markets + +By default, the options you select above will apply to all markets in which your app is offered. To customize the price for specific markets, click **Customize for specific markets**. The **Market selection** pop-up window will appear, listing all of the markets in which you’ve chosen to make your app available. If you excluded any markets in the [Markets](./market-selection.md) section, those markets will not be shown. + +To add a schedule for one market, select it and click **Create**. You’ll then see the same **Release** and **Stop acquisition** options described above, but the selections you make will only apply to that market. + +To add a schedule that will apply to multiple markets, you’ll create a _market group_. To do so, select the markets you wish to include, then enter a name for the group. (This name is for your reference only and won’t be visible to any customers.) For example, if you want to create a market group for North America, you can select **Canada**, **Mexico**, and **United States**, and name it **North America** or another name that you choose. When you’re finished creating your market group, click **Create**. You’ll then see the same **Release** and **Stop acquisition** options described above, but the selections you make will only apply to that market group. + +To add a custom schedule for an additional market, or an additional market group, just click **Customize for specific markets** again and repeat these steps. To change the markets included in a market group, select its name. To remove the custom schedule for a market group (or individual market), click **Remove**. + +> [!NOTE] +> A market can’t belong to more than one of the market groups you use in the **Schedule** section. + +> [!TIP] +> For more information about **Global Time Zones** you can see the [table](../../best-practices/best-practices.md#global-time-zones) in the best practices section. diff --git a/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md b/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md index a174bc6b95..f3839a41f4 100644 --- a/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md +++ b/hub/apps/publish/publish-your-app/add-on/schedule-pricing-changes.md @@ -92,312 +92,3 @@ You can override the base price for one or more market groups. Once you’ve don > [!NOTE] > A market can’t belong to multiple market groups within the **Pricing** section. - -## Configure precise release scheduling - -The **Schedule** section on the [Pricing and availability](./price-and-availability.md) page lets you set the precise date and time that your app should become available in the Store, giving you greater flexibility and the ability to customize dates for different markets. - -:::image type="content" source="../msix/images/msix-precise-release-scheduling.png" lightbox="../msix/images/msix-precise-release-scheduling.png" alt-text="A screenshot of the Pricing and availability section showing precise release scheduling options."::: - -> [!NOTE] -> Although this topic refers to apps, release scheduling for add-on submissions uses the same process. -> You can additionally opt to set a date when the product should no longer be available in the Store. Note that this means that the product can no longer be found in the Store via searching or browsing, but any customer with a direct link can see the product's Store listing. They can only download it if they already own the product or if they have a [promotional code](../../generate-promotional-codes.md) and are using a Windows 10 or Windows 11 device. - -By default (unless you have selected one of the **Make this app available but not discoverable in the Store** options in the [Visibility](./visibility-options.md#discoverability) section), your app will be available to customers as soon as it passes certification and complete the publishing process. To choose other dates, select **Show options** to expand this section. - -Note that you won't be able to configure dates in the **Schedule** section if you have selected one of the **Make this app available but not discoverable in the Store** options in the [Visibility](./visibility-options.md#discoverability) section, because your app won't be released to customers, so there is no release date to configure. - -> [!IMPORTANT] -> The dates you specify in the Schedule section only apply to customers on Windows 10 and Windows 11. -> -> If your previously-published app supports earlier OS versions, any **Stop acquisition** date you select will not apply to those customers; they will still be able to acquire the app (unless you submit an update with a new selection in the [Visibility](./visibility-options.md#discoverability) section, or if you select **Make app unavailable** from the **App overview** page). - -### Base schedule - -Selections you make for the Base schedule will apply to all markets in which your app is available, unless you later add dates for specific markets (or market groups) by selecting [Customize for specific markets](#customize-the-schedule-for-specific-markets). - -You’ll see two options here: **Release** and **Stop acquisition**. - -### Release - -In the **Release** drop-down, you can set when you want your app to be available in the Store. This means that the app is discoverable in the Store via searching or browsing, and that customers can view its Store listing and acquire the app. - -> [!NOTE] -> After your app has been published and has become available in the Store, you will no longer be able to select a **Release** date (since the app will already have been released). -> Here are the options you can configure for a product’s **Release** schedule: - -- **as soon as possible**: The product will release as soon as it is certified and published. This is the default option. -- **at**: The product will release on the date and time that you select. You additionally have two options: - - **UTC**: The time you select will be Universal Coordinated Time (UTC) time, so that the app releases at the same time everywhere. - - **Local**: The time you select will be the used in each time zone associated with a market. (Note that for markets that include more than one time zone, only one time zone in that market will be used. For the United States, the Eastern time zone is used. A comprehensive list of time zones is shown further down this page.) - -### Stop acquisition - -In the **Stop acquisition** dropdown, you can set a date and time when you want to stop allowing new customers to acquire it from the Store or discover its listing. This can be useful if you want to precisely control when an app will no longer be offered to new customers, such as when you are coordinating availability between more than one of your apps. - -By default, **Stop acquisition** is set to never. To change this, select **at** in the drop-down and specify a date and time, as described above. At the date and time you select, customers will no longer be able to acquire the app. - -It's important to understand that this option has the same impact as selecting **Make this app discoverable but not available** in the [Visibility](./visibility-options.md#discoverability) section and choosing **Stop acquisition: Any customer with a direct link can see the product’s Store listing, but they can only download it if they owned the product before, or have a promotional code and are using a Windows 10 or Windows 11 device.** To completely stop offering an app to new customers, click **Make app unavailable** from the App overview page. For more info, see [Removing an app from the Store](../msix/app-package-management.md#removing-an-app-from-the-store). - -> [!TIP] -> If you select a date to **Stop acquisition**, and later decide you'd like to make the app available again, you can create a new submission and change **Stop acquisition** back to **Never**. The app will become available again after your updated submission is published. - -### Customize the schedule for specific markets - -By default, the options you select above will apply to all markets in which your app is offered. To customize the price for specific markets, click **Customize for specific markets**. The **Market selection** pop-up window will appear, listing all of the markets in which you’ve chosen to make your app available. If you excluded any markets in the [Markets](./market-selection.md) section, those markets will not be shown. - -To add a schedule for one market, select it and click **Create**. You’ll then see the same **Release** and **Stop acquisition** options described above, but the selections you make will only apply to that market. - -To add a schedule that will apply to multiple markets, you’ll create a _market group_. To do so, select the markets you wish to include, then enter a name for the group. (This name is for your reference only and won’t be visible to any customers.) For example, if you want to create a market group for North America, you can select **Canada**, **Mexico**, and **United States**, and name it **North America** or another name that you choose. When you’re finished creating your market group, click **Create**. You’ll then see the same **Release** and **Stop acquisition** options described above, but the selections you make will only apply to that market group. - -To add a custom schedule for an additional market, or an additional market group, just click **Customize for specific markets** again and repeat these steps. To change the markets included in a market group, select its name. To remove the custom schedule for a market group (or individual market), click **Remove**. - -> [!NOTE] -> A market can’t belong to more than one of the market groups you use in the **Schedule** section. - -### Global Time Zones - -Below is a table that shows what specific time zones are used in each market, so when your submission uses local time (e.g. release at 9am local), you can find out what time will it be released in each market, in particular helpful with markets that have more than one time zone, like Canada. - -| Market | Time Zone | -| -------------------------------------------- | ------------------------------------------------------------- | -| Afghanistan | (UTC+04:30) Kabul | -| Albania | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Algeria | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| American Samoa | (UTC+13:00) Samoa | -| Andorra | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Angola | (UTC+01:00) West Central Africa | -| Anguilla | (UTC-04:00) Atlantic Time (Canada) | -| Antarctica | (UTC+12:00) Auckland, Wellington | -| Antigua and Barbuda | (UTC-04:00) Atlantic Time (Canada) | -| Argentina | (UTC-03:00) City of Buenos Aires | -| Armenia | (UTC+04:00) Abu Dhabi, Muscat | -| Aruba | (UTC-04:00) Atlantic Time (Canada) | -| Australia | (UTC+10:00) Canberra, Melbourne, Sydney | -| Austria | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | -| Azerbaijan | (UTC+04:00) Baku | -| Bahamas, The | (UTC-05:00) Eastern Time (US & Canada) | -| Bahrain | (UTC+04:00) Abu Dhabi, Muscat | -| Bangladesh | (UTC+06:00) Dhaka | -| Barbados | (UTC-04:00) Atlantic Time (Canada) | -| Belarus | (UTC+03:00) Minsk | -| Belgium | (UTC+01:00) Brussels, Copenhagen, Madrid, Paris | -| Belize | (UTC-06:00) Central Time (US & Canada) | -| Benin | (UTC+01:00) West Central Africa | -| Bermuda | (UTC-04:00) Atlantic Time (Canada) | -| Bhutan | (UTC+06:00) Dhaka | -| Bolivarian Republic of Venezuela | (UTC-04:00) Caracas | -| Bolivia | (UTC-04:00) Georgetown, La Paz, Manaus, San Juan | -| Bonaire, Saint Eustatius and Saba | (UTC-04:00) Atlantic Time (Canada) | -| Bosnia and Herzegovina | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Botswana | (UTC+01:00) West Central Africa | -| Bouvet Island | (UTC+00:00) Monrovia, Reykjavik | -| Brazil | (UTC-03:00) Brasilia | -| British Indian Ocean Territory | (UTC+06:00) Dhaka | -| British Virgin Islands | (UTC-04:00) Atlantic Time (Canada) | -| Brunei | (UTC+08:00) Irkutsk | -| Bulgaria | (UTC+02:00) Chisinau | -| Burkina Faso | (UTC+00:00) Monrovia, Reykjavik | -| Burundi | (UTC+02:00) Harare, Pretoria | -| Côte d'Ivoire | (UTC+00:00) Monrovia, Reykjavik | -| Cambodia | (UTC+07:00) Bangkok, Hanoi, Jakarta | -| Cameroon | (UTC+01:00) West Central Africa | -| Canada | (UTC-05:00) Eastern Time (US & Canada) | -| Cabo Verde | (UTC-01:00) Cabo Verde Is. | -| Cayman Islands | (UTC-05:00) Eastern Time (US & Canada) | -| Central African Republic | (UTC+01:00) West Central Africa | -| Chad | (UTC+01:00) West Central Africa | -| Chile | (UTC-04:00) Santiago | -| China | (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi | -| Christmas Island | (UTC+07:00) Krasnoyarsk | -| Cocos (Keeling) Islands | (UTC+06:30) Yangon (Rangoon) | -| Colombia | (UTC-05:00) Bogota, Lima, Quito, Rio Branco | -| Comoros | (UTC+03:00) Nairobi | -| Congo | (UTC+01:00) West Central Africa | -| Congo (DRC) | (UTC+01:00) West Central Africa | -| Cook Islands | (UTC-10:00) Hawaii | -| Costa Rica | (UTC-06:00) Central Time (US & Canada) | -| Croatia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Curaçao | (UTC-04:00) Cuiaba | -| Cyprus | (UTC+02:00) Chisinau | -| Czechia | (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | -| Denmark | (UTC+01:00) Brussels, Copenhagen, Madrid, Paris | -| Djibouti | (UTC+03:00) Nairobi | -| Dominica | (UTC-04:00) Atlantic Time (Canada) | -| Dominican Republic | (UTC-04:00) Atlantic Time (Canada) | -| Ecuador | (UTC-05:00) Bogota, Lima, Quito, Rio Branco | -| Egypt | (UTC+02:00) Chisinau | -| El Salvador | (UTC-06:00) Central Time (US & Canada) | -| Equatorial Guinea | (UTC+01:00) West Central Africa | -| Eritrea | (UTC+03:00) Nairobi | -| Estonia | (UTC+02:00) Chisinau | -| Ethiopia | (UTC+03:00) Nairobi | -| Falkland Islands | (UTC-04:00) Santiago | -| Faroe Islands | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | -| Fiji | (UTC+12:00) Fiji | -| Finland | (UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius | -| France | (UTC+01:00) Brussels, Copenhagen, Madrid, Paris | -| French Guiana | (UTC-03:00) Cayenne, Fortaleza | -| French Polynesia | (UTC-10:00) Hawaii | -| French Southern and Antarctic Lands | (UTC+05:00) Ashgabat, Tashkent | -| Gabon | (UTC+01:00) West Central Africa | -| Gambia, The | (UTC+00:00) Monrovia, Reykjavik | -| Georgia | (UTC-05:00) Eastern Time (US & Canada) | -| Germany | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | -| Ghana | (UTC+00:00) Monrovia, Reykjavik | -| Gibraltar | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Greece | (UTC+02:00) Athens, Bucharest | -| Greenland | (UTC+00:00) Monrovia, Reykjavik | -| Grenada | (UTC-04:00) Atlantic Time (Canada) | -| Guadeloupe | (UTC-04:00) Atlantic Time (Canada) | -| Guam | (UTC+10:00) Guam, Port Moresby | -| Guatemala | (UTC-06:00) Central Time (US & Canada) | -| Guernsey | (UTC+00:00) Monrovia, Reykjavik | -| Guinea | (UTC+00:00) Monrovia, Reykjavik | -| Guinea-Bissau | (UTC+00:00) Monrovia, Reykjavik | -| Guyana | (UTC-04:00) Atlantic Time (Canada) | -| Haiti | (UTC-05:00) Eastern Time (US & Canada) | -| Heard Island and McDonald Islands | (UTC-05:00) Bogota, Lima, Quito, Rio Branco | -| Holy See (Vatican City) | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Honduras | (UTC-06:00) Central Time (US & Canada) | -| Hong Kong SAR | (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi | -| Hungary | (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | -| Iceland | (UTC+00:00) Monrovia, Reykjavik | -| India | (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi | -| Indonesia | (UTC+07:00) Bangkok, Hanoi, Jakarta | -| Iraq | (UTC+04:00) Abu Dhabi, Muscat | -| Ireland | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | -| Israel | (UTC+02:00) Jerusalem | -| Italy | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | -| Jamaica | (UTC-05:00) Eastern Time (US & Canada) | -| Japan | (UTC+09:00) Osaka, Sapporo, Tokyo | -| Jersey | (UTC+00:00) Monrovia, Reykjavik | -| Jordan | (UTC+02:00) Chisinau | -| Kazakhstan | (UTC+05:00) Ashgabat, Tashkent | -| Kenya | (UTC+03:00) Nairobi | -| Kiribati | (UTC+14:00) Kiritimati Island | -| Korea | (UTC+09:00) Seoul | -| Kuwait | (UTC+04:00) Abu Dhabi, Muscat | -| Kyrgyzstan | (UTC+06:00) Astana | -| Laos | (UTC+07:00) Bangkok, Hanoi, Jakarta | -| Latvia | (UTC+02:00) Chisinau | -| Lesotho | (UTC+02:00) Harare, Pretoria | -| Liberia | (UTC+00:00) Monrovia, Reykjavik | -| Libya | (UTC+02:00) Chisinau | -| Liechtenstein | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Lithuania | (UTC+02:00) Chisinau | -| Luxembourg | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Macao SAR | (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi | -| Madagascar | (UTC+03:00) Nairobi | -| Malawi | (UTC+02:00) Harare, Pretoria | -| Malaysia | (UTC+08:00) Kuala Lumpur, Singapore | -| Maldives | (UTC+05:00) Ashgabat, Tashkent | -| Mali | (UTC+00:00) Monrovia, Reykjavik | -| Malta | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Man, Isle of | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | -| Marshall Islands | (UTC+12:00) Petropavlovsk-Kamchatsky - Old | -| Martinique | (UTC-04:00) Atlantic Time (Canada) | -| Mauritania | (UTC+00:00) Monrovia, Reykjavik | -| Mauritius | (UTC+04:00) Port Louis | -| Mayotte | (UTC+03:00) Nairobi | -| Mexico | (UTC-06:00) Guadalajara, Mexico City, Monterrey | -| Micronesia | (UTC+10:00) Guam, Port Moresby | -| Moldova | (UTC+02:00) Chisinau | -| Monaco | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Mongolia | (UTC+07:00) Krasnoyarsk | -| Montenegro | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Montserrat | (UTC-04:00) Atlantic Time (Canada) | -| Morocco | (UTC+01:00) Casablanca | -| Mozambique | (UTC+02:00) Harare, Pretoria | -| Myanmar | (UTC+06:30) Yangon (Rangoon) | -| Namibia | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | -| Nauru | (UTC+12:00) Petropavlovsk-Kamchatsky - Old | -| Nepal | (UTC+05:45) Kathmandu | -| Netherlands | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | -| New Caledonia | (UTC+11:00) Solomon Is., New Caledonia | -| New Zealand | (UTC+12:00) Auckland, Wellington | -| Nicaragua | (UTC-06:00) Central Time (US & Canada) | -| Niger | (UTC+01:00) West Central Africa | -| Nigeria | (UTC+01:00) West Central Africa | -| Niue | (UTC+13:00) Samoa | -| Norfolk Island | (UTC+11:00) Solomon Is., New Caledonia | -| North Macedonia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Northern Mariana Islands | (UTC+10:00) Guam, Port Moresby | -| Norway | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | -| Oman | (UTC+04:00) Abu Dhabi, Muscat | -| Pakistan | (UTC+05:00) Islamabad, Karachi | -| Palau | (UTC+09:00) Osaka, Sapporo, Tokyo | -| Palestinian Authority | (UTC+02:00) Chisinau | -| Panama | (UTC-05:00) Eastern Time (US & Canada) | -| Papua New Guinea | (UTC+10:00) Vladivostok | -| Paraguay | (UTC-04:00) Asuncion | -| Peru | (UTC-05:00) Bogota, Lima, Quito, Rio Branco | -| Philippines | (UTC+08:00) Kuala Lumpur, Singapore | -| Pitcairn Islands | (UTC-08:00) Pacific Time (US & Canada) | -| Poland | (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | -| Portugal | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | -| Qatar | (UTC+04:00) Abu Dhabi, Muscat | -| Reunion | (UTC+04:00) Port Louis | -| Romania | (UTC+02:00) Chisinau | -| ROW | (UTC-07:00) Mountain Time (US & Canada) | -| Russia | (UTC+03:00) Moscow, St. Petersburg | -| Rwanda | (UTC+02:00) Harare, Pretoria | -| São Tomé and Príncipe | (UTC+00:00) Monrovia, Reykjavik | -| Saint Barthélemy | (UTC+04:00) Yerevan | -| Saint Helena, Ascension and Tristan da Cunha | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | -| Saint Kitts and Nevis | (UTC-04:00) Atlantic Time (Canada) | -| Saint Lucia | (UTC-04:00) Atlantic Time (Canada) | -| Saint Martin (French Part) | (UTC-04:00) Atlantic Time (Canada) | -| Saint Pierre and Miquelon | (UTC-02:00) Mid-Atlantic - Old | -| Saint Vincent and the Grenadines | (UTC-04:00) Atlantic Time (Canada) | -| Samoa | (UTC+13:00) Samoa | -| San Marino | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Saudi Arabia | (UTC+03:00) Kuwait, Riyadh | -| Senegal | (UTC+00:00) Monrovia, Reykjavik | -| Serbia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Seychelles | (UTC+04:00) Abu Dhabi, Muscat | -| Sierra Leone | (UTC+00:00) Monrovia, Reykjavik | -| Singapore | (UTC+08:00) Kuala Lumpur, Singapore | -| Sint Maarten (Dutch Part) | (UTC-04:00) Atlantic Time (Canada) | -| Slovakia | (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague | -| Slovenia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Solomon Islands | (UTC+11:00) Solomon Is., New Caledonia | -| Somalia | (UTC+03:00) Nairobi | -| South Africa | (UTC+02:00) Harare, Pretoria | -| South Georgia and the South Sandwich Islands | (UTC-02:00) Mid-Atlantic - Old | -| Spain | (UTC+01:00) Brussels, Copenhagen, Madrid, Paris | -| Sri Lanka | (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi | -| Suriname | (UTC-03:00) Cayenne, Fortaleza | -| Svalbard and Jan Mayen | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Swaziland | (UTC+02:00) Harare, Pretoria | -| Sweden | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | -| Switzerland | (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna | -| Taiwan | (UTC+08:00) Taipei | -| Tajikistan | (UTC+05:00) Ashgabat, Tashkent | -| Tanzania | (UTC+03:00) Nairobi | -| Thailand | (UTC+07:00) Bangkok, Hanoi, Jakarta | -| Timor-Leste | (UTC+09:00) Seoul | -| Togo | (UTC+00:00) Monrovia, Reykjavik | -| Tokelau | (UTC+13:00) Nuku'alofa | -| Tonga | (UTC+13:00) Nuku'alofa | -| Trinidad and Tobago | (UTC-04:00) Atlantic Time (Canada) | -| Tunisia | (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb | -| Türkiye | (UTC+03:00) Istanbul | -| Turkmenistan | (UTC+05:00) Ashgabat, Tashkent | -| Turks and Caicos Islands | (UTC-05:00) Eastern Time (US & Canada) | -| Tuvalu | (UTC+12:00) Petropavlovsk-Kamchatsky - Old | -| U.S. Minor Outlying Islands | (UTC+13:00) Samoa | -| U.S. Virgin Islands | (UTC-04:00) Atlantic Time (Canada) | -| Uganda | (UTC+03:00) Nairobi | -| Ukraine | (UTC+02:00) Chisinau | -| United Arab Emirates | (UTC+04:00) Abu Dhabi, Muscat | -| United Kingdom | (UTC+00:00) Dublin, Edinburgh, Lisbon, London | -| United States | (UTC-05:00) Eastern Time (US & Canada) | -| Uruguay | (UTC-03:00) Brasilia | -| Uzbekistan | (UTC+05:00) Ashgabat, Tashkent | -| Vanuatu | (UTC+11:00) Solomon Is., New Caledonia | -| Vietnam | (UTC+07:00) Bangkok, Hanoi, Jakarta | -| Wallis and Futuna | (UTC+12:00) Petropavlovsk-Kamchatsky - Old | -| Yemen | (UTC+04:00) Abu Dhabi, Muscat | -| Zambia | (UTC+02:00) Harare, Pretoria | -| Zimbabwe | (UTC+02:00) Harare, Pretoria | diff --git a/hub/apps/publish/toc.yml b/hub/apps/publish/toc.yml index a726e19a59..3b83c07377 100644 --- a/hub/apps/publish/toc.yml +++ b/hub/apps/publish/toc.yml @@ -191,6 +191,8 @@ items: href: publish-your-app/add-on/visibility-options.md - name: Set and schedule pricing href: publish-your-app/add-on/schedule-pricing-changes.md + - name: Configure release schedule + href: publish-your-app/add-on/configure-release-schedule.md - name: Add properties href: publish-your-app/add-on/enter-app-properties.md - name: Create Store Listings From 23864728f1c8de07628534d2848be6a94d377bb1 Mon Sep 17 00:00:00 2001 From: Matias Lera <62261539+luislera@users.noreply.github.com> Date: Thu, 5 Jun 2025 11:39:01 -0300 Subject: [PATCH 13/13] Applied PR's feedback --- .../publish-your-app/add-on/app-certification-process.md | 2 +- .../publish-your-app/add-on/manage-submission-options.md | 4 ++-- .../publish/publish-your-app/add-on/price-and-availability.md | 2 +- .../publish/publish-your-app/add-on/visibility-options.md | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/hub/apps/publish/publish-your-app/add-on/app-certification-process.md b/hub/apps/publish/publish-your-app/add-on/app-certification-process.md index 32829d0ab4..c9ab1cecab 100644 --- a/hub/apps/publish/publish-your-app/add-on/app-certification-process.md +++ b/hub/apps/publish/publish-your-app/add-on/app-certification-process.md @@ -29,7 +29,7 @@ After the certification process is complete, you'll get a certification report t When your app passes certification, it's ready to move to the **Publishing** process. - If you've indicated that your submission should be published as soon as possible (the default option), the publishing process will begin right away. -- If this is the first time you've published the app, and you specified a **Release date** in the [Schedule](./schedule-pricing-changes.md#configure-precise-release-scheduling) section, the app will become available according to your **Release date** selections. +- If this is the first time you've published the app, and you specified a **Release date** in the [Schedule](./configure-release-schedule.md#configure-precise-release-scheduling) section, the app will become available according to your **Release date** selections. - If you've used [Publishing hold options](./manage-submission-options.md#publishing-hold-options) to specify that it should not be released until a certain date, we'll wait until that date to begin the publishing process, unless you select **Change release date**. - If you've used [Publishing hold options](./manage-submission-options.md#publishing-hold-options) to specify that you want to publish the submission manually, we won't start the publishing process until you select **Publish now** (or select **Change release date** and pick a specific date). diff --git a/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md b/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md index fcc7a15303..79eff7446c 100644 --- a/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md +++ b/hub/apps/publish/publish-your-app/add-on/manage-submission-options.md @@ -12,11 +12,11 @@ The **Submission options** page of the app submission process is where you can p ## Publishing hold options -By default, we'll publish your submission as soon as it passes certification (or per any dates you specified in the [Schedule](./schedule-pricing-changes.md#configure-precise-release-scheduling) section of the **Pricing and availability** page). You can optionally choose to place a hold on publishing your submission until a certain date, or until you manually indicate that it should be published. The options in this section are described below. +By default, we'll publish your submission as soon as it passes certification (or per any dates you specified in the [Schedule](./configure-release-schedule.md#configure-precise-release-scheduling) section of the **Configure release schedule** page). You can optionally choose to place a hold on publishing your submission until a certain date, or until you manually indicate that it should be published. The options in this section are described below. ### Publish your submission as soon as it passes certification (or per dates you specify) -**Publish this submission as soon as it passes certification (or per dates you selected in the Schedule section)** is the default selection, and means that your submission will begin the publishing process as soon as it passes certification, unless you have configured dates in the [Schedule](./schedule-pricing-changes.md#configure-precise-release-scheduling) section of the **Pricing and availability** page. +**Publish this submission as soon as it passes certification (or per dates you selected in the Schedule section)** is the default selection, and means that your submission will begin the publishing process as soon as it passes certification, unless you have configured dates in the [Schedule](./configure-release-schedule.md#configure-precise-release-scheduling) section of the **Configure release schedule** page. For most submissions, we recommend keeping the **Publishing hold options** section set to the default. If you want your submission to be published on specific dates, configure those dates in the **Schedule** section. The default publishing hold option will ensure your submission is not published before the dates you set in the **Schedule** section. Your product will become available to customers in the Store based on the schedule you specify. diff --git a/hub/apps/publish/publish-your-app/add-on/price-and-availability.md b/hub/apps/publish/publish-your-app/add-on/price-and-availability.md index 25cf731721..c9dbe9ed19 100644 --- a/hub/apps/publish/publish-your-app/add-on/price-and-availability.md +++ b/hub/apps/publish/publish-your-app/add-on/price-and-availability.md @@ -33,7 +33,7 @@ For more info, see [Visibility options](./visibility-options.md). By default (unless you have selected one of the **Hidden in the Microsoft Store** options in the **Visibility** section), your add-on will be available to customers as soon as it passes certification and complete the publishing process. To choose other dates, select **Show options** to expand this section. -For more info, see [Configure precise release scheduling](./schedule-pricing-changes.md#configure-precise-release-scheduling). +For more info, see [Configure precise release scheduling](./configure-release-schedule.md#configure-precise-release-scheduling). ## Pricing diff --git a/hub/apps/publish/publish-your-app/add-on/visibility-options.md b/hub/apps/publish/publish-your-app/add-on/visibility-options.md index fe3a9958da..9ad7bdf345 100644 --- a/hub/apps/publish/publish-your-app/add-on/visibility-options.md +++ b/hub/apps/publish/publish-your-app/add-on/visibility-options.md @@ -33,7 +33,7 @@ After your submission is published, the people in the group you specify will be If you plan to make the app available to a public audience at a certain date and time, you can select the box labeled **Make this product public on** when creating your submission. Enter the date and time (in UTC) when you’d like the product to become available to the public. Keep in mind the following: -- The date and time that you select will apply to all markets. If you want to customize the release schedule for different markets, don’t use this box. Instead, create a new submission that changes your setting to **Public audience**, then use the [Schedule](./schedule-pricing-changes.md#configure-precise-release-scheduling) options to specify your release timing. +- The date and time that you select will apply to all markets. If you want to customize the release schedule for different markets, don’t use this box. Instead, create a new submission that changes your setting to **Public audience**, then use the [Schedule](./configure-release-schedule.md#configure-precise-release-scheduling) options to specify your release timing. - Entering a date for **Make this product public on** does not apply to the Microsoft Store for Business and/or Microsoft Store for Education. To allow us to offer your app to these customers through organizational licensing, you’ll need to create a new submission with **Public audience** selected (and [organizational licensing](../../organizational-licensing.md) enabled). - After the date and time that you select, all future submissions will use **Public audience**. @@ -43,7 +43,7 @@ Here are some important things to keep in mind when choosing to distribute your - People in your private audience will be able to get the app by using a specific link to your app’s Store listing that requires them to sign in with their Microsoft account in order to view it. This link is provided when you select **Private audience**. You can also find it on your [App identity](../../view-app-identity-details.md) page under **URL if your app is only visible to certain people (requires authentication)**. Be sure to give your testers this link, not the regular URL to your Store listing. - Unless you choose an option in **Discoverability** that prevents it, people in your private audience will be able to find your app by searching within the Microsoft Store app. However, the web listing will not be discoverable via search, even to people in that audience. -- You won’t be able to [configure release dates in the Schedule section](./schedule-pricing-changes.md#configure-precise-release-scheduling) of the **Pricing and availability page**, since your app won’t be released to customers outside of your private audience. +- You won’t be able to [configure release dates in the Schedule section](./configure-release-schedule.md#configure-precise-release-scheduling) of the **Pricing and availability page**, since your app won’t be released to customers outside of your private audience. - Other selections you make will apply to people in this audience. For example, if you choose a price other than **Free**, people in your private audience will have to pay that price in order to acquire the app. - If you want to distribute different packages to different people in your private audience, after your initial submission you can use [package flights](../../package-flights.md) to distribute different package updates to subsets of your private audience. You can create additional known user groups to define who should get a specific package flight. - You can edit the membership of the known user group(s) in your private audience. However, keep in mind that if you remove someone who was in the group and previously downloaded your app, they will still be able to use the app, but they won’t get any updates that you provide (unless you choose **Public audience** at a later date).