google-publisher-tag
Version:
Type-safe React wrapper for Google Publisher Tag (GPT).
23 lines (22 loc) • 798 B
JavaScript
let gptPromise = null;
export function loadGPT() {
if (typeof window === "undefined") {
return Promise.reject(new Error("GPT can only be loaded on client-side"));
}
if (gptPromise)
return gptPromise;
window.googletag = window.googletag || { cmd: [] };
gptPromise = new Promise((resolve, reject) => {
const script = document.createElement("script");
script.async = true;
script.src = "https://securepubads.g.doubleclick.net/tag/js/gpt.js";
script.onload = () => {
window.googletag.cmd.push(() => {
resolve(window.googletag);
});
};
script.onerror = () => reject(new Error("Failed to load gpt.js"));
document.head.appendChild(script);
});
return gptPromise;
}