# Analytics

# Events

MOV Player is sending these events to Mediaoutcast Analytics.

# Seen

name: seen
Player came into the viewport.

# Start

name: start
Video starts playing (first play).

# Ad start

name: ad_start
Ad starts playing.

# Ad end

name: ad_end
Ad ends playing.

# Play

name: play
Every video play after first one.

# Pause

name: pause
Every video pause.

# Complete

name: complete
Video ends.

# Video percents

name: video_percent_*
Video is at * percents of duration, player is sending 25, 50, 75 and 95 replacing * in name (for example video_percent_25 etc.).

# Web

# Payload

JSON payload props reference:

{
    t: 'play', // String (event name) REQUIRED
    d: 'example.com', // String (domain) REQUIRED
    pid: '<project_id>', // String (project id) REQUIRED
    p: '/video/123', // String (page relative url) REQUIRED
    s: 'utm_content=example&ref=example.com', // String (page search query)
    pp: 'https://example.com/', // String (previous page url)
    vid: '<video_id>', // String (video id)
    vt: 'My Video Title', // String (video title) REQUIRED - if using video source, not REQUIRED if video id is provided
    plid: '<player_id>', // String (player id)
    plt: 'My Player Title', // String (player title)
    r: '720p', // String (video resolution when event occurs)
    cid: '<category_id>', // String (category id)
    ct: 'My Category Title', // String (category title)
    pos: 'https://example.com/vidposter.jpg', // String (video poster url)
    is: true, // Boolean (is livestream)
    dur: 0, // Integer (video duration)
    tw: 0 // Integer (time watched increments)
}

# Flow

Player is sending JSON to MOA video script that attach function to window object:

window['moavideo']('start', 
    {
        video_id: 'hJ58vc0',
        video_title: 'best video ever',
        player_id: 'gQ7n32p',
        poster: 'https://static.mediaoutcast.com/..../some_image.jpg',
        is_stream: false
    }
);

Resulting payload example from MOA script to server:

{
    vid: 'hJ58vc0',
    d: 'somedomain.com',
    is: false,
    p: '/page/url',
    pid: 'vWn2i37',
    plid: 'gQ7n32p'
    pp: 'somedomain.com/page/url',
    t: 'start',
    vt: 'best video ever'
}

# Mobile

# Payload

JSON payload props reference:

{
    t: 'play', // String (event name) REQUIRED
    is: true, // Boolean (is livestream)
    pid: '<project_id>', // String (project id) REQUIRED
    dev: 'iPhone 12', // String (device) REQUIRED
    os: 'iOS', // String (os) REQUIRED
    osv: '14.4', // String (os version) REQUIRED
    a: 'My App', // String (app) REQUIRED
    av: '0.0.1', // String (app version)
    s: 'Home', // String (screen) REQUIRED
    vid: '<video_id>', // String (video id)
    vt: 'My Video', // String (video title) REQUIRED - if using video source, not REQUIRED if video id is provided
    plid: '<player_id>', // String (player id)
    pos: 'https://example.com/vid.jpg' // String (video poster url)
}

# URLs

For both Web and Mobile collector server URL is the same:
https://moav.mediaoutcast.com
or
https://moav.{client}.mediaoutcast.com
*client - for enterprise clients, targets separate server setup.

# MOA Collector

Swagger documentation (opens new window)