# 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**](/data-streams/data-ingestion/real-time-user-tracking/activity-analyzers.md)**.** To enrich real-time user tracking data.
* [**Audience segment external feed**](/advanced-usages/audiences/audience-segment-feed.md)**.** To send data to partner, either:
  * in server-side streams
  * or by showing a pixel to users in the segment
* [**Display ad renderer**](broken://pages/-MNSwP5qNDgra4_m9tv8)**.** To customize the rendering of display ads
* [**Email renderer**](/advanced-usages/automations/email-renderers.md)**.** To customize the rendering of emails
* **Attribution engine.** To customize the attribution of a marketing goal to different campaigns.
* [**Email router**](/advanced-usages/automations/email-routers.md)**.** To customize the process of sending an email
* [**Custom action**](/advanced-usages/automations/custom-action-plugins.md)**.** 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](/schema/computed-fields.md). 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](/resources/tools-and-libraries/plugin-sdk.md) to get off-the-shelf endpoint connectivity and accelerate the development of a plugin.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.mediarithmics.io/advanced-usages/plugins.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
