• Stars
    star
    365
  • Rank 116,851 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 11 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

VAST (up to 6) parsing library for JavaScript

npm version downloads per week license

VAST Client JS

Vast Client JS is a JavaScript library to fetch and parse Digital Video Ad Serving Template (VAST) documents.

This library provides three components:

  • A VAST Client to fetch and parse VAST XML resources into JavaScript Objects.
  • A VAST Parser to directly parse a VAST XML.
  • A VAST Tracker to batch and call tracking URLs.

For the full API documentation go here. For the full Class reference go here

Complies with the VAST 4.2 specification provided by the Interactive Advertising Bureau (IAB).

Get Started

VAST Client JS is available as an NPM package and can be easily installed with:

npm i @dailymotion/vast-client

Then import the components you need.

VASTClient

If you need to fetch and parse VAST documents, you can use the VASTClient:

import { VASTClient } from '@dailymotion/vast-client'

const vastClient = new VASTClient();

vastClient.get('https://www.examplevast.com/vast.xml')
  .then(parsedVAST => {
    // Do something with the parsed VAST response
  })
  .catch(err => {
    // Deal with the error
  });

In addition to fetching and parsing a VAST resource, VASTClient provides options to filter a sequence of calls based on count and time of execution, together with the possibility to track URLs using VASTTracker.

VASTParser

To directly parse a VAST XML you can use the VASTParser:

import { VASTParser } from '@dailymotion/vast-client'

const vastParser = new VASTParser();

vastParser.parseVAST(vastXml)
  .then(parsedVAST => {
    // Do something with the parsed VAST response
  })
  .catch(err => {
    // Deal with the error
  });

VASTTracker

To track the execution of an ad, create a VASTTracker instance and use the dedicated methods to calls VAST tracking elements.

import { VASTTracker } from '@dailymotion/vast-client'

const vastTracker = new VASTTracker(vastClient, ad, creative);

// Track an impression for the given ad. Will call any <Impression> URI from the <InLine> and <Wrapper> tracking elements.
vastTracker.trackImpression();

API Documentation

The API documentation is organized by components:

Changelog and migration guides can be found in the release notes.

Pre-bundled versions

We provide several pre-bundled versions of the client (see dist directory)

Bundlers

A version for js bundlers (like webpack or rollup) is available by default when adding the lib using a package manager (like npm or yarn): vast-client.js or vast-client.min.js [minified].

const import {
  VASTClient,
  VASTParser,
  VASTTracker
} from '@dailymotion/vast-client'

const vastClient = new VASTClient();
const vastParser = new VASTParser();
const vastTracker = new VASTTracker();

Browser script

A pre-bundled version of VAST Client JS is available: vast-client-browser.min.js [minified].

You can add the script directly to your page and access the library's components through the VAST object.

<script src="vast-client-browser.min.js"></script>
const vastClient = new VAST.VASTClient();
const vastParser = new VAST.VASTParser();
const vastTracker = new VAST.VASTTracker();

Node

A pre-bundled version for node is available too: vast-client-node.js or vast-client-node.min.js [minified].

// Method 1: From npm
const VAST = require('@dailymotion/vast-client')

// Method 2: For pre-bundled you must copy first the file inside your project
// then you will be able to require it without the need of npm
const VAST = require('your/path/vast-client-node.min.js')

const vastClient = new VAST.VASTClient();
const vastParser = new VAST.VASTParser();
const vastTracker = new VAST.VASTTracker();

Build / Contribute

See CONTRIBUTING

More Repositories

1

oplog

A generic oplog/replication system for microservices
Go
111
star
2

dailymotion-player-sdk-android

The SDK to play dailymotion videos in your Android apps
Kotlin
83
star
3

asteroid

Asteroid is a tool designed to help you manage your Wireguard server by letting you easily view/add/remove peers.
Go
78
star
4

allure-go

Golang port for Allure test reporting tool
Go
76
star
5

dailymotion-sdk-php

Dailymotion Graph API PHP SDK
PHP
63
star
6

dailymotion-player-sdk-ios

Dailymotion Player SDK for iOS
Objective-C
58
star
7

kinta

πŸ› οΈ Automate your mobile workflows in Kotlin πŸ› οΈ
Kotlin
47
star
8

dailymotion-sdk-js

Dailymotion JavaScript client API
JavaScript
34
star
9

dailymotion-sdk-python

Dailymotion SDK Python
Python
34
star
10

dailymotion-swift-player-sdk-ios

Dailymotion Player SDK for iOS in Swift
Objective-C
34
star
11

react-collider

Isomorphic React apps done the good way
JavaScript
33
star
12

cloudkey-php

Dailymotion Cloud PHP client API
PHP
29
star
13

ZMScrollableNavigationBar

A UINavigationController category that allows the UINavigationBar to scroll with the content (iOS 8 only)
Objective-C
28
star
14

vmap-js

A VMAP JavaScript Library
JavaScript
25
star
15

chash

Very fast consistent hashing library
C
22
star
16

lua-nginx-guard-jwt

Map JWT claims values to HTTP's request headers
Lua
16
star
17

webpack-multi-output

Webpack loader/plugin for multiple compiling with crazy performances
JavaScript
14
star
18

camcorder

An offline-capable, mobile, web application to record, watch and upload videos to dailymotion.
JavaScript
14
star
19

hands-on-diagnosing-golang-apps

How to diagnose a misbehaving Go application, with different kind of tools, from generic unix tools, to very specific go tools.
Go
13
star
20

picomongo

Python
9
star
21

mod_xgeoip

Apache 2.x module for (very) fast MaxMind geoip database lookups
C
7
star
22

lua-resty-dogstatsd

A client for DogStatsD, an extension of the StatsD metric server for Datadog. Using nginx cosocket API.
Lua
6
star
23

reactjs-meetup-12-2018-demo

Demo repository for the "Get those bottlenecks out of my front yard!" talk
JavaScript
5
star
24

android-cloud-build-sample

This is a simple project to demonstrate how to use Google Cloud Build as an Android Continuous Integration environment
Dockerfile
5
star
25

puzzles

4
star
26

angular-eve-resource

AngularJS Resource Adapter for the Python Eve REST API Framework
JavaScript
4
star
27

hands-on-kubernetes

Learn how to use Kubernetes to deploy applications
4
star
28

oplogc

A Go consumer library for OpLog server
Go
4
star
29

hpcfs

HTTP (Reverse) Proxy Cache Filesystem
C
4
star
30

aa2bk

Java
3
star
31

angular-jed

Angular wrapper for Jed
CoffeeScript
3
star
32

forensiq

Golang library for interacting with Forensiq
Go
2
star
33

vast-client-to-xml

JavaScript
2
star
34

demo-stream-urls-server

Python
2
star
35

player-sdk-android-samples

Sample apps repository for Dailymotion player sdk android
Kotlin
2
star
36

dailymotion-sdk-js-starterkit

sample js app for dailymotion : videos listing
JavaScript
1
star
37

dm-skinning-guidelines

skinning guidelines for the dailymotion site
1
star
38

homebrew-dev

Ruby
1
star
39

player-workshop-api

Base material for a workshop to introduce the player API.
HTML
1
star
40

cloudkey-fixtures

Test fixtures for cloudkey languages bindings unit tests
1
star