Triggers

Triggers are essentially identical for both transport types. The syntax and attributes are the same, differing only in the required fields. Transport Type A triggers using Line 21 of the VBI require a checksum. A checksum detects errors in data, and in this instance, because the broadcast signal can be inherently noisy, the receiver must have a way to ensure it receives all of the data contained in the trigger. Following is an example of a Type A trigger.

Example of a Type A trigger

In this example, the user is prompted with a panel containing the words "WebTV Networks." Selecting those displayed words accesses information indicated in the URL attribute. The checksum is always the final attribute. The ATVEF version attribute is required, since there is no corresponding announcement. Transport Type A triggers are all implicitly announced.

Following is an example of a Type B trigger.

Example of a Type B trigger

The checksum is not used for triggers sent via Type B, because of the error correcting methods inherent in this method. The ATVEF version attribute is not used, since the ATVEF version is contained within the SDP Announcement.

Trigger Attributes

There are abbreviations available for all of the attributes, except URL and checksum. Because there are fewer characters, triggers with abbreviated attributes are transmitted more quickly and more accurately and should be used when possible. The attributes recognized by our receivers follow.

Name Required Function
AUTO No Loads the interactive TV content automatically.
CHECKSUM Yes* Corrects errors in the trigger data string.
EXPIRES No Sets the date and/or time after which the trigger should be ignored.
NAME No Displays the string to be used as a prompt to the user.
SCRIPT No Identifies the name of the function embedded within the content to be run.
SHOWPIP No Questions whether the Picture-in-Picture video should be displayed after the interactive TV content.
TIME No Identifies the specific time, or a range of times, at which the trigger should be displayed.
TVE Yes* Identifies the ATVEF version of the trigger.
TYPE No Identifies the type of link or audience for the interactive TV content.
URL Yes Identifies the source of the interactive content.
VIDEOAD No Questions whether advertising should be displayed while the interactive TV content is loading.
VIEW No Questions whether the content should be displayed as television or Web content.

* required for type A triggers only.

AUTO

Indicates whether the receiver should automatically load the interactive TV link when no response is generated by the user to the UI panel. Without this attribute set to "true," the interactive content would be displayed only if the user selected "Go Interactive" on the interactive TV Notification Panel.

This attribute can be abbreviated as the letter %u2018a%u2019.

Syntax:
[auto:true/false] False is the default value.

Examples:
[auto:true]
[a:t]

Back to top

CHECKSUM

Verifies the accuracy of the string and helps the receiver detect data corruption. The checksum, established in the Consumer Electronics Manufacturers Association (CEMA) standard, is required for Transport Type A only. The checksum is not required for triggers sent in Type B because of other error correcting mechanisms inherent in that transmission method.

Syntax:
[checksum]

where:
checksum is the four-digit checksum for the trigger.

Examples:
[5EE9]

Back to top

EXPIRES

Specifies the last date the interactive TV link is valid, after which the receiver should ignore it. The default value is 30 seconds after receiving the link for triggers received from sponsors (trigger attribute TYPE=Sponsor [type:sponsor] or [type:a]) and 10 minutes for all other types. Our receivers ignore anything more specific than the day.

This attribute can be abbreviated as the letter %u2018e%u2019.

Syntax:
[expires:yyyymmddThhmmss]

where:
yyyy is the year
mm is the month
dd is the day
hh is the hour%u2014not used
mm is the minute%u2014not used
ss is the second%u2014not used

Examples:
[e:19990324]
[e:19990324]
[expires:19990324]

Back to top

NAME

Specifies the message TV viewers see on the pop-up panel that briefly describes the interactive content that%u2019s currently available. This is limited to 20 or 30 characters, depending on the type of characters used (a proportional font is used). The name is the only information your TV viewers receive about the interactive content.

This attribute can be abbreviated as the letter %u2018n%u2019.

Syntax:
[name:string]

where:
string is the text that appears on the UI panel.

Examples:
[n:WebTV Networks]
[name:WebTV Networks]

Back to top

SCRIPT

Calls a script fragment coded into the Web page that the trigger references. The script is executed when the page is opened. If the page is currently being displayed, the script fragment is immediately executed. The context for the script is the root document corresponding to the URL specified in the link string.

This attribute can be abbreviated as the letter %u2018s%u2019.

Syntax:
[script:function(name)]

where:
function is the JavaScript called name is the specific segment or instance of the JavaScript to call

Examples:
[s:onClick("rollover")]
[script:onClick("rollover")]

