Custom POP Action
The Custom POP action allows HTML5 content to inject custom POP fields upon playback. As a result, you will have more detailed content about dynamic content in your proof-of-play reports.
Your dynamic content can invoke the custom_pop action at any point in the playback cycle. You will need the frame_id and ad_copy_id of your content (see Ad Copy Properties - The General Tab and Edit Frame Properties). Pass these values into all dynamic content using our content variables feature (see Content Variables).
Broadsign Control Player will record external1, external2, and custom-field content which will appear in your proof-of-play reports. See Real-time POP API and Broadsign POP Log.
Note: If you use Broadsign Reach or Broadsign Creator, the external value fields may already be in use. If so, Broadsign Control Player will ignore any custom POP values you provide.
Call the custom_pop action using one of the following:
WebSocket Server:
-
JSON – You can pass parameters from within your HTML5 file using JSON.
Note: Ensure that you select Enable Remote Control in the Remote Control tab of the configuration profile. See The Remote Control Tab.
Note: If using JSON via the WebSocket server, any firewall present on Broadsign Control Player should be configured to access port 2326 directly for use.
Port 2324:
- remote_action – An application that ships with Broadsign Control Player, using command line.
- XML – If you want to develop your own applications, you can communicate directly with Broadsign Control Player API using XML.
Note: Ensure that you select Enable Remote Control in the Remote Control tab of the configuration profile. See The Remote Control Tab.
Note: Any firewall present on Broadsign Control Player should be configured to either allow bsp.exe to open ports, or configure port 2324 or port 2326 directly for use.
Note: The Triggers Action is the only exception to this rule. It uses port 2325. See Triggers Action.
You can call this action on Windows and Ubuntu Linux, and find it along the following paths:
- Windows (64-bit):
- Ubuntu Linux:
/opt/broadsign/suite/bsp/bin/
C:\Program Files\BroadSign\bsp\bin
Your dynamic content can invoke the custom_pop action at any point in the playback cycle.
For example, to invoke custom_pop, type:
remote_action custom_pop -f <frame_id> --content-id <ad_copy_id> --external1 "ANY_STRING_1" --external2 "ANY_STRING_2" --custom-field '{<custom_json>}'
or if you want to use custom-field without external1 and external2:
remote_action custom_pop -f <frame_id> --content-id <ad_copy_id> --custom-field '{<custom_json>}'
Where:
- custom_pop is the action type
- -f is for the frame ID (see Frames)
- content-id is for the ad copy ID (see Ad Copies)
- external1, external2, and custom-field are the names of the custom fields
- custom_json contains custom key-value pairs written in the JSON format, for example,
{"key1": "value1", "key2":value2"}
Broadsign Control Player will record external1, external2, and custom-field content which will appear in your proof-of-play reports. See Real-time POP API and Broadsign POP Log.
An application can inject custom proof-of-play fields on Broadsign Control Player by sending an XML message to the monitor_remote port (2324).
<rc version="1" id="1" action="custom_pop" frame_id="1234" content_id="4567" external_value_1="my_custom_dynamic_content" external_value_2="ANY STRING" custom_field '<custom_json>'/>\r\n\r\n
Note: You must terminate the request with \r\n\r\n
.
The player will respond with the following document:
<rc id="1" version="1" action="custom_pop" status="1"/>
Note: Each command sent requires a unique identifier (id). The application can use a simple incrementing value here.
Custom POP Action - XML Parameters
Note: Any firewall present on Broadsign Control Player should be configured to either allow bsp.exe to open ports, or configure port 2324 or port 2326 directly for use.
Parameter | Description |
---|---|
version | The version is always 1. |
id | Contains the identifier of the request. |
action | The kind of action to be taken; always custom_pop. |
frame_id | The unique ID of the frame that displays the content you want to track. Optional. |
content_id | The unique ID# of the ad copy you want to track. |
external_value_1 | Customize to the value you want. This content will appear in your proof-of-play log. |
external_value_2 | Customize to the value you want. This content will appear in your proof-of-play log. |
custom_field |
Customize to the JSON value you want. custom_json contains custom key-value pairs written in the JSON format, for example, This content will appear in your proof-of-play log. |
An application can inject custom proof-of-play fields on Broadsign Control Player by sending a JSON message to port 2326. You will need to enable the WebSocket server. For more information, see The Remote Control Tab.
{
"rc": {
"version": "1",
"id": "1",
"action": "custom_pop",
"frame_id": "12343",
"content_id": "456738",
"external_value_1": "my_custom_dynamic_content",
"custom_field": "<custom_json>",
"name": "ANY STRING"
}
}
The player will respond with the following document:
{
"rc": {
"id": "1",
"version": "1",
"action": "custom_pop",
"status": "1"
}
}
Custom POP Action - JSON Parameters
Note: If using JSON via the WebSocket server, any firewall present on Broadsign Control Player should be configured to access port 2326 directly for use.
Parameter | Description |
---|---|
version | The version is always 1. |
id | Contains the identifier of the request. |
action | The kind of action to be taken; always custom_pop. |
frame_id | The unique ID of the frame that displays the content you want to track. Optional. |
content_id | The unique ID# of the ad copy you want to track. |
external_value_1 | Customize to the value you want. This content will appear in your proof-of-play log. |
external_value_2 | Customize to the value you want. This content will appear in your proof-of-play log. |
custom_field |
Customize to the JSON value you want. custom_json contains custom key-value pairs written in the JSON format, for example, This content will appear in your proof-of-play log. |