Publishing an editor add-on

Publishing add-ons lets them to be used by other users. When you publish, you set the add-on visibility to determine who able to install the add-on.

When you publish an editor add-on, it appears in both the Chrome Web Store and the G Suite Marketplace. The add-on listings that appear in the editor Get add-ons... interfaces are populated from the Chrome Web Store. Domain adminstrators, on the other hand, can find and install add-ons for their users from the G Suite Marketplace.

This guide describes the process of publishing editor add-ons to the Chrome Web Store and G Suite Marketplace.

Before you begin

Before you begin the publication process, it is important to understand your publishing options.

Visibility

See Published add-on visibility for details on who can use your published add-ons.

Individual installs

Domain administrators can install add-ons on behalf of some or all of their domain users. While configuring your add-on for publication, you can elect to also allow individual installs. If you do, both admins and individual users can install your add-on from the G Suite Marketplace. However, a domain user may still be prevented from installing an add-on if their domain policies prohibit it.

Individual installs are enabled by default.

Collaboration

When you colloborate with others in developing an add-on, the add-on project is owned by a single user account. When you publish an add-on, a single user account acts as the publisher. The publishing account must have edit access to the add-on script project, but it doesn't need to be project owner.

Team Drives can help you collaborate on an add-on. They allow you to avoid losing access to your add-on's code and console settings because a member of your team left your organization.

As an alternative to Team Drives, you can create a common team account to serve as the owner and publisher of the script project.

Development checklist

Prior to publishing, your should verify that your editor add-on is functioning well. Use the checklist below to determine if your add-on is ready for publication.

General

  • The editor add-on must be fully functional—it can't be a “work in progress.”
  • The script has been tested with multiple active users.
  • The design adheres to the UI style guide.
  • If you want to publish your add-on publicly, request verification before starting the publishing process.
  • Public add-ons should use the narrowest scopes possible to protect user data.

Technical

  • It is preferable to develop add-ons in a standalone script. Be sure to test your add-on to ensure the add-on is behaving correctly in Sheets, Docs, Slides, or Forms as appropriate. Verify the menus and functionality behave as expected for different states of installed and enabled.
  • The script project's name is the same as the name intended for publication, as the script project name appears in the authorization dialog.
  • The add-on has error-handling code and only shows appropriate error messages to the user.
  • The add-on does not log debug information to the JavaScript console; use Stackdriver logging instead.
  • The add-ons script project includes an onInstall(e) function that populates the menu, usually by calling onOpen(e).
  • To comply with the limitations of the AuthMode.NONE, the script project's global code and the AuthMode.NONE path of the onOpen(e) function should not contain calls to services that require authentication.
  • The script should not use libraries excessively, because libraries can cause the add-on to lose performance.

Required resources

Before you can publish your add-on, you must construct listings for the Chrome Web Store and G Suite Marketplace. These listings consist of several assets: images, URLs, and text. Some assets are required for the listings, and others are optional but can help provide users with more information about your add-on.

Prior to starting the publishing process, you should assemble all the required assets listed in the G Suite Marketplace SDK guide.

In addition to these assets, the following are required for the Chrome Web Store listing:

  • The add-on script project key. You can obtain this by doing the following:
    1. Open your add-on script project in the Apps Script editor.
    2. Select File > Project properties. The script project key is listed in the Info tab.
  • Additional promotional tile images
  • Optionally, a Google Analytics ID to track usage of your Chrome Web Store listing.

Publishing instructions

Once you have reviewed the development checklist and ensured your add-on is ready to publish and that you have all the required assets, you can start the publishing process. To publish an editor add-on for the first time, follow the steps below.

Step 1: Create a script version

Create a version of your add-on. This version is the snapshot of code that your published add-on uses. Record the version number—it is required when configuring the Marketplace listing.

During add-on authorization, users see a dialog that describes the requested permissions. You can customize this dialog to some extent by using the following steps:

  1. Open your add-on's Cloud Platform project.
  2. In the console's left navigation, select APIs & services to open the API dashboard.
  3. In the left nav, select Credentials to open the credentials control panel.
  4. In the credential control panel, select the OAuth consent screen tab.
  5. Fill in the consent screen form using the corresponding assets you collected. Some of the form elements are optional, but providing them can improve your add-on's user experience.
  6. Click Save to record your selections.

Step 3: Enable the Marketplace SDK