Back to top

SHOWPIP

Determines whether the Picture-in-Picture (PIP) video should appear in the target Web page after following the trigger. If false, the PIP does not appear in the target Web page.

Syntax:
[showpip:true/false] True is the default value.

Examples:
[showPIP:false]
[showPIP:t]

Back to top

TIME

Expresses a time in the future for a specific trigger to be processed, as well as a means to express a time span over which the trigger may be valid for presentation. Trigger processing times are specified either as events with a single time value, or as time spans with a beginning and ending time. The time base for the trigger may be the Universal Time Code (UTC, indicated by a T) or a time based on the broadcast media itself (indicated by a C). Time values may be expressed absolutely or relative to the trigger. All times are UTC and conform to ISO-8601. The time attribute can be abbreviated as an "x."

The trigger processing time is specified either as specific moments, or as time spans with a beginning and ending time. As such, the syntax has many permutations.

Syntax:
[time:timevalue]
[time:+relativetimevalue]
[time:starttimevalue/endtimevalue]
[time:+relativestarttimevalue/endtimevalue]
[time:starttimevalue/+relativeendtimevalue]
[time:+relativestarttimevalue/+relativeendtimevalue]

Chronological time values are in the form:
yyyy
yyyy-mm
yyyy-mm-dd
yyyy-mm-ddThh
yyyy-mm-ddThh:mm
yyyy-mm-ddThh:mm:ss
yyyy-mm-ddThh:mm:ss
yyyy-mm-ddThh:mm:ss
yyyy-mm-ddThh:mm:ss.p
yyyy-mm-ddThh:mm:ss.pp

where:
yyyy represents the digits of the year
mm is the month
dd is the day
hh is the hour (optional)
mm is the minutes (optional)
ss are the seconds (optional)
pp indicates fractional seconds (can be separated by a comma or period) (optional)

If a date, but no time is specified, then the T character is optional. Leading zeros are required for yyyy, mm, dd, hh, mm and ss. Separators "-" (separating years from months, months from days) and ":" (separating hours from minutes and minutes from seconds) characters are optional.

Time values without a date refer to the next occurrence of this time.

Media-based time values are in the following form:
Chh
Chh:mm
Chh:mm:ss
Chh:mm:ss.pp
Chh:mm:ss:ff
dChh:mm:ss:ff
ddChh:mm:ss:ff

where:dd corresponds to days
hh corresponds to hours
mm is minutes
ss is seconds
pp indicates fractional seconds (can be separated by a comma or period) (optional)
ff indicates frames (can be separated by a semicolon or colon) (optional)

There may be any number of day digits, as necessary to express the number of days. All fields, except days, should use leading zeros. The frame field should be preceded by a colon to indicate a non-dropframe timecode. Dropframe timecode is indicated by a semicolon separating the seconds and frames. The colon or semicolon preceding the frame field is required.

This use of the media-based time values for a relative time value does not require a timecode to be embedded within the media for relative time values or periods, but relies on the receiver basing its time calculations on the frame rate or sample rate of the media. If absolute media-based time is used, and no timecode is present, then the trigger should be processed immediately.

The number of frames in a given second depends on the media. No indication of the frame rate is given in the trigger. Time durations, used for the expression of a time relative to some other time, are time values preceded by a "P."

Times relative to now are prefixed by a "+."

Start and end times (or start time and period) are separated by a "/."

An empty time value indicates the current time.

Examples:
[time:] Now
[x:1999-03-24T02:34:56] - Trigger on March 24, 1999, 2:34:56am UTC
[x:T12:23:45] - Trigger at the next arrival of 12:23:45pm, UTC
[time:C01:00:12;15] - Media timecode 1:00:12;15 (dropframe)
[time:C01:00:12:15] - Media timecode 1:00:12:15 (non-dropframe)
[time:+PC00:01:00:00] - One minute of media from now.
[Time:+PT01:30:00] - One hour, thirty minutes from now, wall clock time.
[time:1999-03-24T02:34:56/1999-03-24T02:35:45] - Trigger valid from March 24, 1999, 2:34:56am UTC to March 24, 1999, 2:35:45am
[time:/1999-03-24T02:35:45] - Trigger valid from now until March 24, 1999, at 2:35:45
[time:+PC00:01:00:00/+PC00:02:00:00] - Trigger valid from one minute of media from now until two minutes of media from now.
[Time:+PC00:01:00:00/PC00:03:00:00] - Trigger valid from one minute of media from now for a period of three minutes of media.
[time:/+PC00:01:00;00] - Trigger valid from now to one minute of dropframe media from now.
[Time:/+PT00:30:00] - Trigger valid from now to thirty minutes (wall clock time) from now.

