MonetizationOS Docs

Add A Feature

Configuring a feature requires three steps:

  1. Create the Feature: Define the capabilities your app offers, such as ‘Articles’ or ‘Video Streaming'
  2. Add Feature Properties: Configure feature-level access, such as gating premium elements of your feature, metering usage, or applying overrides
  3. Set Fallback Values: Set relevant fallback values for this feature

To begin, navigate to the Features section, in the left-hand navigation menu.

Your features page shows a list of configured features and allows you to edit existing features, or add new ones. The list displays:

  • Name & Description: The feature name and optional description
  • Slug: The unique identifier for the feature
  • Created: The date and time the feature was created
  • Brands: The brands linked to this feature
  • Actions: Options to edit or delete the feature

Create the Feature

To add a feature, click 'Add a Feature'.

You will be prompted to give your feature a name, slug and optional description. By default, the slug will be a hyphenated version of the name you give the feature, but you can override this if you wish.

If you have Brands enabled, you must link this feature to a particular brand or brands, by clicking the 'Link Brands' button. This means the feature will only be available in environments linked to that specific brand or brands.

Once done, click 'Create'. You will then be taken to the feature management area. This is broken into three tabs: Feature Properties, Feature Workflow, and Manage Feature.

Feature Properties

The Feature Properties tab displays a list of configured feature properties with the ability to edit or delete them, or add new feature properties.

Every feature is created with a default feature property called 'Enabled'. This property allows for a feature to be on, off, or metered, by default.

Adding additional feature properties allows you to have more nuanced access control over your feature. For example, you may wish to limit the resolution of a video, or toggle ads on and off.

Add Feature Properties

To add additional feature properties, click 'Add New Property'.

The Add New Property sheet lets you set up the basics for your new property.

Property Details:

Use this section to configure:

  • Property Name: The name of your feature property
  • Property Key: The key for your feature property
  • Description: An optional description for your feature property. For example, 'Sets the maximum number of articles a user can read per month'
  • Property Type: Whether the property is a number, meterable, a string, or a boolean. See below for more details.

Values

The values section changes depending on the property type you have configured.

Number

  • Fallback Value: Fallback values are used when no plans are found to configure the property or when an error occurs during a provisioning workflow.
  • Minimum Value: The lowest value available for the property.
  • Maximum Value: The highest value available for the property.
  • Allow Decimal Values: A toggle to specify whether you allow decimal values

Setting fallback, minimum, and maximum values for your feature property means that anyone configuring Plans can adjust the level of access given to a feature property within the guardrails you have specified.

Example You have an Article Feature, with a feature property for the number of ad slots a user sees on an article page.

  • You set the Fallback Value to 3, meaning all users - regardless of their plan - will have this fallback feature property value and see 3 ad slots on an article page.
  • You set the Minimum Value to 0, meaning you can configure plans where users see no ad slots on an article page.
  • You set the Maximum Value to 10, meaning you can configure plans where a user will see 10 ad slots on an article page.
  • You set Allow Decimal Values to off, as it is not possible to see a partial add slot on a page.

With this configuration, any team member configuring a plan that includes the Article feature will be able to set whether the end user sees anywhere between 0 and 10 ad slots in the article.

In some instances your users will have multiple plans with different levels of of access assigned to a particular feature property.

In these cases, we need to perform conflict resolution to ensure the user gets the appropriate access level.

You can two options for this:

  • Choose Higher: Which means the highest value will be the chosen property
  • Choose Lower: Which means the lowest value will be the chosen property

Example: A user has two plans that give them access to video content. One plan includes 2 minutes of pre-roll ads, while the other includes 1 minute of pre-roll ads.

  • When Choose Higher is selected, the user would get 2 minutes of pre-roll ads.
  • When Choose Lower is selected, the user would get 1 minute of pre-roll ads.

In general, you will configure conflict resolution to choose the property value that is more beneficial for the user.

Once you have configured your property, click 'Save'.

Meterable

A meterable feature property means that usage of the property will be counted against a user, and that they will lose access to the property once their meter is exhausted. For example, a feature property for allowing downloads of video content may have a meterable limit of 3 downloads per calendar month.

To configure a meterable feature property you will need to set the fallback value:

  • On: Means that by default, access to this property will be on.
  • Off: Means that by default, access to this property will be off.
  • Metered: Means that by default, access to this property will be metered. When selecting this option, you will need to configure a limit for this meter, along with the time period during which the meter should refresh. Selecting Unique Resources means a meter will only be decremented with unique content views. For example, viewing a new piece of content. If this is off, every refresh or view of the same content will count towards the meter.

In some instances your users will have multiple plans with different levels of of access assigned to a particular feature property.

In these cases, we need to perform conflict resolution to ensure the user gets the appropriate access level.

You can two options for this:

  • Choose Higher: Which means the highest value will be the chosen property
  • Choose Lower: Which means the lowest value will be the chosen property

Once you have configured your property, click 'Save'.

String

A string property type can be used to store any text-based data.

To set a string property type, enter the string fallback value.

Once you have configured your property, click 'Save'.

Boolean

A boolean property type is a data type that can only hold one of two possible values: true or false.

To set a boolean property type, set the fallback value to either On (true), or Off (false).

In some instances your users will have multiple plans with different levels of of access assigned to a particular feature property.

In these cases, we need to perform conflict resolution to ensure the user gets the appropriate access level.

You can two options for this:

  • Choose Higher: Which means the highest value will be the chosen property. For booleans, this will set the value to On.
  • Choose Lower: Which means the lowest value will be the chosen property. For booleans, this will set the value to Off.

Once you have configured your property, click 'Save'.

Following the set up and creation of your feature and its relevant properties, you can progress to setting up Plans.

Feature Workflow

The Feature Workflow tab allows you to define exactly how a feature should behave, using custom logic that is tailored to your product. Feature workflows let you dynamically modify the properties of a feature for a particular user and request. For example, you might populate the limits of a meter or a maximum number of seats from details contained in a user's JWT.

For more information, see our Workflows guide.

You can also delete the workflow from this tab.

Manage Feature

The Manage Feature tab allows you to edit the name, slug, description, and linked brands of your feature.

Once done, click 'Update'.