Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@alugha/ima

alugha40.8kMIT2.2.1TypeScript support: included

A library for asynchronously loading the Google IMA SDK with static typing for the SDK

readme

Typed Google IMA SDK

A library without runtime dependencies for asynchronously loading the Google IMA SDK, including TypeScript type definitions for the SDK itself.

For information on the Google IMA SDK itself, please visit Google's official documentation.

Installation

yarn add @alugha/ima or npm install --save @alugha/ima

Usage

TypeScript with async loading

With promises and CommonJS modules:

const { loadImaSdk, google } = require("@alugha/ima");

loadImaSdk()
  .then(ima => {
    // Use the IMA SDK like any other typed module
    const adDisplayContainer: google.ima.AdDisplayContainer = new ima.AdDisplayContainer(
      document.getElementById("ad-container")
    );
    adDisplayContainer.initialize();
  })
  .catch(() => {
    console.log("SDK could not be loaded. Check your ad blocker!");
  });

With async / await and ES2015 modules:

import { loadImaSdk, google } from "@alugha/ima";

const example = async () => {
  try {
    const ima = await loadImaSdk();
    // Use the IMA SDK like any other typed module
    const adDisplayContainer: google.ima.AdDisplayContainer = new ima.AdDisplayContainer(
      document.getElementById("ad-container")
    );
    adDisplayContainer.initialize();
  } catch (e) {
    console.log("SDK could not be loaded. Check your ad blocker!");
  }
};

TypeScript without async loading

If you prefer to directly load the SDK using a script tag, you can still make use of the included type definitions in types/ima.d.ts.

Disclaimer

We are not involved in the development of the Google IMA SDK itself. This library is not connected to Google in any way either.

changelog

v2.2.1 (2023-05-17)

Fixes:

v2.2.0 (2023-05-17)

Changes:

  • Target ES2015 instead of ES5

Fixes:

Technical changes:

  • Updated from TypeScript 4.4 to 5.0

v2.1.0 (2021-09-28)

Changes:

  • @joeflateau: Add pageUrl property to AdsRequest (#19)

Fixes:

  • @joeflateau: Loading of IMA SDK in non-http environments (#16 / #18)

Technical changes:

  • Updated from TypeScript 4.1 to 4.4
  • Updated from ESLint 7.13 to 7.32
  • Updated from Prettier 2.2 to 2.4
  • Remove TSLint

v2.0.3 (2021-05-01)

Fixes:

  • @Achavesm: Spelling mistake in nearMathPercent (#11)

v2.0.2 (2020-11-20)

Fixes:

  • Set correct values for enum types (fixes #1)

v2.0.1 (2020-11-20)

Fixes:

  • Import google namespace through import type instead of import to avoid compiler errors

v2.0.0 (2020-11-20)

Breaking changes:

  • Moved declaration of google.ima namespace from global scope to module scope to avoid type clashes, it now has to be imported explicitly: import type { google } from '@alugha/ima;

Technical changes:

  • Updated from TypeScript 2.6 to 4.1
  • Updated from Prettier 1.10 to 2.2
  • Migrated from TSLint to ESLint

v1.2.0 (2020-05-08)

Changes:

  • @bechtold: Added new AdEvent types (#4)
  • @klipstein: Add missing AdsRequest.setContinuousPlayback method (#7)

v1.1.0 (2018-01-31)

Changes:

  • Update method addEventListener for both AdsLoader and AdsManager to include an optional third parameter called useCapture of type boolean
  • Add method removeEventListener(type, listener, useCapture?) to AdsLoader and AdsManager