# Plugins

A plugin is a package of code hosted by the platform, and used to modify or extend the features of mediarithmics.

Different types of plugins can be integrated inside the platform:

* [**Activity analyzer**](https://developer.mediarithmics.io/data-streams/data-ingestion/real-time-user-tracking/activity-analyzers)**.** To enrich real-time user tracking data.
* [**Audience segment external feed**](https://developer.mediarithmics.io/advanced-usages/audiences/audience-segment-feed)**.** To send data to partner, either:
  * in server-side streams
  * or by showing a pixel to users in the segment
* [**Display ad renderer**](https://developer.mediarithmics.io/advanced-usages/broken-reference)**.** To customize the rendering of display ads
* [**Email renderer**](https://developer.mediarithmics.io/advanced-usages/automations/email-renderers)**.** To customize the rendering of emails
* **Attribution engine.** To customize the attribution of a marketing goal to different campaigns.
* [**Email router**](https://developer.mediarithmics.io/advanced-usages/automations/email-routers)**.** To customize the process of sending an email
* [**Custom action**](https://developer.mediarithmics.io/advanced-usages/automations/custom-action-plugins)**.** To launch a custom action in automations
* **Integration batch**. To manage data imports or exports through the production of a "batch" of multiple items at once, one stage at a time.
* **ML Algorithm** (Machine Learning Algorithm). To manage the calculation of predictions attached to a user in an event based manner. ML Algorithm is used in conjunction with an ML Function.&#x20;
* [Computed fields](https://developer.mediarithmics.io/schema/computed-fields). To manage a calculated field in your schema.

A plugin is a piece of logic encapsulated in a web service. It can be developed in many different languages (see available languages in Plugin SDK). It is hosted and monitored directly by the platform which enables event-based triggering and fast access to the data.

Once a plugin is instantiated in the platform it  has to listen to an HTTP port for requests coming from the platform. Depending on its type, a plugin has to comply to a specific REST API.

You can use our [Plugin SDK](https://developer.mediarithmics.io/resources/tools-and-libraries/plugin-sdk) to get off-the-shelf endpoint connectivity and accelerate the development of a plugin.