The G Suite Marketplace SDK lets you configure the appearance of your G Suite Marketplace listing. Enable the SDK in your add-on script project by doing the following steps.

  1. If you have not done so already, open your add-on's Cloud Platform project.
  2. In the console's left navigation, select APIs & services to open the API dashboard.
  3. In the API dashboard, select the Enable APIs and Services button.
  4. In the Search for APIs & services search bar, type "G Suite Marketplace SDK". Select this API.
  5. In the API listing that opens, click the Enable button. After a moment the SDK overview control panel opens.

You have now enabled the G Suite Marketplace SDK for your script project. Now you can use the SDK control panel to configure the SDK.

Step 4: Configure the Marketplace SDK

The G Suite Marketplace SDK settings page has four panels: Overview, Configuration, Publish, and Usage. To define your editor add-on's listing and start a publication request, you must do the following:

  1. If it isn't open already, open the Marketplace SDK control panel. Select the Configuration panel. This panel contains a form where you provide information about your add-on.
  2. Fill in the configuration form using the corresponding assets you collected. Some of the form elements are optional, but providing them can improve your add-on's user experience. Do the following as you are completing the form:

    • Where indicated, provide localized assets for each language you intend to publish the add-on in.
    • Make sure the Enable individual install checkbox is checked if you want to allow individual installs.
    • Where indicated, include every scope your add-on script project uses. If you have set explicit scopes, include all the scopes listed in your add-on project's manifest.
    • In the Extensions section, check the add-on extension checkbox for the type corresponding to your add-on (do not check the other boxes). This causes text fields to appear. In these text fields enter the script project key and version number.
    • If your are publishing from a domain account, select your add-on's visibility where indicated. Selecting My Domain makes your add-on a private add-on.

  3. Verify that the information you have entered in the form is correct, then click Save changes.

This completes the process of creating a G Suite Marketplace listing for your add-on, but you must also create a corresponding listing in the Chrome Web Store.

Step 5: Configure the Chrome Web Store listing and publish

You can create a Chrome Web Store listing by doing the following steps.

  1. In the script editor, click Publish > Deploy as web add-on if add-on script project is a standalone project (recommended), or Publish > Deploy as {Editor} add-on if the script project is bound to a editor file.
  2. Fill in the resulting dialog fields using the assets you collected. If it is present choose the add-on type in the Add-on Type dropdown.
  3. Check the Publish in G Suite Marketplace checkbox.
  4. Click Create web store draft. This opens up a new window where you can configure your Chrome Web Store listing.
  5. Fill in the Edit Item form on the Chrome Web Store page using the assets you collected.

  6. Click Publish changes, then click OK in the dialog that appears.

This completes the publication steps. You can visit the Chrome Web Store developer dashboard to see the publication status of your add-on in the Chrome Web Store. Once the "Status" column says "Published", your add-on is available in the store.

If you selected Private visibility for the add-on, the add-on should become available for use after a few minutes. If you selected the Public visibility setting, however, your add-on requires review and is labeled as Pending review the Chrome Web Store developer dashboard while the add-on review process is conducted. See Add-on review for more information.

Bundling with an existing G Suite Marketplace app

If you have already developed and published a G Suite Marketplace app that is closely related to your add-on, you can bundle your add-on with the Marketplace app. This creates a joint listing in the G Suite Marketplace. When administrators install and authorize your app, the add-on is installed and authorized at the same time.

Bundling requires you to have access to the Marketplace app's Cloud Platform project so that you can make adjustments to its settings.

To bundle your add-on with an existing Marketplace app, do the following:

  1. Switch your add-on's Cloud Platform project to the Marketplace app's Cloud Platform project.
  2. Next, you need to update the G Suite Marketplace listing for the existing app to include information about the add-on, as described in Step 4: Configure the Marketplace SDK. Since you already have a Marketplace listing for your existing app, you edit the listing instead of creating a new one.
  3. In the Marketplace listing, make sure that the description explains that installing this app also installs an add-on.
  4. Make sure that the OAuth scopes section lists all scopes required by the Marketplace app and the add-on. If you need to add any scopes to support the add-on, remember that admins who have previously installed the Marketplace app need to reauthorize it.
  5. Check the box next to Enable Docs Add-on extension, Enable Sheets Add-on extension, Enable Slides Add-on extension, or Enable Forms Add-on extension, as appropriate and fill out the resulting text fields.
  6. Click Save changes. If there are no error messages, close the SDK configuration form.
  7. Continue on with Step 5: Configure the Chrome Web Store listing and publish.

Bundling add-ons together

It is possible to bundle add-ons of different types together. This requires them to to share a Cloud Platform project and G Suite Marketplace listing, as described above. Since you can't switch an add-on to use a hidden Cloud Platform project, you must create a new Cloud Platform project for the add-ons in the API console and then switch each add-on project to use that standard Cloud Platform project.