prebid/Prebid.js

View on GitHub
libraries/fpdUtils/pageInfo.js

Summary

Maintainability
C
1 day
Test Coverage
import * as utils from '../../src/utils.js';

/**
 * get page title
 * @returns {string}
 */
export function getPageTitle(win = window) {
  try {
    const ogTitle = win.top.document.querySelector('meta[property="og:title"]');
    return win.top.document.title || (ogTitle && ogTitle.content) || '';
  } catch (e) {
    const ogTitle = document.querySelector('meta[property="og:title"]');
    return document.title || (ogTitle && ogTitle.content) || '';
  }
}

/**
 * get page description
 * @returns {string}
 */
export function getPageDescription(win = window) {
  let element;

  try {
    element = win.top.document.querySelector('meta[name="description"]') ||
      win.top.document.querySelector('meta[property="og:description"]')
  } catch (e) {
    element = document.querySelector('meta[name="description"]') ||
      document.querySelector('meta[property="og:description"]')
  }

  return (element && element.content) || '';
}

/**
 * get page keywords
 * @returns {string}
 */
export function getPageKeywords(win = window) {
  let element;

  try {
    element = win.top.document.querySelector('meta[name="keywords"]');
  } catch (e) {
    element = document.querySelector('meta[name="keywords"]');
  }

  return (element && element.content) || '';
}

/**
 * get connection downlink
 * @returns {number}
 */
export function getConnectionDownLink(win = window) {
  const nav = win.navigator || {};
  return nav && nav.connection && nav.connection.downlink >= 0 ? nav.connection.downlink.toString() : undefined;
}

/**
 * @param bidRequest
 * @param bidderRequest
 * @returns {string}
 */
export function getReferrer(bidRequest = {}, bidderRequest = {}) {
  let pageUrl;
  if (bidRequest.params && bidRequest.params.referrer) {
    pageUrl = bidRequest.params.referrer;
  } else {
    pageUrl = utils.deepAccess(bidderRequest, 'refererInfo.page');
  }
  return pageUrl;
}