Building a Plugin

Note: The building of Web Plugins are currently not available. Please include your information here and we will reach out when this is made available!

SDK Plugins are used to augment traditional Destination and Source components (Subscriptions and Streams) by shipping code to the End User’s Device. You can use this mechanism to enable customers to dynamically include your libraries or SDKs and to wire up the Segment SDK to invoke them directly when your plugin is enabled. This pattern is most commonly used to build what we call “Device Mode Destinations.”

Segment’s Client SDKs (analytics.js, analytics-ios, and analytics-android) serve as “microcosms” of the Segment Customer Data Infrastructure runtime — they enable the dynamic orchestration of event collection, cleaning and validation, transforming, and delivery to collection endpoints right from inside the SDK.

SDK Plugins are an appropriate component for your App if your source or destination requires client-side side effects, such as collecting ambient data in the client (Heatmapping, Error & Performance Monitoring tools), relying on device-native context such as third party cookies (Advertising pixels), or needs to actively modify the Client UI (e.g. A/B testing, Push Notification, In-App Messaging and LiveChat).

Note: SDK Plugins show up in our Connections Catalog as a “Device Based Destination” today, but this is subject to change, especially as we add support for more data data collection, enrichment, and transformation oriented primitives to plugins.

Please follow the documentation carefully. Segment will not approve submissions for SDK plugin components that don’t follow best practices or don’t provide any more functionality than that supported by a subscription, as customers universally prefer Cloud Mode to Device Mode when available.

Get Access to the Developer Center

Request access so we know you’re interested in building an SDK Plugin.

We’ll grant you access to our Developer Center and agree on a launch date so that we can provide a focused window of deep guidance and support.

By starting or continuing this process, you agree to the Segment Platform Partners Agreement.

Create your App

Now you can create your App. Your App will ultimately represent you in the Segment Catalog, so you should name it after your company.

Build your Plugin

Note: The building of Web Plugins are currently not available. Please include your information here and we will reach out when this is made available!

Once you’ve received approval from the team at Segment, you’ll then need to write custom transformation module(s) for the appropriate Segment SDK(s). As you can host and distribute these modules in repositories and package managers yourself, you’ll have no impediment from Segment in updating and releasing new versions of your plugin. For Mobile SDK plugins, customers will specify in their build phase the version of your Plugin they’d like to use. For Analytics.js Web SDK plugins, you’ll be able to specify the version we should distribute in the Developer Center.

Please refer to the documentation and examples in these repositories to learn how to build and initialize your plugins for the appropriate libraries.

Note that for now, we will only support one setting for partner-contributed SDK plugins: a write-scoped key such as “Client ID” or “Property ID” that dictates where to write data inside your tool (if applicable).

As with all partner contributions, only those which follow the Segment Spec will be approved.

Test your Plugin

Each of the wikis above reference steps for testing your plugin locally.

Before reviewing, we’ll need to see a full suite of cross-device tests.

Document your Plugin

To provide a great experience for users, and to help us test your integration, you need to document your integration. Segment expects docs both on your site about Segment, and on Segment’s site about your integration. We provide templates for our docs to help you get started:

Submit your App for Review

Once you’ve tested your plugin successfully, reach out to partner-support@segment.com with:

  • A link (and, if you insist on it remaining private, an invite) to your repo with live CI demonstrating passing tests
  • The name of your settings field for your write key (Client ID, App ID, etc).
  • A list of customer workspaces you intend to test your integration with.

In the near future, this process will be automated through the Segment Developer Center.

Get Approved for the Segment Catalog

After we have reviewed and approved your application and plugin, you’ll be launched in Beta. The purpose of Beta is to test the plugin with at least 3 mutual customers. You’ll remain in Private Beta until you have shown that these customers are getting value out of your integration.

When you have completed the requirements of Beta, you’ll be fully launched onto the platform.

FAQ

Note: The building of Web Plugins are currently not available. Please include your information here and we will reach out when this is made available!

Please reach out to partner-support@segment.com with any questions.



Questions? Need help? Contact us!
Can we improve this doc?
Email us: docs-feedback@segment.com!