Concept of Categories (or Audiences)

What is it that we call "Categories" on broadpeak.io

Personalizing content with broadpeak.io requires adding query parameters to manifest requests, so that the platform knows the "audience" or "category" of the request. If you do not need to personalize your services per Audience and that every TV viewer should have the same experience, you can skip this step.

"Audience" is the SCTE-224 terminology, while "category" is the broadpeak.io terminology, but this represents the same concept, i.e. a group of end-users who is watching the content and who should have it personalized the same way.

For the Content Replacement and Virtual Channel applications, it is broadpeak.io that will decide which content must be inserted. This is where categories come into play.

In the case of Dynamic Ad Insertion, the query parameters are specified by the Ad Server. This is the Ad Server that will decide which ads must be inserted, based on the query parameters that it understands. Please refer to this page for more information on ad server queries.

Using categories in manifest requests

Specifying the category in a manifest request can be done in one of two ways:

  • Directly with the category name, for example in
https://stream.broadpeak.io/<service_id>/path/index.mpd?category=arlington-va
  • Using one of the category's zip codes, such as
https://stream.broadpeak.io/<service_id>/path/index.mpd?zip=22207

In this second example, broadpeak.io will find the category that includes this zip code, then apply the slot(s) that target this category.

🚧

Warning

Both category names and zip codes are standard character strings. When using them as query parameters you must URL-encode them so that they only contain "safe" ASCII characters. To avoid issues with URL encoding and decoding it is safer to use only URL-allowed characters in category names and zip codes.

Examples of personalisation

Depending on the level of personalization that a TV service provider wants to offer, the subscriber base should be more or less segmented. Each segment is called an Audience, and must be defined in broadpeak.io. An Audience can be a group of subscribers, devices, a geolocation or can also go to the extent of representing a single TV subscriber or device. At this stage, one needs to define how to identify an Audience.

The segment is identified with the id of the subscriber

If we are speaking about an Audience being a TV subscriber, the subscriber Id would probably be the best way to identify the Audience. For instance, based on some algorithms, content recommendation engines are able to get a weight of each movie Genre with respect to the subscriber profile, and to deduct the possible level of interest in each asset with a sort of scoring. This can be used to get a list of possible assets that would have interest for a single subscriber.
In this case an Audience would contain a single item, which would be a subscriber Id and as many Audiences as there are subscriber Ids in the subscriber base.

Ex:

  • Audience sub1 : 0000001
  • Audience sub2 : 0000002
 "categories": [
          {
               "key": "category",
               "value": "0000001"
          },
                {
               "key": "category",
               "value": "0000002"
          }
     ]

The segment is identified with a device Id

Instead, if we are speaking about an Audience being a device, a device Id would probably be the best way to identify the Audience. In this case, an Audience would contain a single item, which would be a device ID and as many Audiences as there are device Ids in the subscriber base.

Ex:

  • Audience device 1: ABCDEFG1
  • Audience device 2: ABCDEFG2
          "categories": [
          {
               "key": "category",
               "value": "ABCDEFG1"
          },
                {
               "key": "category",
               "value": "ABCDEFG2"
          }
     ]

The segment is identified with the subscriber profile type

An Audience could also be a TV subscriber profile, and in that case we could define an Audience per TV subscriber profiles.

Examples:

  • Adults
  • Kids
  • Men
  • Women
  • Etc…
          "categories": [
          {
               "key": "category",
               "value": "adults"
          },
                {
               "key": "category",
               "value": "men"
          },
                {
               "key": "category",
               "value": "women"
          },
     ]

The segment is a group of subscribers, device, zipcodes

Lastly, an Audience could be a subset of subscribers, devices, or a region.
Grouping can be done by defining an Audience containing the list which defines the group.

Examples:
Audience Adults :

  • age 21
  • age 22
  • age 99
          "categories": [
          {
               "key": "category",
               "value": "21"
          },
                {
               "key": "category",
               "value": "22"
          },
                {
               "key": "category",
               "value": "99"
          },
                {
               "key": "category",
               "value": "...."
          }
     ]

Audience Kids :

  • age 4
  • age 5
  • .....
  • age 20
         "categories": [
          {
               "key": "category",
               "value": "4"
          },
                {
               "key": "category",
               "value": "5"
          },
                ......
                {
               "key": "category",
               "value": "20"
          },
     ]
    

Audience NYC :

  • zipcode: 10001
  • zipcode: 10002
  • ……………….,
  • zipcode: 10100
          "categories": [
          {
               "key": "zip",
               "value": "10001"
          },
                {
               "key": "zip",
               "value": "10002"
          },
                ......
                {
               "key": "zip",
               "value": "10100"
          },
     ]

Once you have defined your Audience segmentation, you are able to use it when creating slots in your virtual channel and content replacement services.