List of available plugins

We’ve already described a way to create your own IMA.js plugins through very simple interface. Now we would like to talk about IMA.js-plugins monorepo that already contains variety of plugins that covers many of the common use cases.

Each plugin in this repository is thoroughly tested and maintained, so it always works with the most up to date IMA.js version. We, here at use it daily in production on many of our projects, so don’t worry about using them safely in the production environment.

Without further ado, let’s quickly describe in this compact list what each plugin does and when you would want to use them:


  • plugin-analytic - This is the abstract analytic plugin for the IMA.js application, it provides an interface to which other analytics plugin can easily hook into.
  • plugin-analytic-fb-pixel - Facebook Pixel analytic plugin, implementing the plugin-analytic interface.
  • plugin-analytic-google - Google Analytics plugin, implementing the plugin-analytic interface.
  • plugin-less-constants - Very useful IMA.js plugin for sharing constants between JavaScript and LESS code. Allows us to manage all constants in a separate *.js files which are then compiled into corresponding *.less file that can be used in our styles
  • plugin-logger - A logging tool for IMA.js framework. It also provides babel-plugin, that can strip out all logging messages if desired.
  • plugin-resource-loader - This is the base plugin for loading scripts and styles for the IMA.js application through promisified interface.
  • plugin-rest-client - Generic REST API client plugin for the IMA application framework.
  • plugin-script-loader - A plugin for loading 3rd party scripts for the IMA.js application.
  • plugin-select - The plugin selects extra props from page state to your component. It uses HOC at the background. It can be very useful for example some analytical data. It has a similar interface to react-redux connect HOC component.
  • plugin-self-xss - This plugin is trying to mitigate Self-XSS security attack by sending simple message into console.
  • plugin-shared-cache - A utility for creating caches that are shared between requests by all IMA.js application instances within the same node.js process.
  • plugin-style-loader - A plugin for loading 3rd party styles for the IMA.js application.
  • plugin-useragent - A plugin for parsing client’s user agent.
  • plugin-xhr - Helper plugin simplifying the usage of the XMLHttpRequest API. This plugin is meant to be used only at the client side and only where the fetch API is insufficient at the moment.
  • plugin-local-storage - A plugin providing simplified access to browser’s local storage, through extending the IMA.js Storage interface.
  • plugin-testing-integration - A plugin for integration testing of any IMA.js based application.