When you create a material you can add any number of profiles to it. If you don't give it a profile it will automatically get the profile `default. The profile is used in the play call to decide if this material should be selected or not.
When you do a play call using exposure you always play an asset. Every asset can have any number of active materials and for every play call
the platform will select one material that will be used for this play call.
If there is no active material the asset is in fact not playable and if there is only one the decision is simple, you will get this one. The question is what is happening if there are multiple active materials? The answer is that one will be selected based on the profile.
Each material supports one or more profiles. If none is actually provided during ingest the material will nevertheless support the
Each material can also support extra profiles if there are variants added to the material which support additional profiles.
A play call is always done on asset level. The end user always select to play an asset and then it's up to the platform to select a material. If there is only one active material available the decision is simple, this will be the one.
In more complex cases there might be one material in HD and one in SD, one material with all subtitles, one with only english subtitles and one with no subtitles or a case similar to this.
In the first case it makes sense to have one profile called
HD and another called
In the second case we might have profiles based on location, one material with profile
Europe having everything, one material with profile
US having just English and a third material having profile
default with no subtitles. Both of these cases are just very simple examples.
In the platform we then have something called material selectors that can be used to select material based on conditions. At the moment material selectors can only be configured by a platform administrator.
The selectors will select a profile and then the platform will select an active material that supports this profile. The reason that the selector does not select a material directly is that this would cause problems as soon as we create new versions.
We currently support the following material selectors.
- Percentage - Used for A/B testing. Profile is selected based on a round-robin algorithm with different probabilities for the different profiles.
- Device - Profile is selected based on the end users device.
- GEO - Profile is selected based on geo-location for the end user.