ng-gpt
Version:
A Angular implementation of the google GPT API.
111 lines • 13.7 kB
JavaScript
import { isPlatformBrowser } from '@angular/common';
import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';
import { GPT_CONFIG } from './gpt.config';
import { GPT_URL } from './gpt.contants';
import * as i0 from "@angular/core";
import * as i1 from "./services/idle.service";
import * as i2 from "./services";
import * as i3 from "./gpt.config";
export class NgGptService {
constructor(platformID, config, idleLoad, pubadsSetConfig, scriptInjector) {
this.platformID = platformID;
this.config = config;
this.pubadsSetConfig = pubadsSetConfig;
this.scriptInjector = scriptInjector;
this.collapseEmptyDivs = true;
this.enableVideoAds = false;
this.enableLazyLoad = {};
this.centering = false;
this.personalizedAds = true;
this.limitedAds = false;
this.forceSafeFrame = false;
this.address = '';
this.ppid = '';
this.globalTargeting = {};
this.safeFrameConfig = {};
this.loadGPT = true;
this.loaded = false;
if (isPlatformBrowser(this.platformID)) {
const w = window, googletag = w.googletag || {};
this.gptConfig();
googletag.cmd = googletag.cmd || [];
googletag.cmd.push(() => {
this.setup();
});
w.googletag = googletag;
if (this.loadGPT) {
const loadScript = () => {
this.scriptInjector.scriptInjector(GPT_URL).then((script) => {
this.loaded = true;
});
};
if (idleLoad) {
idleLoad.request(loadScript);
}
else {
loadScript();
}
}
}
}
gptConfig() {
for (const key in this.config) {
if (this.hasOwnProperty(key)) {
this[key] = this.config[key];
}
}
}
setup() {
const w = window, googletag = w.googletag, pubads = googletag.pubads();
if (this.enableVideoAds)
pubads.enableVideoAds();
if (this.collapseEmptyDivs)
pubads.collapseEmptyDivs();
pubads.disableInitialLoad();
pubads.setForceSafeFrame(this.forceSafeFrame);
pubads.setCentering(this.centering);
pubads.setRequestNonPersonalizedAds(this.personalizedAds ? 0 : 1);
this.pubadsSetConfig.addLocation(this.address, pubads);
this.pubadsSetConfig.addPPID(this.ppid, pubads);
this.pubadsSetConfig.addTargeting(this.globalTargeting, pubads);
this.pubadsSetConfig.addSafeFrameConfig(this.safeFrameConfig, pubads);
pubads.setPrivacySettings({
limitedAds: this.limitedAds,
});
if (this.config.singleRequestMode !== true) {
if (this.config.enableVideoAds) {
pubads.enableVideoAds();
}
googletag.enableServices();
}
if (Object.keys(this.enableLazyLoad).length) {
pubads.enableLazyLoad(this.enableLazyLoad);
}
}
hasLoaded() {
return this.loaded;
}
defineTask(task) {
if (isPlatformBrowser(this.platformID)) {
const w = window, googletag = w.googletag;
googletag.cmd.push(task);
}
}
}
NgGptService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NgGptService, deps: [{ token: PLATFORM_ID }, { token: GPT_CONFIG }, { token: i1.IdleService, optional: true }, { token: i2.PubadsSetConfigService }, { token: i2.ScriptInjectorService }], target: i0.ɵɵFactoryTarget.Injectable });
NgGptService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NgGptService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: NgGptService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return [{ type: Object, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }, { type: i3.GptConfig, decorators: [{
type: Inject,
args: [GPT_CONFIG]
}] }, { type: i1.IdleService, decorators: [{
type: Optional
}] }, { type: i2.PubadsSetConfigService }, { type: i2.ScriptInjectorService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZ3B0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1ncHQvc3JjL2xpYi9uZy1ncHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVd6QyxNQUFNLE9BQU8sWUFBWTtJQWdCdkIsWUFDK0IsVUFBa0IsRUFDbkIsTUFBaUIsRUFDakMsUUFBcUIsRUFDekIsZUFBdUMsRUFDdkMsY0FBcUM7UUFKaEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBRXJDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUN2QyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFwQnZDLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixtQkFBYyxHQUEwQixFQUFFLENBQUM7UUFDM0MsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3QixvQkFBZSxHQUFvQixFQUFFLENBQUM7UUFDdEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFVckIs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QUFDO2FBQ3pCO1lBQ0QsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVM7UUFDbEIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQVEsTUFBTSxFQUNuQixTQUFTLEdBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUVyQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7O3lHQXZHVSxZQUFZLGtCQWlCYixXQUFXLGFBQ1gsVUFBVTs2R0FsQlQsWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7MERBa0I0QyxNQUFNOzBCQUE5QyxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFB1YmFkc1NldENvbmZpZ1NlcnZpY2UsIFNjcmlwdEluamVjdG9yU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgR3B0Q29uZmlnLCBHUFRfQ09ORklHIH0gZnJvbSAnLi9ncHQuY29uZmlnJztcbmltcG9ydCB7IEdQVF9VUkwgfSBmcm9tICcuL2dwdC5jb250YW50cyc7XG5pbXBvcnQge1xuICBHb29nbGV0YWcsXG4gIExhenlMb2FkT3B0aW9uc0NvbmZpZyxcbiAgU2FmZUZyYW1lQ29uZmlnLFxufSBmcm9tICcuL25nLWdwdC1nb29nbGV0YWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IElkbGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pZGxlLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmdHcHRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb2xsYXBzZUVtcHR5RGl2cyA9IHRydWU7XG4gIHByaXZhdGUgZW5hYmxlVmlkZW9BZHMgPSBmYWxzZTtcbiAgcHJpdmF0ZSBlbmFibGVMYXp5TG9hZDogTGF6eUxvYWRPcHRpb25zQ29uZmlnID0ge307XG4gIHByaXZhdGUgY2VudGVyaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgcGVyc29uYWxpemVkQWRzID0gdHJ1ZTtcbiAgcHJpdmF0ZSBsaW1pdGVkQWRzID0gZmFsc2U7XG4gIHByaXZhdGUgZm9yY2VTYWZlRnJhbWUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBhZGRyZXNzOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBwcGlkOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBnbG9iYWxUYXJnZXRpbmc6IG9iamVjdCA9IHt9O1xuICBwcml2YXRlIHNhZmVGcmFtZUNvbmZpZzogU2FmZUZyYW1lQ29uZmlnID0ge307XG4gIHByaXZhdGUgbG9hZEdQVCA9IHRydWU7XG4gIHByaXZhdGUgbG9hZGVkID0gZmFsc2U7XG4gIFtpbmRleDogc3RyaW5nXTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JRDogT2JqZWN0LFxuICAgIEBJbmplY3QoR1BUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEdwdENvbmZpZyxcbiAgICBAT3B0aW9uYWwoKSBpZGxlTG9hZDogSWRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwdWJhZHNTZXRDb25maWc6IFB1YmFkc1NldENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzY3JpcHRJbmplY3RvcjogU2NyaXB0SW5qZWN0b3JTZXJ2aWNlXG4gICkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICBjb25zdCB3OiBhbnkgPSB3aW5kb3csXG4gICAgICAgIGdvb2dsZXRhZzogR29vZ2xldGFnID0gdy5nb29nbGV0YWcgfHwge307XG5cbiAgICAgIHRoaXMuZ3B0Q29uZmlnKCk7XG5cbiAgICAgIGdvb2dsZXRhZy5jbWQgPSBnb29nbGV0YWcuY21kIHx8IFtdO1xuICAgICAgZ29vZ2xldGFnLmNtZC5wdXNoKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXR1cCgpO1xuICAgICAgfSk7XG4gICAgICB3Lmdvb2dsZXRhZyA9IGdvb2dsZXRhZztcblxuICAgICAgaWYgKHRoaXMubG9hZEdQVCkge1xuICAgICAgICBjb25zdCBsb2FkU2NyaXB0ID0gKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2NyaXB0SW5qZWN0b3Iuc2NyaXB0SW5qZWN0b3IoR1BUX1VSTCkudGhlbigoc2NyaXB0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGlkbGVMb2FkKSB7XG4gICAgICAgICAgaWRsZUxvYWQucmVxdWVzdChsb2FkU2NyaXB0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2FkU2NyaXB0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdwdENvbmZpZygpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmNvbmZpZykge1xuICAgICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICB0aGlzW2tleV0gPSB0aGlzLmNvbmZpZ1trZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXAoKSB7XG4gICAgY29uc3QgdzogYW55ID0gd2luZG93LFxuICAgICAgZ29vZ2xldGFnOiBHb29nbGV0YWcgPSB3Lmdvb2dsZXRhZyxcbiAgICAgIHB1YmFkcyA9IGdvb2dsZXRhZy5wdWJhZHMoKTtcblxuICAgIGlmICh0aGlzLmVuYWJsZVZpZGVvQWRzKSBwdWJhZHMuZW5hYmxlVmlkZW9BZHMoKTtcbiAgICBpZiAodGhpcy5jb2xsYXBzZUVtcHR5RGl2cykgcHViYWRzLmNvbGxhcHNlRW1wdHlEaXZzKCk7XG5cbiAgICBwdWJhZHMuZGlzYWJsZUluaXRpYWxMb2FkKCk7XG4gICAgcHViYWRzLnNldEZvcmNlU2FmZUZyYW1lKHRoaXMuZm9yY2VTYWZlRnJhbWUpO1xuICAgIHB1YmFkcy5zZXRDZW50ZXJpbmcodGhpcy5jZW50ZXJpbmcpO1xuICAgIHB1YmFkcy5zZXRSZXF1ZXN0Tm9uUGVyc29uYWxpemVkQWRzKHRoaXMucGVyc29uYWxpemVkQWRzID8gMCA6IDEpO1xuXG4gICAgdGhpcy5wdWJhZHNTZXRDb25maWcuYWRkTG9jYXRpb24odGhpcy5hZGRyZXNzLCBwdWJhZHMpO1xuICAgIHRoaXMucHViYWRzU2V0Q29uZmlnLmFkZFBQSUQodGhpcy5wcGlkLCBwdWJhZHMpO1xuICAgIHRoaXMucHViYWRzU2V0Q29uZmlnLmFkZFRhcmdldGluZyh0aGlzLmdsb2JhbFRhcmdldGluZywgcHViYWRzKTtcbiAgICB0aGlzLnB1YmFkc1NldENvbmZpZy5hZGRTYWZlRnJhbWVDb25maWcodGhpcy5zYWZlRnJhbWVDb25maWcsIHB1YmFkcyk7XG5cbiAgICBwdWJhZHMuc2V0UHJpdmFjeVNldHRpbmdzKHtcbiAgICAgIGxpbWl0ZWRBZHM6IHRoaXMubGltaXRlZEFkcyxcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5zaW5nbGVSZXF1ZXN0TW9kZSAhPT0gdHJ1ZSkge1xuICAgICAgaWYgKHRoaXMuY29uZmlnLmVuYWJsZVZpZGVvQWRzKSB7XG4gICAgICAgIHB1YmFkcy5lbmFibGVWaWRlb0FkcygpO1xuICAgICAgfVxuICAgICAgZ29vZ2xldGFnLmVuYWJsZVNlcnZpY2VzKCk7XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuZW5hYmxlTGF6eUxvYWQpLmxlbmd0aCkge1xuICAgICAgcHViYWRzLmVuYWJsZUxhenlMb2FkKHRoaXMuZW5hYmxlTGF6eUxvYWQpO1xuICAgIH1cbiAgfVxuXG4gIGhhc0xvYWRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkZWQ7XG4gIH1cblxuICBkZWZpbmVUYXNrKHRhc2s6IGFueSk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICBjb25zdCB3OiBhbnkgPSB3aW5kb3csXG4gICAgICAgIGdvb2dsZXRhZzogR29vZ2xldGFnID0gdy5nb29nbGV0YWc7XG5cbiAgICAgIGdvb2dsZXRhZy5jbWQucHVzaCh0YXNrKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==