Back to top

TVE

Specifies the ATVEF content level of the interactive TV show. This is required in Transport Type A triggers only. If the "tve:" attribute is not present in a Type A trigger, the content described in the trigger is considered non-ATVEF content.

The "tve:" attribute is equivalent to "type:tve" and "tve-level:" in SAP/SDP announcements in the Transport Type B IP multicast binding. The receiver ignores this attribute in a trigger in Transport Type B since these values are set in the announcement.

This attribute can be abbreviated as the letter %u2018v%u2019. The version number can be abbreviated to a single digit when the decimal point is ".0". This attribute is the same as [view:tv]. [v:tv] or [v:t] is equivalent to [v:1] or [v:1.0].

Syntax:
[tve:version]

where:
version is the revision level.

Examples:
[v:1]
[v:1.0]
[tve:1.0]

Back to top

TYPE

Categorizes interactive TV links and shows the TV audience any links that appeared during a program or time period. The time attribute can be abbreviated as a "t."

Syntax: [type:value]
where:
value is the category.

Valid values are:

Value Abbreviation Description
Program p The current program
Network n The broadcast network
Station s The local station
Sponsor a The commercial sponsor of the current program
Operator o The service operator (for example: cable or satellite)

Examples:
[t:o]
[type:a]
[type:operator]

Back to top

URL

Refers to the address of the interactive TV content. The URL address is interpreted by the receiver depending on what form the address takes. In each instance the receiver first checks a specific cache section reserved for each resource type.

Resources referred to using the Hypertext Transfer Protocol (http://) format refer to items retrieved via the back channel. The receiver first checks the disk cache to see if the item is there and current. If it is not found or it has expired it is retrieved using the back channel.

Resources referred to using the Location Identifier (lid:) refer to content cached during Type B transmission.

Relative addressing is not allowed in triggers, only with the content referenced by the trigger.

Syntax:

where:
URL is any valid absolute Internet address.

Example:

Back to top

VIDEOAD

Determines if a video advertisement appears while the interactive content is downloading. If false, no advertisement appears while connecting.

Syntax:
[videoad:true/false] False is the default value.

Example:
[videoAd:true]

Back to top

VIEW

Specifies how the receiver should display the linked resource (or how the viewer should see it).

If you follow a link with a [view:web] attribute, no TV images are displayed to the user, unless the [showPIP:true] is also within that trigger. No triggers are interpreted while the receiver is in a "Web" display.

The [view:tv] attribute enables the receiver to display interactive TV content either as an object (using the <OBJECT> tag) or as an overlay with the broadcast in the background. Please refer to Trigger Receiver Objects: the <OBJECT> Tag and The View Anchor Attribute for more details on the behavior of the feature.

The view attribute can be abbreviated as a "v."

Syntax:
[view:name]

where:
name is the type of display.

Valid values are:
tv as television related content.
web as a conventional Web page, with no TV content. This is the default value.

Examples:
[v:t]
[view:tv]

Back to Top

Trigger Weaving

Developers should no longer use the trigger weaving technique for the reasons explained below.

When the WebTV® receiver was first enabled to run interactive TV applications, the only way to initiate that application along with the broadcast program was to use a trigger link within the closed captioning area of the signal. These trigger links, encoded into Line 21 of the Vertical Blanking Interval (VBI) along side of the closed captioning text, originally instructed the WebTV receiver to display a small icon in the corner of the television screen that indicated to the user the iTV content was available.

The only problem with this mechanism was that if the user missed the first opportunity to "Go Interactive" they were out of luck for the remainder of the show. This was due to a logic within the receiver that ignored duplicate triggers. If a trigger came into the receiver that was the same as the last it was ignored. The solution devised by WebTV and our partners was to alternate, or "weave," two triggers thus ensuring that the one being received was never the same as the one before. The triggers were syntactically different and yet pointed to the same content.

But with the client firmware version 2.5 the situation changed. The icon went away to replace the two steps needed to "Go Interactive" with the one options panel. The WebTV engineers also added an "options" button that would allow the viewer to elect the "Go Interactive" at any point during the interactive program.

This left the weaved triggers popping up the options panel too often, obscuring the screen and turning the viewing experience negative. For this reason developers must not use the trigger weaving technique.

Back to Top