@bidkernel/analytics 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var bidkernelPrebidAnalyticsBundle=(()=>{var x=(i,e)=>()=>(i&&(e=i(i=0)),e);var Le=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports);function ue(){let i=0,e=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(i|=(r&127)<<n,(r&128)==0)return this.assertBounds(),[i,e]}let t=this.buf[this.pos++];if(i|=(t&15)<<28,e=(t&112)>>4,(t&128)==0)return this.assertBounds(),[i,e];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<n,(r&128)==0)return this.assertBounds(),[i,e]}throw new Error("invalid varint")}function V(i,e,t){for(let s=0;s<28;s=s+7){let o=i>>>s,d=!(!(o>>>7)&&e==0),a=(d?o|128:o)&255;if(t.push(a),!d)return}let n=i>>>28&15|(e&7)<<4,r=e>>3!=0;if(t.push((r?n|128:n)&255),!!r){for(let s=3;s<31;s=s+7){let o=e>>>s,d=!!(o>>>7),a=(d?o|128:o)&255;if(t.push(a),!d)return}t.push(e>>>31&1)}}function Y(i){let e=i[0]==="-";e&&(i=i.slice(1));let t=1e6,n=0,r=0;function s(o,d){let a=Number(i.slice(o,d));r*=t,n=n*t+a,n>=L&&(r=r+(n/L|0),n=n%L)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?fe(n,r):Q(n,r)}function le(i,e){let t=Q(i,e),n=t.hi&2147483648;n&&(t=fe(t.lo,t.hi));let r=j(t.lo,t.hi);return n?"-"+r:r}function j(i,e){if({lo:i,hi:e}=Ve(i,e),e<=2097151)return String(L*e+i);let t=i&16777215,n=(i>>>24|e<<8)&16777215,r=e>>16&65535,s=t+n*6777216+r*6710656,o=n+r*8147497,d=r*2,a=1e7;return s>=a&&(o+=Math.floor(s/a),s%=a),o>=a&&(d+=Math.floor(o/a),o%=a),d.toString()+ce(o)+ce(s)}function Ve(i,e){return{lo:i>>>0,hi:e>>>0}}function Q(i,e){return{lo:i|0,hi:e|0}}function fe(i,e){return e=~e,i?i=~i+1:e+=1,Q(i,e)}function Z(i,e){if(i>=0){for(;i>127;)e.push(i&127|128),i=i>>>7;e.push(i)}else{for(let t=0;t<9;t++)e.push(i&127|128),i=i>>7;e.push(1)}}function he(){let i=this.buf[this.pos++],e=i&127;if((i&128)==0)return this.assertBounds(),e;if(i=this.buf[this.pos++],e|=(i&127)<<7,(i&128)==0)return this.assertBounds(),e;if(i=this.buf[this.pos++],e|=(i&127)<<14,(i&128)==0)return this.assertBounds(),e;if(i=this.buf[this.pos++],e|=(i&127)<<21,(i&128)==0)return this.assertBounds(),e;i=this.buf[this.pos++],e|=(i&15)<<28;for(let t=5;(i&128)!==0&&t<10;t++)i=this.buf[this.pos++];if((i&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}var L,ce,J=x(()=>{"use strict";L=4294967296;ce=i=>{let e=String(i);return"0000000".slice(e.length)+e}});function Fe(){let i=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof i.getBigInt64=="function"&&typeof i.getBigUint64=="function"&&typeof i.setBigInt64=="function"&&typeof i.setBigUint64=="function"&&(!!globalThis.Deno||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),r=BigInt("0"),s=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(o){let d=typeof o=="bigint"?o:BigInt(o);if(d>n||d<t)throw new Error(`invalid int64: ${o}`);return d},uParse(o){let d=typeof o=="bigint"?o:BigInt(o);if(d>s||d<r)throw new Error(`invalid uint64: ${o}`);return d},enc(o){return i.setBigInt64(0,this.parse(o),!0),{lo:i.getInt32(0,!0),hi:i.getInt32(4,!0)}},uEnc(o){return i.setBigInt64(0,this.uParse(o),!0),{lo:i.getInt32(0,!0),hi:i.getInt32(4,!0)}},dec(o,d){return i.setInt32(0,o,!0),i.setInt32(4,d,!0),i.getBigInt64(0,!0)},uDec(o,d){return i.setInt32(0,o,!0),i.setInt32(4,d,!0),i.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(t){return typeof t!="string"&&(t=t.toString()),pe(t),t},uParse(t){return typeof t!="string"&&(t=t.toString()),ye(t),t},enc(t){return typeof t!="string"&&(t=t.toString()),pe(t),Y(t)},uEnc(t){return typeof t!="string"&&(t=t.toString()),ye(t),Y(t)},dec(t,n){return le(t,n)},uDec(t,n){return j(t,n)}}}function pe(i){if(!/^-?[0-9]+$/.test(i))throw new Error("invalid int64: "+i)}function ye(i){if(!/^[0-9]+$/.test(i))throw new Error("invalid uint64: "+i)}var A,be=x(()=>{"use strict";J();A=Fe()});function te(){if(globalThis[ee]==null){let i=new globalThis.TextEncoder,e=new globalThis.TextDecoder;globalThis[ee]={encodeUtf8(t){return i.encode(t)},decodeUtf8(t){return e.decode(t)},checkUtf8(t){try{return encodeURIComponent(t),!0}catch{return!1}}}}return globalThis[ee]}var ee,ie=x(()=>{"use strict";ee=Symbol.for("@bufbuild/protobuf/text-encoding")});function ne(i){if(typeof i=="string")i=Number(i);else if(typeof i!="number")throw new Error("invalid int32: "+typeof i);if(!Number.isInteger(i)||i>Ke||i<He)throw new Error("invalid int32: "+i)}function me(i){if(typeof i=="string")i=Number(i);else if(typeof i!="number")throw new Error("invalid uint32: "+typeof i);if(!Number.isInteger(i)||i>qe||i<0)throw new Error("invalid uint32: "+i)}function Ge(i){if(typeof i=="string"){let e=i;if(i=Number(i),Number.isNaN(i)&&e!=="NaN")throw new Error("invalid float32: "+e)}else if(typeof i!="number")throw new Error("invalid float32: "+typeof i);if(Number.isFinite(i)&&(i>$e||i<We))throw new Error("invalid float32: "+i)}var D,$e,We,qe,Ke,He,O,B,Ie=x(()=>{"use strict";J();be();ie();(function(i){i[i.Varint=0]="Varint",i[i.Bit64=1]="Bit64",i[i.LengthDelimited=2]="LengthDelimited",i[i.StartGroup=3]="StartGroup",i[i.EndGroup=4]="EndGroup",i[i.Bit32=5]="Bit32"})(D||(D={}));$e=34028234663852886e22,We=-34028234663852886e22,qe=4294967295,Ke=2147483647,He=-2147483648,O=class{constructor(e=te().encodeUtf8){this.encodeUtf8=e,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let t=new Uint8Array(e),n=0;for(let r=0;r<this.chunks.length;r++)t.set(this.chunks[r],n),n+=this.chunks[r].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(me(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return ne(e),Z(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.encodeUtf8(e);return this.uint32(t.byteLength),this.raw(t)}float(e){Ge(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){me(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){ne(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return ne(e),e=(e<<1^e>>31)>>>0,Z(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=A.enc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=A.uEnc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=A.enc(e);return V(t.lo,t.hi,this.buf),this}sint64(e){let t=A.enc(e),n=t.hi>>31,r=t.lo<<1^n,s=(t.hi<<1|t.lo>>>31)^n;return V(r,s,this.buf),this}uint64(e){let t=A.uEnc(e);return V(t.lo,t.hi,this.buf),this}},B=class{constructor(e,t=te().decodeUtf8){this.decodeUtf8=t,this.varint64=ue,this.uint32=he,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){let e=this.uint32(),t=e>>>3,n=e&7;if(t<=0||n<0||n>5)throw new Error("illegal tag: field no "+t+" wire type "+n);return[t,n]}skip(e,t){let n=this.pos;switch(e){case D.Varint:for(;this.buf[this.pos++]&128;);break;case D.Bit64:this.pos+=4;case D.Bit32:this.pos+=4;break;case D.LengthDelimited:let r=this.uint32();this.pos+=r;break;case D.StartGroup:for(;;){let[s,o]=this.tag();if(o===D.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(o,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return A.dec(...this.varint64())}uint64(){return A.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,A.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return A.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return A.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.decodeUtf8(this.bytes())}}});var Te=x(()=>{"use strict"});var Ee=x(()=>{"use strict"});var ge=x(()=>{"use strict"});var ve=x(()=>{"use strict";Ie();Te();ie();Ee();ge()});function we(){return{propertyId:"",pageviewId:"",sessionId:"",pageUrl:"",country:"",region:"",deviceType:"",userId:"",domain:"",events:[],browser:"",deviceManufacturer:"",deviceModel:"",city:"",postalCode:""}}function Re(){return{timestampMs:0,type:0,eventName:"",auctionId:"",transactionId:"",adUnitCode:"",bid:void 0,namespace:"",eventId:"",metadata:{},viewableDurationMs:void 0,bidderOutcomes:[]}}function Be(){return{key:"",value:""}}function Ae(){return{bidder:"",adUnitCode:"",mediaType:"",outcome:0,latencyMs:0}}function Se(){return{bidder:"",cpm:0,currency:"",width:0,height:0,dealId:"",mediaType:"",latencyMs:0,advertiserDomain:"",creativeId:""}}var b,C,q,F,re,$,W,xe=x(()=>{"use strict";ve();b={TRACE_EVENT_TYPE_UNSPECIFIED:0,AUCTION_START:1,AUCTION_END:2,BID_RESPONSE:3,BID_WIN:4,IMPRESSION:5,VIEWABLE:6,TIME_IN_VIEW:7,REFRESH:8,ERROR:9,SLOT_DEFINED:10,SLOT_DESTROYED:11,CLICK:12,AD_RENDER_FAILED:13,UNRECOGNIZED:-1},C={BIDDER_OUTCOME_UNSPECIFIED:0,BIDDER_OUTCOME_BID:1,BIDDER_OUTCOME_NO_BID:2,BIDDER_OUTCOME_TIMEOUT:3,BIDDER_OUTCOME_ERROR:4,BIDDER_OUTCOME_NO_RESPONSE:5,UNRECOGNIZED:-1};q={encode(i,e=new O){if(i.propertyId!==void 0&&i.propertyId!==""&&e.uint32(10).string(i.propertyId),i.pageviewId!==void 0&&i.pageviewId!==""&&e.uint32(18).string(i.pageviewId),i.sessionId!==void 0&&i.sessionId!==""&&e.uint32(26).string(i.sessionId),i.pageUrl!==void 0&&i.pageUrl!==""&&e.uint32(34).string(i.pageUrl),i.country!==void 0&&i.country!==""&&e.uint32(42).string(i.country),i.region!==void 0&&i.region!==""&&e.uint32(50).string(i.region),i.deviceType!==void 0&&i.deviceType!==""&&e.uint32(58).string(i.deviceType),i.userId!==void 0&&i.userId!==""&&e.uint32(66).string(i.userId),i.domain!==void 0&&i.domain!==""&&e.uint32(74).string(i.domain),i.events!==void 0&&i.events.length!==0)for(let t of i.events)F.encode(t,e.uint32(82).fork()).join();return i.browser!==void 0&&i.browser!==""&&e.uint32(90).string(i.browser),i.deviceManufacturer!==void 0&&i.deviceManufacturer!==""&&e.uint32(98).string(i.deviceManufacturer),i.deviceModel!==void 0&&i.deviceModel!==""&&e.uint32(106).string(i.deviceModel),i.city!==void 0&&i.city!==""&&e.uint32(114).string(i.city),i.postalCode!==void 0&&i.postalCode!==""&&e.uint32(122).string(i.postalCode),e},decode(i,e){let t=i instanceof B?i:new B(i),n=e===void 0?t.len:t.pos+e,r=we();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==10)break;r.propertyId=t.string();continue}case 2:{if(s!==18)break;r.pageviewId=t.string();continue}case 3:{if(s!==26)break;r.sessionId=t.string();continue}case 4:{if(s!==34)break;r.pageUrl=t.string();continue}case 5:{if(s!==42)break;r.country=t.string();continue}case 6:{if(s!==50)break;r.region=t.string();continue}case 7:{if(s!==58)break;r.deviceType=t.string();continue}case 8:{if(s!==66)break;r.userId=t.string();continue}case 9:{if(s!==74)break;r.domain=t.string();continue}case 10:{if(s!==82)break;let o=F.decode(t,t.uint32());o!==void 0&&r.events.push(o);continue}case 11:{if(s!==90)break;r.browser=t.string();continue}case 12:{if(s!==98)break;r.deviceManufacturer=t.string();continue}case 13:{if(s!==106)break;r.deviceModel=t.string();continue}case 14:{if(s!==114)break;r.city=t.string();continue}case 15:{if(s!==122)break;r.postalCode=t.string();continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return q.fromPartial(i??{})},fromPartial(i){let e=we();return e.propertyId=i.propertyId??"",e.pageviewId=i.pageviewId??"",e.sessionId=i.sessionId??"",e.pageUrl=i.pageUrl??"",e.country=i.country??"",e.region=i.region??"",e.deviceType=i.deviceType??"",e.userId=i.userId??"",e.domain=i.domain??"",e.events=i.events?.map(t=>F.fromPartial(t))||[],e.browser=i.browser??"",e.deviceManufacturer=i.deviceManufacturer??"",e.deviceModel=i.deviceModel??"",e.city=i.city??"",e.postalCode=i.postalCode??"",e}};F={encode(i,e=new O){if(i.timestampMs!==void 0&&i.timestampMs!==0&&e.uint32(9).double(i.timestampMs),i.type!==void 0&&i.type!==0&&e.uint32(16).int32(i.type),i.eventName!==void 0&&i.eventName!==""&&e.uint32(26).string(i.eventName),i.auctionId!==void 0&&i.auctionId!==""&&e.uint32(34).string(i.auctionId),i.transactionId!==void 0&&i.transactionId!==""&&e.uint32(42).string(i.transactionId),i.adUnitCode!==void 0&&i.adUnitCode!==""&&e.uint32(50).string(i.adUnitCode),i.bid!==void 0&&W.encode(i.bid,e.uint32(58).fork()).join(),i.namespace!==void 0&&i.namespace!==""&&e.uint32(66).string(i.namespace),i.eventId!==void 0&&i.eventId!==""&&e.uint32(74).string(i.eventId),globalThis.Object.entries(i.metadata||{}).forEach(([t,n])=>{re.encode({key:t,value:n},e.uint32(82).fork()).join()}),i.viewableDurationMs!==void 0&&e.uint32(89).double(i.viewableDurationMs),i.bidderOutcomes!==void 0&&i.bidderOutcomes.length!==0)for(let t of i.bidderOutcomes)$.encode(t,e.uint32(98).fork()).join();return e},decode(i,e){let t=i instanceof B?i:new B(i),n=e===void 0?t.len:t.pos+e,r=Re();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==9)break;r.timestampMs=t.double();continue}case 2:{if(s!==16)break;r.type=t.int32();continue}case 3:{if(s!==26)break;r.eventName=t.string();continue}case 4:{if(s!==34)break;r.auctionId=t.string();continue}case 5:{if(s!==42)break;r.transactionId=t.string();continue}case 6:{if(s!==50)break;r.adUnitCode=t.string();continue}case 7:{if(s!==58)break;r.bid=W.decode(t,t.uint32());continue}case 8:{if(s!==66)break;r.namespace=t.string();continue}case 9:{if(s!==74)break;r.eventId=t.string();continue}case 10:{if(s!==82)break;let o=re.decode(t,t.uint32());o.value!==void 0&&(r.metadata[o.key]=o.value);continue}case 11:{if(s!==89)break;r.viewableDurationMs=t.double();continue}case 12:{if(s!==98)break;let o=$.decode(t,t.uint32());o!==void 0&&r.bidderOutcomes.push(o);continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return F.fromPartial(i??{})},fromPartial(i){let e=Re();return e.timestampMs=i.timestampMs??0,e.type=i.type??0,e.eventName=i.eventName??"",e.auctionId=i.auctionId??"",e.transactionId=i.transactionId??"",e.adUnitCode=i.adUnitCode??"",e.bid=i.bid!==void 0&&i.bid!==null?W.fromPartial(i.bid):void 0,e.namespace=i.namespace??"",e.eventId=i.eventId??"",e.metadata=globalThis.Object.entries(i.metadata??{}).reduce((t,[n,r])=>(r!==void 0&&(t[n]=globalThis.String(r)),t),{}),e.viewableDurationMs=i.viewableDurationMs??void 0,e.bidderOutcomes=i.bidderOutcomes?.map(t=>$.fromPartial(t))||[],e}};re={encode(i,e=new O){return i.key!==""&&e.uint32(10).string(i.key),i.value!==""&&e.uint32(18).string(i.value),e},decode(i,e){let t=i instanceof B?i:new B(i),n=e===void 0?t.len:t.pos+e,r=Be();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==10)break;r.key=t.string();continue}case 2:{if(s!==18)break;r.value=t.string();continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return re.fromPartial(i??{})},fromPartial(i){let e=Be();return e.key=i.key??"",e.value=i.value??"",e}};$={encode(i,e=new O){return i.bidder!==void 0&&i.bidder!==""&&e.uint32(10).string(i.bidder),i.adUnitCode!==void 0&&i.adUnitCode!==""&&e.uint32(18).string(i.adUnitCode),i.mediaType!==void 0&&i.mediaType!==""&&e.uint32(26).string(i.mediaType),i.outcome!==void 0&&i.outcome!==0&&e.uint32(32).int32(i.outcome),i.latencyMs!==void 0&&i.latencyMs!==0&&e.uint32(41).double(i.latencyMs),e},decode(i,e){let t=i instanceof B?i:new B(i),n=e===void 0?t.len:t.pos+e,r=Ae();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==10)break;r.bidder=t.string();continue}case 2:{if(s!==18)break;r.adUnitCode=t.string();continue}case 3:{if(s!==26)break;r.mediaType=t.string();continue}case 4:{if(s!==32)break;r.outcome=t.int32();continue}case 5:{if(s!==41)break;r.latencyMs=t.double();continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return $.fromPartial(i??{})},fromPartial(i){let e=Ae();return e.bidder=i.bidder??"",e.adUnitCode=i.adUnitCode??"",e.mediaType=i.mediaType??"",e.outcome=i.outcome??0,e.latencyMs=i.latencyMs??0,e}};W={encode(i,e=new O){return i.bidder!==void 0&&i.bidder!==""&&e.uint32(10).string(i.bidder),i.cpm!==void 0&&i.cpm!==0&&e.uint32(17).double(i.cpm),i.currency!==void 0&&i.currency!==""&&e.uint32(26).string(i.currency),i.width!==void 0&&i.width!==0&&e.uint32(32).int32(i.width),i.height!==void 0&&i.height!==0&&e.uint32(40).int32(i.height),i.dealId!==void 0&&i.dealId!==""&&e.uint32(50).string(i.dealId),i.mediaType!==void 0&&i.mediaType!==""&&e.uint32(58).string(i.mediaType),i.latencyMs!==void 0&&i.latencyMs!==0&&e.uint32(65).double(i.latencyMs),i.advertiserDomain!==void 0&&i.advertiserDomain!==""&&e.uint32(74).string(i.advertiserDomain),i.creativeId!==void 0&&i.creativeId!==""&&e.uint32(82).string(i.creativeId),e},decode(i,e){let t=i instanceof B?i:new B(i),n=e===void 0?t.len:t.pos+e,r=Se();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==10)break;r.bidder=t.string();continue}case 2:{if(s!==17)break;r.cpm=t.double();continue}case 3:{if(s!==26)break;r.currency=t.string();continue}case 4:{if(s!==32)break;r.width=t.int32();continue}case 5:{if(s!==40)break;r.height=t.int32();continue}case 6:{if(s!==50)break;r.dealId=t.string();continue}case 7:{if(s!==58)break;r.mediaType=t.string();continue}case 8:{if(s!==65)break;r.latencyMs=t.double();continue}case 9:{if(s!==74)break;r.advertiserDomain=t.string();continue}case 10:{if(s!==82)break;r.creativeId=t.string();continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return W.fromPartial(i??{})},fromPartial(i){let e=Se();return e.bidder=i.bidder??"",e.cpm=i.cpm??0,e.currency=i.currency??"",e.width=i.width??0,e.height=i.height??0,e.dealId=i.dealId??"",e.mediaType=i.mediaType??"",e.latencyMs=i.latencyMs??0,e.advertiserDomain=i.advertiserDomain??"",e.creativeId=i.creativeId??"",e}}});function U(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let e=Math.random()*16|0;return(i==="x"?e:e&3|8).toString(16)})}function dt(i){let e="";for(let n=0;n<i.length;n+=8192)e+=String.fromCharCode(...i.subarray(n,n+8192));return btoa(e)}function at(i){let e=atob(i),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}function ct(i){if(!i)return!1;let e;try{e=new URL(i)}catch{return!1}return e.username||e.password?!1:e.protocol==="https:"?!0:e.protocol==="http:"?e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname==="[::1]":!1}function ut(i){let e={},t=0;for(let n of Object.keys(i)){if(t>=Ze)break;let r=i[n];if(r==null)continue;let s=String(r);e[n]=s.length>De?`${s.slice(0,De)}...[truncated]`:s,t++}return e}function lt(i){let e=i.slice(G.length).split("_");return e.length===2&&/^\d+$/.test(e[0])}function ft(i,e){if(!i||!e)return!1;try{return new URL(i).origin===new URL(e).origin}catch{return!1}}function ke(){let i=Date.now();P=i;try{typeof localStorage<"u"&&localStorage.setItem(z,i.toString())}catch{}}function ht(){let i=Date.now();try{if(typeof localStorage<"u"){let e=localStorage.getItem(_e),t=localStorage.getItem(z),n=t&&parseInt(t,10)||0;if(e&&n&&i-n<=Ue)return localStorage.setItem(z,i.toString()),e;let r=U();return localStorage.setItem(_e,r),localStorage.setItem(z,i.toString()),r}}catch{}return H&&P&&i-P<=Ue?(P=i,H):(H=U(),P=i,H)}function l(i){return String(i??"").replace(/%/g,"%25").replace(/:/g,"%3A")}function pt(i,e){switch(i){case"auctionInit":return`auctionInit:${l(e?.auctionId)}`;case"auctionEnd":return`auctionEnd:${l(e?.auctionId)}`;case"bidRequested":{let t=Array.isArray(e?.bids)?e.bids.map(n=>l(n?.bidId||n?.transactionId||n?.adUnitCode)).join(","):"";return`bidRequested:${l(e?.auctionId)}:${l(e?.bidderCode||e?.bidder)}:${t}`}case"bidResponse":{let t=e||{},n=t.creativeId||t.adId||t.requestId||t.bidId||"",r=t.originalCpm??t.cpm??"";return`bidResponse:${l(t.auctionId)}:${l(t.adUnitCode)}:${l(t.bidderCode||t.bidder)}:${l(n)}:${l(r)}`}case"bidTimeout":return"bidTimeout:"+(Array.isArray(e)?e:e?[e]:[]).map(n=>`${l(n?.auctionId)}:${l(n?.bidderCode||n?.bidder)}:${l(n?.bidId||n?.transactionId||n?.adUnitCode)}`).join(",");case"bidWon":{let t=e||{},n=t.creativeId||t.adId||t.requestId||t.bidId||"",r=t.originalCpm??t.cpm??"";return`bidWon:${l(t.auctionId)}:${l(t.adUnitCode)}:${l(t.bidderCode||t.bidder)}:${l(n)}:${l(r)}`}case"noBid":return`noBid:${l(e?.auctionId)}:${l(e?.adUnitCode)}:${l(e?.bidderCode||e?.bidder)}:${l(e?.bidId||e?.transactionId)}`;case"adRenderFailed":{let t=e?.bid||{};return`adRenderFailed:${l(t.auctionId||e?.auctionId)}:${l(t.adUnitCode||e?.adUnitCode)}:${l(t.bidderCode||t.bidder||e?.bidderCode||e?.bidder)}:${l(e?.reason)}:${l(e?.message)}`}case"adRenderSucceeded":{let t=e?.bid||e||{},n=t.creativeId||t.adId||e?.adId||"",r=t.originalCpm??t.cpm??"";return`adRenderSucceeded:${l(t.auctionId||e?.auctionId)}:${l(t.adUnitCode||e?.adUnitCode)}:${l(t.bidderCode||t.bidder)}:${l(n)}:${l(r)}`}case"setTargeting":return`setTargeting:${Object.keys(e||{}).sort().map(l).join(",")}`;case"auctionDebug":return`auctionDebug:${l(e?.type)}:${l(String(e?.arguments?.[0]??"").slice(0,50))}`;default:return""}}function M(i){if(Number.isFinite(i?.width)&&Number.isFinite(i?.height))return{width:i.width,height:i.height};if(typeof i?.size=="string"){let e=i.size.match(/^(\d+)x(\d+)$/);if(e)return{width:Number(e[1]),height:Number(e[2])}}return{width:Number.isFinite(i?.width)?i.width:0,height:Number.isFinite(i?.height)?i.height:0}}function k(i,e=!0){if(!i)return null;if(Array.isArray(i)){let t=i.find(n=>n?.provider==="bidkernel")??(e?i.find(n=>n&&typeof n=="object"&&n.provider===void 0):void 0);return t?k(t,e):null}if(typeof i=="object"){if(i.options&&typeof i.options=="object")return i.options;if(i.config&&typeof i.config=="object")return i.config;if(i.propertyId||i.endpoint)return i}return null}function yt(i){if(!i)return null;if(i._bidkernelAnalyticsConfig){let e=k(i._bidkernelAnalyticsConfig);if(e)return e}if(i.bidkernelPrebidAnalytics){let e=i.bidkernelPrebidAnalytics;if(e.options){let t=k(e.options);if(t)return t}if(e.config){let t=k(e.config);if(t)return t}if(e.propertyId)return k(e)}return null}function ae(i="pbjs",e){let t=typeof window<"u"?window:{};t[i]=t[i]||{};let n=t[i],r=o=>{let d=t._bidkernelPrebidAnalytics,a=d?.getEndpoint?.()||"",c={pbjsGlobalName:i,...e,...o};if(a&&!ft(c.endpoint||"",a)&&(console.warn(`[bidkernel] Ignoring analytics endpoint change to ${c.endpoint||"(empty)"}: this page is pinned to ${a}. Reload to change the ingest endpoint.`),c.endpoint=a),d)try{d.disable()}catch(y){console.warn("[bidkernel] Failed to disable previous analytics instance:",y)}let f=new de(c);return f.enable(),t._bidkernelPrebidAnalytics=f,f},s=()=>{try{n.adapterManager&&typeof n.adapterManager.registerAnalyticsAdapter=="function"&&n.adapterManager.registerAnalyticsAdapter({adapter:{enableAnalytics:d=>{let a=k(d,!Array.isArray(d));a&&r(a)},disableAnalytics:()=>{t._bidkernelPrebidAnalytics&&t._bidkernelPrebidAnalytics.disable()}},code:"bidkernel"});let o=yt(t);o&&(o.propertyId||e?.propertyId)&&r(o)}catch(o){console.warn("[bidkernel] Failed to register standard Prebid analytics adapter:",o)}};n.adapterManager&&typeof n.adapterManager.registerAnalyticsAdapter=="function"?s():(n.que=n.que||[],n.que.push(s))}var Xe,Ce,Ye,K,je,Qe,se,De,Ze,Oe,G,Je,et,tt,it,nt,Me,rt,st,ot,_e,z,Ue,H,P,oe,de,Pe=x(()=>{"use strict";xe();Xe=20,Ce=1e4,Ye=50,K=200,je=300*1e3,Qe=10,se=32*1024,De=1024,Ze=16,Oe="text/plain",G="_bidkernel_pending_",Je=20,et=7200*1e3,tt=1e4,it={auctionStart:b.AUCTION_START,auctionEnd:b.AUCTION_END,bidResponse:b.BID_RESPONSE,bidWin:b.BID_WIN,adRenderFailed:b.AD_RENDER_FAILED,click:b.CLICK,impression:b.IMPRESSION,refresh:b.REFRESH,timeInView:b.TIME_IN_VIEW,viewable:b.VIEWABLE},nt=new Set([b.IMPRESSION,b.BID_WIN,b.CLICK]),Me=1800*1e3,rt=200,st=1e3,ot=50,_e="_bidkernel_session",z="_bidkernel_session_ts",Ue=1800*1e3,H=null,P=0;oe=class{seenObjects=new WeakMap;seenKeys=new Set;isDuplicate(e,t){if(!t)return!1;if(typeof t=="object"){let r=this.seenObjects.get(t);if(r){if(r.has(e))return!0;r.add(e)}else this.seenObjects.set(t,new Set([e]))}let n=pt(e,t);if(n){if(this.seenKeys.has(n))return!0;if(this.seenKeys.size>=1e3){let r=this.seenKeys.values().next().value;r!==void 0&&this.seenKeys.delete(r)}this.seenKeys.add(n)}return!1}};de=class i{static activeInstances=new Set;config;queue=[];errorCount=0;flushTimer=null;boundFlushBeacon;boundVisibilityChange;isEnabled=!1;boundPbjsHandlers=[];pageUrl="";deduper=new oe;consecutiveSendFailures=0;nextSendAllowedAt=0;replayedEventCount=0;immediateFlushScheduled=!1;persistedBatchKeys=[];persistedCleanupTimer=null;intersectionObserver=null;slotViewabilityRecords=new Map;elementToSlotId=new Map;slotRefreshIndices=new Map;slotLastAuctionIds=new Map;pendingThresholdListeners=new Map;slotEmittedImpressionKeys=new Set;cachedWinningBids=new Map;videoDetachCleanups=new Set;auctionBidderOutcomes=new Map;constructor(e){let t=e.endpoint||"",n=!t||ct(t)?t:"";this.config={endpoint:n,propertyId:e.propertyId||"",pageviewId:e.pageviewId||U(),sessionId:e.sessionId||ht(),userId:e.userId||"",deviceType:e.deviceType||"desktop",country:e.country||"",region:e.region||"",auctionEnabled:e.auctionEnabled??!0,warningsEnabled:e.warningsEnabled??!0,errorsEnabled:e.errorsEnabled??!0,viewabilityEnabled:e.viewabilityEnabled??!0,logLevel:e.logLevel||"INFO",pbjsGlobalName:e.pbjsGlobalName||"pbjs",attachPbjsListeners:e.attachPbjsListeners??!0},t&&!n&&this.log("ERROR",`Rejected untrusted analytics endpoint ${t}: must be an absolute https:// URL without embedded credentials. Events will not be transmitted.`),this.boundFlushBeacon=()=>{this.flushAllSlotsTimeInView(),this.flushBeacon()},this.boundVisibilityChange=()=>this.handleVisibilityChange()}enable(){if(!this.isEnabled){if(this.isEnabled=!0,i.activeInstances.add(this),this.config.endpoint||this.log("WARN","Endpoint is empty. Analytics events will not be transmitted."),this.config.viewabilityEnabled&&typeof IntersectionObserver<"u"){this.intersectionObserver=new IntersectionObserver(this.handleIntersection.bind(this),{threshold:[.5]});for(let e of this.slotViewabilityRecords.values())e.element&&this.intersectionObserver.observe(e.element)}if(this.config.attachPbjsListeners){let t=(typeof window<"u"?window:{})[this.config.pbjsGlobalName]||{};if(typeof t.onEvent=="function"){this.log("DEBUG","Attaching event listeners to pbjs");let n=[["auctionInit",this.handleAuctionInit.bind(this)],["auctionEnd",this.handleAuctionEnd.bind(this)],["bidRequested",this.handleBidRequested.bind(this)],["bidResponse",this.handleBidResponse.bind(this)],["bidTimeout",this.handleBidTimeout.bind(this)],["bidWon",this.handleBidWon.bind(this)],["noBid",this.handleNoBid.bind(this)],["adRenderFailed",this.handleAdRenderFailed.bind(this)],["adRenderSucceeded",this.handleAdRenderSucceeded.bind(this)]];for(let[r,s]of n)t.onEvent(r,s),this.boundPbjsHandlers.push({event:r,handler:s})}else this.log("WARN","pbjs.onEvent is not defined. Prebid analytics will not function.");if(typeof t.getEvents=="function")try{let n=t.getEvents();if(Array.isArray(n)){let r=n.slice(this.replayedEventCount);if(this.replayedEventCount=n.length,r.length>0){this.log("DEBUG",`Replaying ${r.length} historical events from pbjs.getEvents()`);let s={auctionInit:this.handleAuctionInit.bind(this),auctionEnd:this.handleAuctionEnd.bind(this),bidRequested:this.handleBidRequested.bind(this),bidResponse:this.handleBidResponse.bind(this),bidTimeout:this.handleBidTimeout.bind(this),bidWon:this.handleBidWon.bind(this),noBid:this.handleNoBid.bind(this),adRenderFailed:this.handleAdRenderFailed.bind(this),adRenderSucceeded:this.handleAdRenderSucceeded.bind(this)};for(let o of r){if(!o)continue;let d=o.eventType||o.event||o.name,a=o.args!==void 0?o.args:o.data!==void 0?o.data:o,c=s[d];c&&c(a)}}}}catch(n){this.log("WARN","Failed to replay historical events from pbjs.getEvents()",n)}}if(typeof window<"u"){if(!this.pageUrl)try{let e=new URL(window.location.href);this.pageUrl=e.origin+e.pathname}catch{this.pageUrl=window.location.href}window.addEventListener("pagehide",this.boundFlushBeacon),typeof document<"u"&&document.addEventListener("visibilitychange",this.boundVisibilityChange),this.flushTimer=setInterval(()=>this.flush(),Ce),this.resendPersistedBatches()}}}disable(){if(this.isEnabled){this.flushAllSlotsTimeInView(),this.isEnabled=!1,i.activeInstances.delete(this);for(let e of this.slotViewabilityRecords.values()){e.dwellTimer&&(clearTimeout(e.dwellTimer),e.dwellTimer=null,e.dwellStartedAt=null);for(let t of e.thresholdListeners)t.timer&&(clearTimeout(t.timer),t.timer=null)}this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=null),this.slotViewabilityRecords.clear(),this.elementToSlotId.clear();for(let e of this.videoDetachCleanups)try{e()}catch{}if(this.videoDetachCleanups.clear(),this.cachedWinningBids.clear(),this.slotEmittedImpressionKeys.clear(),this.slotLastAuctionIds.clear(),this.auctionBidderOutcomes.clear(),this.flushTimer&&(clearInterval(this.flushTimer),this.flushTimer=null),this.persistedCleanupTimer&&(clearTimeout(this.persistedCleanupTimer),this.persistedCleanupTimer=null),typeof window<"u"&&(window.removeEventListener("pagehide",this.boundFlushBeacon),typeof document<"u"&&document.removeEventListener("visibilitychange",this.boundVisibilityChange)),this.boundPbjsHandlers.length>0){let t=(typeof window<"u"?window:{})[this.config.pbjsGlobalName]||{};if(typeof t.offEvent=="function")for(let{event:n,handler:r}of this.boundPbjsHandlers)t.offEvent(n,r);this.boundPbjsHandlers=[]}this.flush()}}handleVisibilityChange(){if(!(typeof document>"u")){if(document.visibilityState==="hidden"){let e=typeof performance<"u"&&performance.now?performance.now():Date.now();for(let t of this.slotViewabilityRecords.values()){t.inView&&t.lastEnteredViewAt!==null&&(t.accumulatedTimeInViewMs+=Math.max(0,e-t.lastEnteredViewAt),t.lastEnteredViewAt=null,this.checkThresholdListeners(t)),t.dwellTimer&&(clearTimeout(t.dwellTimer),t.dwellTimer=null,t.dwellStartedAt=null);for(let r of t.thresholdListeners)r.timer&&(clearTimeout(r.timer),r.timer=null);let n=Math.round(t.accumulatedTimeInViewMs);n>0&&this.enqueue(b.TIME_IN_VIEW,"timeInView",{auctionId:t.auctionId,transactionId:t.transactionId,adUnitCode:t.adUnitCode,viewableDurationMs:n,bid:t.bidPayload,metadata:{...t.metadata,refresh_index:String(t.refreshIndex)}})}this.flushBeacon()}else if(document.visibilityState==="visible"){let e=typeof performance<"u"&&performance.now?performance.now():Date.now();for(let t of this.slotViewabilityRecords.values())if(t.inView){if(t.lastEnteredViewAt=e,!t.viewableFired&&t.dwellTimer===null){let n=t.mediaType==="video"?2e3:1e3;t.dwellStartedAt=e,t.dwellTimer=setTimeout(()=>{this.handleDwellComplete(t)},n)}this.scheduleThresholdTimers(t)}}}}handleIntersection(e){for(let t of e){let n=this.elementToSlotId.get(t.target);if(!n){for(let a of i.activeInstances)if(a!==this&&a.elementToSlotId.has(t.target)){a.handleIntersection([t]);break}continue}let r=this.slotViewabilityRecords.get(n);if(!r)continue;let s=t.isIntersecting&&(t.intersectionRatio===void 0||t.intersectionRatio>=.5),o=typeof document>"u"||document.visibilityState==="visible",d=typeof performance<"u"&&performance.now?performance.now():Date.now();if(s){if(!r.inView&&(r.inView=!0,o)){if(r.lastEnteredViewAt=d,!r.viewableFired&&r.dwellTimer===null){let a=r.mediaType==="video"?2e3:1e3;r.dwellStartedAt=d,r.dwellTimer=setTimeout(()=>{this.handleDwellComplete(r)},a)}this.scheduleThresholdTimers(r)}}else{r.inView&&(r.lastEnteredViewAt!==null&&(r.accumulatedTimeInViewMs+=Math.max(0,d-r.lastEnteredViewAt),r.lastEnteredViewAt=null),r.inView=!1,this.checkThresholdListeners(r)),r.dwellTimer!==null&&(clearTimeout(r.dwellTimer),r.dwellTimer=null,r.dwellStartedAt=null);for(let a of r.thresholdListeners)a.timer&&(clearTimeout(a.timer),a.timer=null)}}}handleDwellComplete(e){e.dwellTimer=null,e.dwellStartedAt=null,e.inView&&(typeof document<"u"&&document.visibilityState==="hidden"||e.viewableFired||(e.viewableFired=!0,this.enqueue(b.VIEWABLE,"viewable",{auctionId:e.auctionId,transactionId:e.transactionId,adUnitCode:e.adUnitCode,bid:e.bidPayload,metadata:{...e.metadata,refresh_index:String(e.refreshIndex)}})))}scheduleThresholdTimers(e){if(!e.inView||typeof document<"u"&&document.visibilityState==="hidden")return;let t=this.getCurrentTimeInView(e);for(let n of e.thresholdListeners)if(!n.fired)if(t>=n.thresholdMs){n.fired=!0,n.timer&&(clearTimeout(n.timer),n.timer=null);try{n.callback(e.slotId,t)}catch(r){this.log("ERROR","Error in threshold listener callback",r)}}else{n.timer&&clearTimeout(n.timer);let r=n.thresholdMs-t;n.timer=setTimeout(()=>{if(n.timer=null,!n.fired&&e.inView&&(typeof document>"u"||document.visibilityState==="visible")){let s=this.getCurrentTimeInView(e);if(s>=n.thresholdMs){n.fired=!0;try{n.callback(e.slotId,s)}catch(o){this.log("ERROR","Error in threshold listener callback",o)}}}},r)}}checkThresholdListeners(e){let t=this.getCurrentTimeInView(e);for(let n of e.thresholdListeners)if(!n.fired&&t>=n.thresholdMs){n.fired=!0,n.timer&&(clearTimeout(n.timer),n.timer=null);try{n.callback(e.slotId,t)}catch(r){this.log("ERROR","Error in threshold listener callback",r)}}}getCurrentTimeInView(e){let t=e.accumulatedTimeInViewMs;if(e.inView&&e.lastEnteredViewAt!==null){let n=typeof performance<"u"&&performance.now?performance.now():Date.now();t+=Math.max(0,n-e.lastEnteredViewAt)}return t}flushSlotTimeInView(e){let t=this.slotViewabilityRecords.get(e);if(!t)return;if(t.inView&&t.lastEnteredViewAt!==null){let r=typeof performance<"u"&&performance.now?performance.now():Date.now();t.accumulatedTimeInViewMs+=Math.max(0,r-t.lastEnteredViewAt),t.lastEnteredViewAt=null}let n=Math.round(t.accumulatedTimeInViewMs);n>0&&this.enqueue(b.TIME_IN_VIEW,"timeInView",{auctionId:t.auctionId,transactionId:t.transactionId,adUnitCode:t.adUnitCode,viewableDurationMs:n,bid:t.bidPayload,metadata:{...t.metadata,refresh_index:String(t.refreshIndex)}}),t.accumulatedTimeInViewMs=0}flushAllSlotsTimeInView(){for(let e of Array.from(this.slotViewabilityRecords.keys()))this.flushSlotTimeInView(e)}observeSlot(e,t,n){if(!this.config.viewabilityEnabled)return;let r=null;if(typeof e=="string"){if(typeof document<"u"){try{r=document.querySelector(e)||document.getElementById(e)}catch{r=document.getElementById(e)}r||(r=document.getElementById(e))}}else r=e;let s=t||n?.adUnitCode||(r?r.id:"")||U(),o=this.slotViewabilityRecords.get(s);if(o){if(n?.refreshIndex===void 0||n.refreshIndex>o.refreshIndex){this.flushSlotTimeInView(s);let a=n?.refreshIndex!==void 0?n.refreshIndex:(this.slotRefreshIndices.get(s)??o.refreshIndex)+1;this.slotRefreshIndices.set(s,a),n?.emitRefreshEvent!==!1&&this.enqueue(b.REFRESH,"refresh",{auctionId:n?.auctionId||o.auctionId,transactionId:n?.transactionId||o.transactionId,adUnitCode:s,bid:n?.bid??o.bidPayload,metadata:{...n?.metadata,refresh_index:String(a)}}),o.dwellTimer&&(clearTimeout(o.dwellTimer),o.dwellTimer=null,o.dwellStartedAt=null);for(let f of o.thresholdListeners)f.fired=!1,f.timer&&(clearTimeout(f.timer),f.timer=null);o.viewableFired=!1,o.accumulatedTimeInViewMs=0;let c=typeof performance<"u"&&performance.now?performance.now():Date.now();if(o.lastEnteredViewAt=o.inView?c:null,o.refreshIndex=a,o.auctionId=n?.auctionId||o.auctionId,o.transactionId=n?.transactionId||o.transactionId,o.mediaType=n?.mediaType||o.mediaType||"banner",o.bidPayload=n?.bid!==void 0?n.bid:o.bidPayload,o.metadata=n?.metadata??o.metadata,o.inView&&(typeof document>"u"||document.visibilityState==="visible")){let f=o.mediaType==="video"?2e3:1e3;o.dwellStartedAt=c,o.dwellTimer=setTimeout(()=>{this.handleDwellComplete(o)},f),this.scheduleThresholdTimers(o)}}else o.auctionId=n?.auctionId||o.auctionId,o.transactionId=n?.transactionId||o.transactionId,o.mediaType=n?.mediaType||o.mediaType,n?.bid!==void 0&&(o.bidPayload=n.bid),n?.metadata!==void 0&&(o.metadata=n.metadata);n?.auctionId&&this.slotLastAuctionIds.set(s,n.auctionId),r&&(o.element&&o.element!==r&&this.intersectionObserver&&(this.intersectionObserver.unobserve(o.element),this.elementToSlotId.delete(o.element)),o.element=r,this.elementToSlotId.set(r,s),this.intersectionObserver?.observe(r))}else{let d=n?.refreshIndex??this.slotRefreshIndices.get(s)??0;this.slotRefreshIndices.set(s,d),n?.auctionId&&this.slotLastAuctionIds.set(s,n.auctionId);let a=this.pendingThresholdListeners.get(s)||new Set;this.pendingThresholdListeners.delete(s);let c={slotId:s,element:r,adUnitCode:n?.adUnitCode||s,auctionId:n?.auctionId||"",transactionId:n?.transactionId||"",mediaType:n?.mediaType||"banner",bidPayload:n?.bid,metadata:n?.metadata,refreshIndex:d,inView:!1,lastEnteredViewAt:null,accumulatedTimeInViewMs:0,viewableFired:!1,dwellTimer:null,dwellStartedAt:null,thresholdListeners:a};this.slotViewabilityRecords.set(s,c),r&&(this.elementToSlotId.set(r,s),this.intersectionObserver?.observe(r))}}unobserveSlot(e){let t=this.slotViewabilityRecords.get(e);if(t){this.flushSlotTimeInView(e),t.dwellTimer&&(clearTimeout(t.dwellTimer),t.dwellTimer=null,t.dwellStartedAt=null);for(let n of t.thresholdListeners)n.timer&&(clearTimeout(n.timer),n.timer=null);t.thresholdListeners=new Set,t.element&&this.intersectionObserver&&(this.intersectionObserver.unobserve(t.element),this.elementToSlotId.delete(t.element),t.element=null),t.inView=!1,t.lastEnteredViewAt=null}}destroySlot(e){this.unobserveSlot(e),this.slotViewabilityRecords.delete(e),this.slotRefreshIndices.delete(e),this.slotLastAuctionIds.delete(e),this.pendingThresholdListeners.delete(e);let t=`${l(e)}:`;for(let r of Array.from(this.slotEmittedImpressionKeys))(r===e||r.startsWith(t))&&this.slotEmittedImpressionKeys.delete(r);let n=this.cachedWinningBids.get(e);n&&this.deleteCachedBidEntry(n)}getCachedBid(e){let t=this.cachedWinningBids.get(e);if(t){if(Date.now()-t.timestamp>Me){this.deleteCachedBidEntry(t);return}return t}}deleteCachedBidEntry(e){for(let[t,n]of Array.from(this.cachedWinningBids))n===e&&this.cachedWinningBids.delete(t)}pruneCachedWinningBids(){let e=Date.now();for(let[t,n]of Array.from(this.cachedWinningBids))e-n.timestamp>Me&&this.cachedWinningBids.delete(t);for(;this.cachedWinningBids.size>rt;){let t=this.cachedWinningBids.keys().next();if(t.done)break;this.cachedWinningBids.delete(t.value)}}addImpressionKey(e){if(!this.slotEmittedImpressionKeys.has(e)){for(;this.slotEmittedImpressionKeys.size>=st;){let t=this.slotEmittedImpressionKeys.values().next();if(t.done)break;this.slotEmittedImpressionKeys.delete(t.value)}this.slotEmittedImpressionKeys.add(e)}}getOrCreateAuctionOutcomes(e){let t=this.auctionBidderOutcomes.get(e);for(t||(t=new Map,this.auctionBidderOutcomes.set(e,t));this.auctionBidderOutcomes.size>ot;){let n=this.auctionBidderOutcomes.keys().next();if(n.done||n.value===e)break;this.auctionBidderOutcomes.delete(n.value)}return t}hasImpressionEmitted(e,t,n,r){let s=t??this.slotRefreshIndices.get(e)??0,o=`${l(e)}:${s}`;return r?n?this.slotEmittedImpressionKeys.has(`${o}:auc:${l(n)}:${l(r)}`)||this.slotEmittedImpressionKeys.has(`${o}:${l(r)}`):this.slotEmittedImpressionKeys.has(`${o}:${l(r)}`):n?this.slotEmittedImpressionKeys.has(`${o}:auc:${l(n)}`):this.slotEmittedImpressionKeys.has(o)}markImpressionEmitted(e,t,n,r){let s=`${l(e)}:${t}`;this.addImpressionKey(s),r&&this.addImpressionKey(`${s}:${l(r)}`),n&&(this.addImpressionKey(`${s}:auc:${l(n)}`),r&&this.addImpressionKey(`${s}:auc:${l(n)}:${l(r)}`))}recordImpression(e,t){if(!this.isEnabled)return!1;let n=e||t?.adUnitCode||"",r=t?.adUnitCode||n,s=(t?.auctionId&&n?this.getCachedBid(`${t.auctionId}:${n}`):void 0)||(t?.auctionId&&r?this.getCachedBid(`${t.auctionId}:${r}`):void 0)||(n?this.getCachedBid(n):void 0)||(r?this.getCachedBid(r):void 0),o=t?.bid||s?.rawBid||{},d=t?.auctionId||o.auctionId||s?.auctionId||"",a=t?.transactionId||o.transactionId||s?.transactionId||"",c=o.creativeId||s?.bidTrace?.creativeId||t?.bid?.creativeId||"",f=t?.mediaType||o.mediaType||s?.bidTrace?.mediaType||"banner",y=n||r,h=(n?this.slotViewabilityRecords.get(n):void 0)||(r?this.slotViewabilityRecords.get(r):void 0),m=y?this.slotLastAuctionIds.get(y)||(h?h.auctionId:void 0):void 0,S=!!(y&&d&&m&&m!==d&&t?.refreshIndex===void 0),R={bidder:o.bidderCode||o.bidder||s?.bidTrace?.bidder||"",cpm:Number.isFinite(o.originalCpm)?o.originalCpm:Number.isFinite(o.cpm)?o.cpm:s?.bidTrace?.cpm??0,currency:o.originalCurrency??o.currency??s?.bidTrace?.currency??"USD",...M(o).width?M(o):s?.bidTrace?{width:s.bidTrace.width,height:s.bidTrace.height}:M(o),dealId:o.dealId||s?.bidTrace?.dealId||"",mediaType:f,latencyMs:Number.isFinite(o.timeToRespond)?o.timeToRespond:s?.bidTrace?.latencyMs??0,advertiserDomain:o.meta?.advertiserDomains?.[0]||s?.bidTrace?.advertiserDomain||"",creativeId:o.creativeId||s?.bidTrace?.creativeId||""};if(S&&y){this.flushSlotTimeInView(y);let u=(this.slotRefreshIndices.get(y)??(h?h.refreshIndex:0))+1;this.slotRefreshIndices.set(y,u),this.slotLastAuctionIds.set(y,d),h&&(h.refreshIndex=u,h.auctionId=d,h.transactionId=a,h.bidPayload=R,h.viewableFired=!1,h.accumulatedTimeInViewMs=0),this.enqueue(b.REFRESH,"refresh",{auctionId:d,transactionId:a,adUnitCode:y,bid:R,metadata:{...t?.metadata,refresh_index:String(u)}})}else y&&(d&&this.slotLastAuctionIds.set(y,d),this.slotRefreshIndices.has(y)||this.slotRefreshIndices.set(y,0));let E=t?.refreshIndex??(n?this.slotRefreshIndices.get(n)??(r?this.slotRefreshIndices.get(r):void 0)??(h?h.refreshIndex:0):0);return n&&this.hasImpressionEmitted(n,E,d,c)||r&&r!==n&&this.hasImpressionEmitted(r,E,d,c)?(this.log("DEBUG",`Impression already emitted for slot ${n||r} in cycle ${E}`),!1):(n&&this.markImpressionEmitted(n,E,d,c),r&&r!==n&&this.markImpressionEmitted(r,E,d,c),this.enqueue(b.IMPRESSION,"impression",{auctionId:d,transactionId:a,adUnitCode:r,bid:R,metadata:{...t?.metadata,refresh_index:String(E)}}),h&&(!h.bidPayload&&R&&(h.bidPayload=R),!h.auctionId&&d&&(h.auctionId=d),!h.transactionId&&a&&(h.transactionId=a)),!0)}attachImaAdsManager(e,t){if(!e||typeof e.addEventListener!="function")return this.log("WARN","Invalid AdsManager passed to attachImaAdsManager"),()=>{};let n=t?.slotId||t?.adUnitCode||"video",r=t?.adUnitCode||n,s=t?.auctionId||"",o=t?.transactionId||"",d=()=>(s?this.getCachedBid(`${s}:${r}`):void 0)||(s&&n!==r?this.getCachedBid(`${s}:${n}`):void 0)||this.getCachedBid(r)||(n!==r?this.getCachedBid(n):void 0),a=I=>{this.log("DEBUG","IMA AdEvent.STARTED / IMPRESSION received",I);let u=typeof I?.getAd=="function"?I.getAd():I?.ad,T={};u&&(T.creativeId=(typeof u.getCreativeId=="function"?u.getCreativeId():u.creativeId)||"",T.adId=(typeof u.getAdId=="function"?u.getAdId():u.id)||"",T.title=(typeof u.getTitle=="function"?u.getTitle():u.title)||"",T.duration=typeof u.getDuration=="function"?u.getDuration():u.duration,T.advertiserName=typeof u.getAdvertiserName=="function"?u.getAdvertiserName():"");let w=d(),p={...w?.rawBid||t?.bid,mediaType:"video",creativeId:T.creativeId||w?.bidTrace?.creativeId||t?.bid?.creativeId||""};if(this.recordImpression(n,{adUnitCode:r,auctionId:s||w?.auctionId,transactionId:o||w?.transactionId,mediaType:"video",bid:p,metadata:{...t?.metadata,media_type:"video",...T.title?{ad_title:T.title}:{},...Number.isFinite(T.duration)?{ad_duration_s:String(T.duration)}:{}}})&&t?.onImpression)try{t.onImpression(n,{ad:u,bid:p})}catch(v){this.log("ERROR","Error in onImpression callback",v)}},c=I=>{if(this.log("DEBUG",`IMA AdEvent milestone: ${I}`),t?.onMilestone)try{t.onMilestone(I,n)}catch(u){this.log("ERROR","Error in onMilestone callback",u)}},f=I=>{this.log("DEBUG","IMA AdEvent.CLICK received",I);let u=d();this.enqueue(b.CLICK,"click",{auctionId:s||u?.auctionId,transactionId:o||u?.transactionId,adUnitCode:r,bid:u?.bidTrace||t?.bid,metadata:{...t?.metadata,media_type:"video"}})},y=I=>{this.log("WARN","IMA AdErrorEvent received",I);let u=typeof I?.getError=="function"?I.getError():I?.error||I,T=(u&&typeof u.getMessage=="function"?u.getMessage():u?.message)||String(u||"IMA ad error"),w=(u&&typeof u.getErrorCode=="function"?u.getErrorCode():u?.code)||"",p=d();if(this.enqueue(b.AD_RENDER_FAILED,"adRenderFailed",{auctionId:s||p?.auctionId,transactionId:o||p?.transactionId,adUnitCode:r,bid:p?.bidTrace||t?.bid,metadata:{...t?.metadata,reason:"ima_ad_error",message:T,...w?{ima_error_code:String(w)}:{}},error:typeof u=="object"?u:new Error(T)}),t?.onError)try{t.onError(u)}catch(g){this.log("ERROR","Error in onError callback",g)}},h=typeof window<"u"?window.google?.ima:void 0,m=h?.AdEvent?.Type||{},S=h?.AdErrorEvent?.Type||{},R=[{type:m.STARTED||"started",handler:a},{type:m.IMPRESSION||"impression",handler:a},{type:m.FIRST_QUARTILE||"firstQuartile",handler:()=>c("firstQuartile")},{type:m.MIDPOINT||"midpoint",handler:()=>c("midpoint")},{type:m.THIRD_QUARTILE||"thirdQuartile",handler:()=>c("thirdQuartile")},{type:m.COMPLETE||"complete",handler:()=>c("complete")},{type:m.CLICK||"click",handler:f},{type:S.AD_ERROR||"adError",handler:y}];for(let{type:I,handler:u}of R)try{e.addEventListener(I,u)}catch{}let E=()=>{for(let{type:I,handler:u}of R)try{e.removeEventListener(I,u)}catch{}this.videoDetachCleanups.delete(E)};return this.videoDetachCleanups.add(E),E}attachVideoPlayer(e,t){if(!e)return this.log("WARN","attachVideoPlayer called with null/undefined target"),()=>{};let n=null;if(typeof e=="string"){if(typeof document<"u")try{n=document.querySelector(e)||document.getElementById(e)}catch{n=document.getElementById(e)}}else if(typeof HTMLElement<"u"&&e instanceof HTMLElement)n=e;else if(e&&typeof e=="object"&&e.nodeType===1)n=e;else{if(typeof e.addEventListener=="function"&&(typeof e.init=="function"||typeof e.start=="function"||typeof e.getCuePoints=="function"||typeof e.getVolume=="function"||e.__imaAdsManager))return this.attachImaAdsManager(e,t);e&&typeof e.addEventListener=="function"&&(n=e)}let r=t?.slotId||t?.adUnitCode||(n?n.id:"")||"video",s=t?.adUnitCode||r,o=t?.auctionId||"",d=t?.transactionId||"",a=()=>(o?this.getCachedBid(`${o}:${s}`):void 0)||(o&&r!==s?this.getCachedBid(`${o}:${r}`):void 0)||this.getCachedBid(s)||(r!==s?this.getCachedBid(r):void 0),c=null;n&&(n.tagName&&n.tagName.toLowerCase()==="video"?c=n:c=n.querySelector("video"));let f={q1:!1,q2:!1,q3:!1,q4:!1},y=p=>{let g=p||c||(n?.querySelector?n.querySelector("video"):null),v=a(),_={...v?.rawBid||t?.bid,mediaType:"video"};if(this.recordImpression(r,{adUnitCode:s,auctionId:o||v?.auctionId,transactionId:d||v?.transactionId,mediaType:"video",bid:_,metadata:{...t?.metadata,media_type:"video",...g&&Number.isFinite(g.duration)?{video_duration_s:String(Math.round(g.duration))}:{}}})&&t?.onImpression)try{t.onImpression(r,{element:g||n,bid:_})}catch(X){this.log("ERROR","Error in onImpression callback",X)}},h=p=>{this.log("DEBUG","HTML5 video playing event received");let g=p?.target instanceof HTMLVideoElement?p.target:c;y(g)},m=p=>{let g=p?.target instanceof HTMLVideoElement?p.target:c;if(g&&g.currentTime>0&&(y(g),Number.isFinite(g.duration)&&g.duration>0)){let v=g.currentTime/g.duration;v>=.25&&!f.q1&&(f.q1=!0,t?.onMilestone?.("firstQuartile",r)),v>=.5&&!f.q2&&(f.q2=!0,t?.onMilestone?.("midpoint",r)),v>=.75&&!f.q3&&(f.q3=!0,t?.onMilestone?.("thirdQuartile",r))}},S=()=>{f.q4||(f.q4=!0,t?.onMilestone?.("complete",r))},R=p=>{let v=(p?.target instanceof HTMLVideoElement?p.target:c)?.error||c?.error,_=a(),N=v?`HTML5 video error code ${v.code}: ${v.message}`:"Video playback error";if(this.log("WARN",N),this.enqueue(b.AD_RENDER_FAILED,"adRenderFailed",{auctionId:o||_?.auctionId,transactionId:d||_?.transactionId,adUnitCode:s,bid:_?.bidTrace||t?.bid,metadata:{...t?.metadata,reason:"html5_video_error",message:N,...v?.code?{video_error_code:String(v.code)}:{}},error:v?new Error(N):void 0}),t?.onError)try{t.onError(v)}catch(X){this.log("ERROR","Error in onError callback",X)}},E=p=>{p.addEventListener("playing",h),p.addEventListener("play",h),p.addEventListener("timeupdate",m),p.addEventListener("ended",S),p.addEventListener("error",R)},I=p=>{p.removeEventListener("playing",h),p.removeEventListener("play",h),p.removeEventListener("timeupdate",m),p.removeEventListener("ended",S),p.removeEventListener("error",R)},u=null;n&&n!==c&&(n.addEventListener("playing",h,!0),n.addEventListener("play",h,!0),n.addEventListener("timeupdate",m,!0),n.addEventListener("ended",S,!0),n.addEventListener("error",R,!0)),c&&E(c),n&&n.tagName?.toLowerCase()!=="video"&&typeof MutationObserver<"u"&&(u=new MutationObserver(()=>{let p=n.querySelector("video");p&&p!==c&&(c&&I(c),c=p,c&&E(c))}),u.observe(n,{childList:!0,subtree:!0}));let T=a();t?.trackViewability!==!1&&n&&this.observeSlot(n,r,{adUnitCode:s,auctionId:o||T?.auctionId,transactionId:d||T?.transactionId,mediaType:"video",bid:T?.bidTrace||t?.bid,metadata:t?.metadata,emitRefreshEvent:!1});let w=()=>{u&&(u.disconnect(),u=null),n&&n!==c&&(n.removeEventListener("playing",h,!0),n.removeEventListener("play",h,!0),n.removeEventListener("timeupdate",m,!0),n.removeEventListener("ended",S,!0),n.removeEventListener("error",R,!0)),c&&I(c),this.videoDetachCleanups.delete(w)};return this.videoDetachCleanups.add(w),w}onTimeInViewThreshold(e,t,n){let r={thresholdMs:t,callback:n,timer:null,fired:!1},s=this.slotViewabilityRecords.get(e);if(s){s.thresholdListeners.add(r);let o=this.getCurrentTimeInView(s);if(o>=t){r.fired=!0;try{n(e,o)}catch(d){this.log("ERROR","Error in threshold callback",d)}}else if(s.inView&&(typeof document>"u"||document.visibilityState==="visible")){let d=t-o;r.timer=setTimeout(()=>{if(r.timer=null,!r.fired&&s.inView&&(typeof document>"u"||document.visibilityState==="visible")){let a=this.getCurrentTimeInView(s);if(a>=t){r.fired=!0;try{n(e,a)}catch(c){this.log("ERROR","Error in threshold callback",c)}}}},d)}}else this.pendingThresholdListeners.has(e)||this.pendingThresholdListeners.set(e,new Set),this.pendingThresholdListeners.get(e).add(r);return()=>{r.timer&&(clearTimeout(r.timer),r.timer=null),s&&s.thresholdListeners.delete(r);let o=this.pendingThresholdListeners.get(e);o&&o.delete(r)}}getViewabilityState(e){let t=this.slotViewabilityRecords.get(e);if(!t)return;let n=Math.round(this.getCurrentTimeInView(t));return{inView:t.inView,viewable:t.viewableFired,timeInViewMs:n,refreshIndex:t.refreshIndex}}getEndpoint(){return this.config.endpoint}getRefreshIndex(e){return this.slotRefreshIndices.get(e)??0}triggerSlotRefresh(e,t){let n=this.slotViewabilityRecords.get(e);n&&n.element&&this.observeSlot(n.element,e,t)}trackRawEvent(e,t,n){let r=it[t]??(e==="ERROR"?b.ERROR:b.TRACE_EVENT_TYPE_UNSPECIFIED);this.enqueue(r,t,n,e)}setUserId(e){this.config.userId=e}setSessionId(e){this.config.sessionId=e}navigate(e,t){if(this.disable(),this.slotRefreshIndices.clear(),this.pendingThresholdListeners.clear(),this.config.pageviewId=e||U(),t)try{let n=new URL(t);this.pageUrl=n.origin+n.pathname}catch{this.pageUrl=t}else this.pageUrl="";ke(),this.enable()}handleAuctionInit(e){if(this.isDuplicate("auctionInit",e))return;this.log("DEBUG","auctionInit",e);let t=e.auctionId||"";t&&(this.auctionBidderOutcomes.delete(t),this.getOrCreateAuctionOutcomes(t)),this.enqueue(b.AUCTION_START,"auctionStart",{auctionId:t,transactionId:e.transactionId||""})}handleAuctionEnd(e){if(this.isDuplicate("auctionEnd",e))return;this.log("DEBUG","auctionEnd",e);let t=e.auctionId||"",n=t?this.auctionBidderOutcomes.get(t):void 0,r=n?Array.from(n.values()):[];t&&this.auctionBidderOutcomes.delete(t),this.enqueue(b.AUCTION_END,"auctionEnd",{auctionId:t,transactionId:e.transactionId||"",bidderOutcomes:r})}handleBidRequested(e){if(this.isDuplicate("bidRequested",e))return;this.log("DEBUG","bidRequested",e);let t=e.auctionId||"",n=e.bidderCode||e.bidder||"";if(!t||!n)return;let r=this.getOrCreateAuctionOutcomes(t);Array.isArray(e.bids)&&e.bids.forEach(s=>{let o=s.adUnitCode||"",d=Object.keys(s.mediaTypes||{}),a=d.length>0?d[0]:s.mediaType||"banner",c=`${n}:${o}`;r.has(c)||r.set(c,{bidder:n,adUnitCode:o,mediaType:a,outcome:C.BIDDER_OUTCOME_NO_RESPONSE,latencyMs:0})})}handleBidResponse(e){if(this.isDuplicate("bidResponse",e))return;this.log("DEBUG","bidResponse",e);let t=e.auctionId||"",n=e.bidderCode||e.bidder||"",r=e.adUnitCode||"",s=Number.isFinite(e.originalCpm)?e.originalCpm:Number.isFinite(e.cpm)?e.cpm:0,o=Number.isFinite(e.timeToRespond)?e.timeToRespond:0,d=e.mediaType||"banner";if(t&&n){let a=this.getOrCreateAuctionOutcomes(t),c=`${n}:${r}`,f=a.get(c),y=s>0?C.BIDDER_OUTCOME_BID:C.BIDDER_OUTCOME_NO_BID;f?(f.outcome=y,f.latencyMs=o,d&&(f.mediaType=d)):a.set(c,{bidder:n,adUnitCode:r,mediaType:d,outcome:y,latencyMs:o})}s>0&&this.enqueue(b.BID_RESPONSE,"bidResponse",{auctionId:t,transactionId:e.transactionId||"",adUnitCode:r,bid:{bidder:n,cpm:s,currency:e.originalCurrency??e.currency??"USD",...M(e),dealId:e.dealId||"",mediaType:d,latencyMs:o,advertiserDomain:e.meta?.advertiserDomains?.[0]||"",creativeId:e.creativeId||""}})}handleBidTimeout(e){if(this.isDuplicate("bidTimeout",e))return;this.log("DEBUG","bidTimeout",e);let t=Array.isArray(e)?e:e?[e]:[];for(let n of t){let r=n.auctionId||"",s=n.bidderCode||n.bidder||"",o=n.adUnitCode||"",d=Number.isFinite(n.timeout)?n.timeout:0;if(r&&s){let a=this.getOrCreateAuctionOutcomes(r),c=`${s}:${o}`,f=a.get(c);f?(f.outcome=C.BIDDER_OUTCOME_TIMEOUT,d>0&&(f.latencyMs=d)):a.set(c,{bidder:s,adUnitCode:o,mediaType:"banner",outcome:C.BIDDER_OUTCOME_TIMEOUT,latencyMs:d})}}}handleBidWon(e){if(this.isDuplicate("bidWon",e))return;this.log("DEBUG","bidWon",e);let t=e.auctionId||"",n=e.transactionId||"",r=e.adUnitCode||e.adId||"",s={bidder:e.bidderCode||e.bidder||"",cpm:Number.isFinite(e.originalCpm)?e.originalCpm:Number.isFinite(e.cpm)?e.cpm:0,currency:e.originalCurrency??e.currency??"USD",...M(e),dealId:e.dealId||"",mediaType:e.mediaType||"banner",latencyMs:Number.isFinite(e.timeToRespond)?e.timeToRespond:0,advertiserDomain:e.meta?.advertiserDomains?.[0]||"",creativeId:e.creativeId||""};if(r){let o={bidTrace:s,auctionId:t,transactionId:n,adUnitCode:r,rawBid:e,timestamp:Date.now()};this.cachedWinningBids.set(r,o),e.adId&&e.adId!==r&&this.cachedWinningBids.set(e.adId,o),t&&(this.cachedWinningBids.set(`${t}:${r}`,o),e.adId&&e.adId!==r&&this.cachedWinningBids.set(`${t}:${e.adId}`,o)),this.pruneCachedWinningBids()}this.enqueue(b.BID_WIN,"bidWon",{auctionId:t,transactionId:n,adUnitCode:r,bid:s})}handleNoBid(e){if(this.isDuplicate("noBid",e))return;this.log("DEBUG","noBid",e);let t=e.auctionId||"",n=e.bidderCode||e.bidder||"",r=e.adUnitCode||"";if(t&&n){let s=this.getOrCreateAuctionOutcomes(t),o=`${n}:${r}`,d=s.get(o);d?d.outcome===C.BIDDER_OUTCOME_NO_RESPONSE&&(d.outcome=C.BIDDER_OUTCOME_NO_BID):s.set(o,{bidder:n,adUnitCode:r,mediaType:"banner",outcome:C.BIDDER_OUTCOME_NO_BID,latencyMs:0})}}handleAdRenderFailed(e){if(this.isDuplicate("adRenderFailed",e))return;this.log("DEBUG","adRenderFailed",e);let t=e.bid||{};this.enqueue(b.AD_RENDER_FAILED,"adRenderFailed",{auctionId:t.auctionId||e.auctionId||"",transactionId:t.transactionId||e.transactionId||"",adUnitCode:t.adUnitCode||e.adUnitCode||"",bid:{bidder:t.bidderCode||t.bidder||e.bidderCode||e.bidder||""},metadata:{reason:String(e.reason||""),message:String(e.message||e.error?.message||"")},error:e.error||(e.message?new Error(String(e.message)):void 0)})}handleAdRenderSucceeded(e){if(this.isDuplicate("adRenderSucceeded",e))return;this.log("DEBUG","adRenderSucceeded",e);let t=e.bid||e||{},n=e.adUnitCode||t.adUnitCode||e.adId||t.adId||"",r=t.auctionId||e.auctionId||"",s=t.transactionId||e.transactionId||"",o=t.mediaType||"banner",d=e.adUnitCode||t.adUnitCode||"",a=e.adId||t.adId||"",c=(r&&d?this.getCachedBid(`${r}:${d}`):void 0)||(r&&a?this.getCachedBid(`${r}:${a}`):void 0)||(d?this.getCachedBid(d):void 0)||(a?this.getCachedBid(a):void 0),f={bidder:t.bidderCode||t.bidder||c?.bidTrace?.bidder||"",cpm:Number.isFinite(t.originalCpm)?t.originalCpm:Number.isFinite(t.cpm)?t.cpm:c?.bidTrace?.cpm??0,currency:t.originalCurrency??t.currency??c?.bidTrace?.currency??"USD",...M(t).width?M(t):c?.bidTrace?{width:c.bidTrace.width,height:c.bidTrace.height}:M(t),dealId:t.dealId||c?.bidTrace?.dealId||"",mediaType:o||c?.bidTrace?.mediaType||"banner",latencyMs:Number.isFinite(t.timeToRespond)?t.timeToRespond:c?.bidTrace?.latencyMs??0,advertiserDomain:t.meta?.advertiserDomains?.[0]||c?.bidTrace?.advertiserDomain||"",creativeId:t.creativeId||c?.bidTrace?.creativeId||""},y=r||c?.auctionId||"",h=s||c?.transactionId||"",m=n?this.slotViewabilityRecords.get(n):void 0,S=m&&y&&m.auctionId&&m.auctionId!==y;if(!!(n&&m&&S)){this.flushSlotTimeInView(n);let u=(this.slotRefreshIndices.get(n)??(m?m.refreshIndex:0))+1;this.slotRefreshIndices.set(n,u),this.slotLastAuctionIds.set(n,y),m&&(m.refreshIndex=u,m.auctionId=y,m.transactionId=h,m.bidPayload=f,m.viewableFired=!1,m.accumulatedTimeInViewMs=0),this.enqueue(b.REFRESH,"refresh",{auctionId:y,transactionId:h,adUnitCode:n,bid:f,metadata:{refresh_index:String(u)}})}else n&&(y&&this.slotLastAuctionIds.set(n,y),this.slotRefreshIndices.has(n)||this.slotRefreshIndices.set(n,0));let E=n?this.slotRefreshIndices.get(n)??(m?m.refreshIndex:0):0;if(n&&this.hasImpressionEmitted(n,E,y,f.creativeId)||(n&&this.markImpressionEmitted(n,E,y,f.creativeId),this.enqueue(b.IMPRESSION,"impression",{auctionId:y,transactionId:h,adUnitCode:n,bid:f,metadata:{refresh_index:String(E)}})),this.config.viewabilityEnabled&&typeof document<"u"){let u=null,T=n||e.adId||t.adId;if(T&&(u=document.getElementById(T)),!u&&typeof window<"u"&&window.googletag?.pubads)try{let w=window.googletag.pubads().getSlots();for(let p of w)if((p.getAdUnitPath?.()===n||p.getSlotElementId?.()===n)&&(u=document.getElementById(p.getSlotElementId()),u))break}catch{}if(!u&&T)try{for(let w of Array.from(document.querySelectorAll("[data-ad-slot]")))if(w.getAttribute("data-ad-slot")===T){u=w;break}}catch{}u&&this.observeSlot(u,n||T,{adUnitCode:n,auctionId:y,transactionId:h,mediaType:o,bid:f,refreshIndex:E,emitRefreshEvent:!1})}}isDuplicate(e,t){return this.deduper.isDuplicate(e,t)}enqueue(e,t,n,r){if(!this.isEnabled||!this.shouldSample(e,r))return;ke();let s={eventId:U(),timestampMs:Date.now(),type:e,eventName:t,auctionId:n.auctionId||"",transactionId:n.transactionId||"",adUnitCode:n.adUnitCode||n.elementId||"",namespace:n.ns||n.namespace||""};n.bid&&(s.bid={bidder:n.bid.bidder||"",cpm:Number.isFinite(n.bid.cpm)?n.bid.cpm:0,currency:n.bid.currency||"",width:Number.isFinite(n.bid.width)?n.bid.width:0,height:Number.isFinite(n.bid.height)?n.bid.height:0,dealId:n.bid.dealId||"",mediaType:n.bid.mediaType||"",latencyMs:Number.isFinite(n.bid.latencyMs)?n.bid.latencyMs:0,advertiserDomain:n.bid.advertiserDomain||"",creativeId:n.bid.creativeId||""}),n.viewableDurationMs!==void 0&&(s.viewableDurationMs=Number.isFinite(n.viewableDurationMs)?n.viewableDurationMs:0),n.bidderOutcomes&&Array.isArray(n.bidderOutcomes)&&(s.bidderOutcomes=n.bidderOutcomes);let o={...n.metadata};n.error!==void 0&&n.error!==null&&(o.error=typeof n.error=="object"&&n.error.message?String(n.error.message):String(n.error)),n.gpid&&(o.gpid=String(n.gpid)),n.refreshIndex!==void 0&&o.refresh_index===void 0&&(o.refresh_index=String(n.refreshIndex));let d=ut(o);Object.keys(d).length>0&&(s.metadata=d),this.queue.push(s),this.queue.length>K&&this.queue.splice(0,this.queue.length-K),this.queue.length>=Xe?this.flush():nt.has(e)&&!this.immediateFlushScheduled&&(this.immediateFlushScheduled=!0,setTimeout(()=>{this.immediateFlushScheduled=!1,this.flush()},0))}shouldSample(e,t){return e===b.ERROR?(this.errorCount++,this.errorCount>Ye?!1:this.config.errorsEnabled):t==="WARN"?this.config.warningsEnabled:this.config.auctionEnabled}requeue(e){e.length&&(this.queue=e.concat(this.queue),this.queue.length>K&&this.queue.splice(0,this.queue.length-K))}drainBatch(){if(this.queue.length===0||!this.config.endpoint)return null;let e=typeof window<"u"?window.location.hostname:"",t=n=>({propertyId:this.config.propertyId,pageviewId:this.config.pageviewId,sessionId:this.config.sessionId,pageUrl:this.pageUrl,country:this.config.country,region:this.config.region,deviceType:this.config.deviceType,userId:this.config.userId,domain:e,events:n});for(;;){if(this.queue.length===0)return null;let n=this.queue,r=q.encode(t(n)).finish();for(;n.length>1&&r.byteLength>se;)n=n.slice(0,Math.floor(n.length/2)),r=q.encode(t(n)).finish();if(r.byteLength>se){let[s]=this.queue.splice(0,1);this.log("WARN",`Dropping oversized event ${s?.eventName||s?.eventId} (${r.byteLength} bytes exceeds the ${se}-byte cap on its own)`);continue}return this.queue=this.queue.slice(n.length),{url:`${this.config.endpoint}/${this.config.propertyId}`,encoded:r,events:n}}}sendFetch(e,t=!1,n,r=!1){let s={method:"POST",headers:{"Content-Type":Oe},body:e.encoded};t&&(s.keepalive=!0),fetch(e.url,s).then(d=>{if(d.ok)r||(this.consecutiveSendFailures=0,this.nextSendAllowedAt=0),n&&n();else{if(this.log("WARN",`Failed to send batch: HTTP ${d.status}`),d.status>=400&&d.status<500&&d.status!==429&&d.status!==408){this.log("WARN",`Dropping batch due to non-retryable client error HTTP ${d.status}`);return}r||this.handleSendFailure(e.events)}}).catch(d=>{this.log("ERROR","Failed to send batch",d),r||this.handleSendFailure(e.events)});let o=typeof globalThis<"u"?globalThis.process:void 0;if(o&&typeof o._tickCallback=="function")try{o._tickCallback()}catch{}}handleSendFailure(e){this.consecutiveSendFailures++;let t=Math.min(Ce*2**(this.consecutiveSendFailures-1),je);this.nextSendAllowedAt=Date.now()+t,this.consecutiveSendFailures<=Qe?this.requeue(e):this.log("WARN",`Dropping ${e.length} events after ${this.consecutiveSendFailures} consecutive send failures`)}flush(){if(Date.now()<this.nextSendAllowedAt)return;let e=this.drainBatch();for(;e&&(this.sendFetch(e,!1),!(Date.now()<this.nextSendAllowedAt));)e=this.drainBatch()}flushBeacon(){let e=this.drainBatch();for(;e;){let t=!1;if(typeof navigator<"u"&&typeof navigator.sendBeacon=="function")try{let n=new Blob([e.encoded],{type:Oe});t=navigator.sendBeacon(e.url,n)}catch{t=!1}if(!t){let n=this.persistBatch(e.encoded);this.sendFetch(e,!0,()=>this.removePersistedBatch(n))}e=this.drainBatch()}this.schedulePersistedCleanup()}pendingKeyPrefix(){return`${G}${encodeURIComponent(this.config.propertyId)}_`}persistBatch(e){try{if(typeof localStorage>"u"||!this.config.propertyId)return null;let t=0;for(let r=0;r<localStorage.length;r++){let s=localStorage.key(r);s&&s.startsWith(G)&&t++}if(t>=Je)return null;let n=`${this.pendingKeyPrefix()}${Date.now()}_${Math.floor(Math.random()*1e6)}`;return localStorage.setItem(n,dt(e)),this.persistedBatchKeys.push(n),n}catch{return null}}removePersistedBatch(e){if(!e)return;try{typeof localStorage<"u"&&localStorage.removeItem(e)}catch{}let t=this.persistedBatchKeys.indexOf(e);t!==-1&&this.persistedBatchKeys.splice(t,1)}schedulePersistedCleanup(){this.persistedBatchKeys.length!==0&&(this.persistedCleanupTimer&&clearTimeout(this.persistedCleanupTimer),this.persistedCleanupTimer=setTimeout(()=>{this.persistedCleanupTimer=null;for(let e of Array.from(this.persistedBatchKeys))this.removePersistedBatch(e)},tt))}resendPersistedBatches(){try{if(typeof localStorage>"u"||!this.config.endpoint||!this.config.propertyId)return;let e=this.pendingKeyPrefix(),t=[],n=[];for(let r=0;r<localStorage.length;r++){let s=localStorage.key(r);!s||!s.startsWith(G)||(s.startsWith(e)?t.push(s):lt(s)&&n.push(s))}for(let r of n)try{localStorage.removeItem(r)}catch{}for(let r of t){let s=null;try{s=localStorage.getItem(r),localStorage.removeItem(r)}catch{continue}if(!s)continue;let o=parseInt(r.slice(e.length),10);if(!Number.isFinite(o)||Date.now()-o>et)continue;let d;try{d=at(s)}catch{continue}d.byteLength!==0&&(this.log("DEBUG",`Resending persisted exit batch (${d.byteLength} bytes)`),this.sendFetch({url:`${this.config.endpoint}/${this.config.propertyId}`,encoded:d,events:[]},!1,void 0,!0))}}catch{}}log(e,t,...n){let r={DEBUG:10,INFO:20,WARN:30,ERROR:40};if(r[e]<r[this.config.logLevel])return;let s=`[bidkernel][prebid-analytics][${e}]`;switch(e){case"DEBUG":console.debug(s,t,...n);break;case"INFO":console.info(s,t,...n);break;case"WARN":console.warn(s,t,...n);break;case"ERROR":console.error(s,t,...n);break}}}});var mt=Le(()=>{Pe();var Ne="https://by.bidkernel.io/t",bt=window._bidkernelPbjsGlobal||"pbjs";ae(bt,{endpoint:Ne});window.bidkernelPrebidAnalytics={...window.bidkernelPrebidAnalytics,register:(i,e)=>ae(i,{endpoint:Ne,...e}),attachVideoPlayer:(i,e)=>{let t=window._bidkernelPrebidAnalytics;return t?.attachVideoPlayer?t.attachVideoPlayer(i,e):()=>{}},attachImaAdsManager:(i,e)=>{let t=window._bidkernelPrebidAnalytics;return t?.attachImaAdsManager?t.attachImaAdsManager(i,e):()=>{}},recordImpression:(i,e)=>{let t=window._bidkernelPrebidAnalytics;return t?.recordImpression?t.recordImpression(i,e):!1}}});return mt();})();
1
+ "use strict";var bidkernelPrebidAnalyticsBundle=(()=>{var S=(i,e)=>()=>(i&&(e=i(i=0)),e);var je=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports);function ye(){let i=0,e=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(i|=(r&127)<<n,(r&128)==0)return this.assertBounds(),[i,e]}let t=this.buf[this.pos++];if(i|=(t&15)<<28,e=(t&112)>>4,(t&128)==0)return this.assertBounds(),[i,e];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<n,(r&128)==0)return this.assertBounds(),[i,e]}throw new Error("invalid varint")}function q(i,e,t){for(let s=0;s<28;s=s+7){let o=i>>>s,d=!(!(o>>>7)&&e==0),a=(d?o|128:o)&255;if(t.push(a),!d)return}let n=i>>>28&15|(e&7)<<4,r=e>>3!=0;if(t.push((r?n|128:n)&255),!!r){for(let s=3;s<31;s=s+7){let o=e>>>s,d=!!(o>>>7),a=(d?o|128:o)&255;if(t.push(a),!d)return}t.push(e>>>31&1)}}function Z(i){let e=i[0]==="-";e&&(i=i.slice(1));let t=1e6,n=0,r=0;function s(o,d){let a=Number(i.slice(o,d));r*=t,n=n*t+a,n>=W&&(r=r+(n/W|0),n=n%W)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),e?be(n,r):ee(n,r)}function me(i,e){let t=ee(i,e),n=t.hi&2147483648;n&&(t=be(t.lo,t.hi));let r=J(t.lo,t.hi);return n?"-"+r:r}function J(i,e){if({lo:i,hi:e}=ze(i,e),e<=2097151)return String(W*e+i);let t=i&16777215,n=(i>>>24|e<<8)&16777215,r=e>>16&65535,s=t+n*6777216+r*6710656,o=n+r*8147497,d=r*2,a=1e7;return s>=a&&(o+=Math.floor(s/a),s%=a),o>=a&&(d+=Math.floor(o/a),o%=a),d.toString()+pe(o)+pe(s)}function ze(i,e){return{lo:i>>>0,hi:e>>>0}}function ee(i,e){return{lo:i|0,hi:e|0}}function be(i,e){return e=~e,i?i=~i+1:e+=1,ee(i,e)}function te(i,e){if(i>=0){for(;i>127;)e.push(i&127|128),i=i>>>7;e.push(i)}else{for(let t=0;t<9;t++)e.push(i&127|128),i=i>>7;e.push(1)}}function Ie(){let i=this.buf[this.pos++],e=i&127;if((i&128)==0)return this.assertBounds(),e;if(i=this.buf[this.pos++],e|=(i&127)<<7,(i&128)==0)return this.assertBounds(),e;if(i=this.buf[this.pos++],e|=(i&127)<<14,(i&128)==0)return this.assertBounds(),e;if(i=this.buf[this.pos++],e|=(i&127)<<21,(i&128)==0)return this.assertBounds(),e;i=this.buf[this.pos++],e|=(i&15)<<28;for(let t=5;(i&128)!==0&&t<10;t++)i=this.buf[this.pos++];if((i&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}var W,pe,ie=S(()=>{"use strict";W=4294967296;pe=i=>{let e=String(i);return"0000000".slice(e.length)+e}});function Xe(){let i=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof i.getBigInt64=="function"&&typeof i.getBigUint64=="function"&&typeof i.setBigInt64=="function"&&typeof i.setBigUint64=="function"&&(!!globalThis.Deno||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),r=BigInt("0"),s=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(o){let d=typeof o=="bigint"?o:BigInt(o);if(d>n||d<t)throw new Error(`invalid int64: ${o}`);return d},uParse(o){let d=typeof o=="bigint"?o:BigInt(o);if(d>s||d<r)throw new Error(`invalid uint64: ${o}`);return d},enc(o){return i.setBigInt64(0,this.parse(o),!0),{lo:i.getInt32(0,!0),hi:i.getInt32(4,!0)}},uEnc(o){return i.setBigInt64(0,this.uParse(o),!0),{lo:i.getInt32(0,!0),hi:i.getInt32(4,!0)}},dec(o,d){return i.setInt32(0,o,!0),i.setInt32(4,d,!0),i.getBigInt64(0,!0)},uDec(o,d){return i.setInt32(0,o,!0),i.setInt32(4,d,!0),i.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(t){return typeof t!="string"&&(t=t.toString()),ge(t),t},uParse(t){return typeof t!="string"&&(t=t.toString()),Te(t),t},enc(t){return typeof t!="string"&&(t=t.toString()),ge(t),Z(t)},uEnc(t){return typeof t!="string"&&(t=t.toString()),Te(t),Z(t)},dec(t,n){return me(t,n)},uDec(t,n){return J(t,n)}}}function ge(i){if(!/^-?[0-9]+$/.test(i))throw new Error("invalid int64: "+i)}function Te(i){if(!/^[0-9]+$/.test(i))throw new Error("invalid uint64: "+i)}var C,Ee=S(()=>{"use strict";ie();C=Xe()});function re(){if(globalThis[ne]==null){let i=new globalThis.TextEncoder,e=new globalThis.TextDecoder;globalThis[ne]={encodeUtf8(t){return i.encode(t)},decodeUtf8(t){return e.decode(t)},checkUtf8(t){try{return encodeURIComponent(t),!0}catch{return!1}}}}return globalThis[ne]}var ne,se=S(()=>{"use strict";ne=Symbol.for("@bufbuild/protobuf/text-encoding")});function oe(i){if(typeof i=="string")i=Number(i);else if(typeof i!="number")throw new Error("invalid int32: "+typeof i);if(!Number.isInteger(i)||i>Je||i<et)throw new Error("invalid int32: "+i)}function ve(i){if(typeof i=="string")i=Number(i);else if(typeof i!="number")throw new Error("invalid uint32: "+typeof i);if(!Number.isInteger(i)||i>Ze||i<0)throw new Error("invalid uint32: "+i)}function tt(i){if(typeof i=="string"){let e=i;if(i=Number(i),Number.isNaN(i)&&e!=="NaN")throw new Error("invalid float32: "+e)}else if(typeof i!="number")throw new Error("invalid float32: "+typeof i);if(Number.isFinite(i)&&(i>Ye||i<Qe))throw new Error("invalid float32: "+i)}var x,Ye,Qe,Ze,Je,et,M,R,we=S(()=>{"use strict";ie();Ee();se();(function(i){i[i.Varint=0]="Varint",i[i.Bit64=1]="Bit64",i[i.LengthDelimited=2]="LengthDelimited",i[i.StartGroup=3]="StartGroup",i[i.EndGroup=4]="EndGroup",i[i.Bit32=5]="Bit32"})(x||(x={}));Ye=34028234663852886e22,Qe=-34028234663852886e22,Ze=4294967295,Je=2147483647,et=-2147483648,M=class{constructor(e=re().encodeUtf8){this.encodeUtf8=e,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let t=new Uint8Array(e),n=0;for(let r=0;r<this.chunks.length;r++)t.set(this.chunks[r],n),n+=this.chunks[r].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(ve(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return oe(e),te(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.encodeUtf8(e);return this.uint32(t.byteLength),this.raw(t)}float(e){tt(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){ve(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){oe(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return oe(e),e=(e<<1^e>>31)>>>0,te(e,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=C.enc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),r=C.uEnc(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(t)}int64(e){let t=C.enc(e);return q(t.lo,t.hi,this.buf),this}sint64(e){let t=C.enc(e),n=t.hi>>31,r=t.lo<<1^n,s=(t.hi<<1|t.lo>>>31)^n;return q(r,s,this.buf),this}uint64(e){let t=C.uEnc(e);return q(t.lo,t.hi,this.buf),this}},R=class{constructor(e,t=re().decodeUtf8){this.decodeUtf8=t,this.varint64=ye,this.uint32=Ie,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){let e=this.uint32(),t=e>>>3,n=e&7;if(t<=0||n<0||n>5)throw new Error("illegal tag: field no "+t+" wire type "+n);return[t,n]}skip(e,t){let n=this.pos;switch(e){case x.Varint:for(;this.buf[this.pos++]&128;);break;case x.Bit64:this.pos+=4;case x.Bit32:this.pos+=4;break;case x.LengthDelimited:let r=this.uint32();this.pos+=r;break;case x.StartGroup:for(;;){let[s,o]=this.tag();if(o===x.EndGroup){if(t!==void 0&&s!==t)throw new Error("invalid end group tag");break}this.skip(o,s)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return C.dec(...this.varint64())}uint64(){return C.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),n=-(e&1);return e=(e>>>1|(t&1)<<31)^n,t=t>>>1^n,C.dec(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return C.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return C.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.decodeUtf8(this.bytes())}}});var Ae=S(()=>{"use strict"});var Be=S(()=>{"use strict"});var Re=S(()=>{"use strict"});var Ce=S(()=>{"use strict";we();Ae();se();Be();Re()});function Se(){return{propertyId:"",pageviewId:"",sessionId:"",pageUrl:"",country:"",region:"",deviceType:"",userId:"",domain:"",events:[],browser:"",deviceManufacturer:"",deviceModel:"",city:"",postalCode:""}}function De(){return{timestampMs:0,type:0,eventName:"",auctionId:"",transactionId:"",adUnitCode:"",bid:void 0,namespace:"",eventId:"",metadata:{},viewableDurationMs:void 0,bidderOutcomes:[]}}function _e(){return{key:"",value:""}}function xe(){return{bidder:"",adUnitCode:"",mediaType:"",outcome:0,latencyMs:0}}function Me(){return{bidder:"",cpm:0,currency:"",width:0,height:0,dealId:"",mediaType:"",latencyMs:0,advertiserDomain:"",creativeId:""}}var m,D,j,K,de,H,G,Oe=S(()=>{"use strict";Ce();m={TRACE_EVENT_TYPE_UNSPECIFIED:0,AUCTION_START:1,AUCTION_END:2,BID_RESPONSE:3,BID_WIN:4,IMPRESSION:5,VIEWABLE:6,TIME_IN_VIEW:7,REFRESH:8,ERROR:9,SLOT_DEFINED:10,SLOT_DESTROYED:11,CLICK:12,AD_RENDER_FAILED:13,UNRECOGNIZED:-1},D={BIDDER_OUTCOME_UNSPECIFIED:0,BIDDER_OUTCOME_BID:1,BIDDER_OUTCOME_NO_BID:2,BIDDER_OUTCOME_TIMEOUT:3,BIDDER_OUTCOME_ERROR:4,BIDDER_OUTCOME_NO_RESPONSE:5,UNRECOGNIZED:-1};j={encode(i,e=new M){if(i.propertyId!==void 0&&i.propertyId!==""&&e.uint32(10).string(i.propertyId),i.pageviewId!==void 0&&i.pageviewId!==""&&e.uint32(18).string(i.pageviewId),i.sessionId!==void 0&&i.sessionId!==""&&e.uint32(26).string(i.sessionId),i.pageUrl!==void 0&&i.pageUrl!==""&&e.uint32(34).string(i.pageUrl),i.country!==void 0&&i.country!==""&&e.uint32(42).string(i.country),i.region!==void 0&&i.region!==""&&e.uint32(50).string(i.region),i.deviceType!==void 0&&i.deviceType!==""&&e.uint32(58).string(i.deviceType),i.userId!==void 0&&i.userId!==""&&e.uint32(66).string(i.userId),i.domain!==void 0&&i.domain!==""&&e.uint32(74).string(i.domain),i.events!==void 0&&i.events.length!==0)for(let t of i.events)K.encode(t,e.uint32(82).fork()).join();return i.browser!==void 0&&i.browser!==""&&e.uint32(90).string(i.browser),i.deviceManufacturer!==void 0&&i.deviceManufacturer!==""&&e.uint32(98).string(i.deviceManufacturer),i.deviceModel!==void 0&&i.deviceModel!==""&&e.uint32(106).string(i.deviceModel),i.city!==void 0&&i.city!==""&&e.uint32(114).string(i.city),i.postalCode!==void 0&&i.postalCode!==""&&e.uint32(122).string(i.postalCode),e},decode(i,e){let t=i instanceof R?i:new R(i),n=e===void 0?t.len:t.pos+e,r=Se();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==10)break;r.propertyId=t.string();continue}case 2:{if(s!==18)break;r.pageviewId=t.string();continue}case 3:{if(s!==26)break;r.sessionId=t.string();continue}case 4:{if(s!==34)break;r.pageUrl=t.string();continue}case 5:{if(s!==42)break;r.country=t.string();continue}case 6:{if(s!==50)break;r.region=t.string();continue}case 7:{if(s!==58)break;r.deviceType=t.string();continue}case 8:{if(s!==66)break;r.userId=t.string();continue}case 9:{if(s!==74)break;r.domain=t.string();continue}case 10:{if(s!==82)break;let o=K.decode(t,t.uint32());o!==void 0&&r.events.push(o);continue}case 11:{if(s!==90)break;r.browser=t.string();continue}case 12:{if(s!==98)break;r.deviceManufacturer=t.string();continue}case 13:{if(s!==106)break;r.deviceModel=t.string();continue}case 14:{if(s!==114)break;r.city=t.string();continue}case 15:{if(s!==122)break;r.postalCode=t.string();continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return j.fromPartial(i??{})},fromPartial(i){let e=Se();return e.propertyId=i.propertyId??"",e.pageviewId=i.pageviewId??"",e.sessionId=i.sessionId??"",e.pageUrl=i.pageUrl??"",e.country=i.country??"",e.region=i.region??"",e.deviceType=i.deviceType??"",e.userId=i.userId??"",e.domain=i.domain??"",e.events=i.events?.map(t=>K.fromPartial(t))||[],e.browser=i.browser??"",e.deviceManufacturer=i.deviceManufacturer??"",e.deviceModel=i.deviceModel??"",e.city=i.city??"",e.postalCode=i.postalCode??"",e}};K={encode(i,e=new M){if(i.timestampMs!==void 0&&i.timestampMs!==0&&e.uint32(9).double(i.timestampMs),i.type!==void 0&&i.type!==0&&e.uint32(16).int32(i.type),i.eventName!==void 0&&i.eventName!==""&&e.uint32(26).string(i.eventName),i.auctionId!==void 0&&i.auctionId!==""&&e.uint32(34).string(i.auctionId),i.transactionId!==void 0&&i.transactionId!==""&&e.uint32(42).string(i.transactionId),i.adUnitCode!==void 0&&i.adUnitCode!==""&&e.uint32(50).string(i.adUnitCode),i.bid!==void 0&&G.encode(i.bid,e.uint32(58).fork()).join(),i.namespace!==void 0&&i.namespace!==""&&e.uint32(66).string(i.namespace),i.eventId!==void 0&&i.eventId!==""&&e.uint32(74).string(i.eventId),globalThis.Object.entries(i.metadata||{}).forEach(([t,n])=>{de.encode({key:t,value:n},e.uint32(82).fork()).join()}),i.viewableDurationMs!==void 0&&e.uint32(89).double(i.viewableDurationMs),i.bidderOutcomes!==void 0&&i.bidderOutcomes.length!==0)for(let t of i.bidderOutcomes)H.encode(t,e.uint32(98).fork()).join();return e},decode(i,e){let t=i instanceof R?i:new R(i),n=e===void 0?t.len:t.pos+e,r=De();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==9)break;r.timestampMs=t.double();continue}case 2:{if(s!==16)break;r.type=t.int32();continue}case 3:{if(s!==26)break;r.eventName=t.string();continue}case 4:{if(s!==34)break;r.auctionId=t.string();continue}case 5:{if(s!==42)break;r.transactionId=t.string();continue}case 6:{if(s!==50)break;r.adUnitCode=t.string();continue}case 7:{if(s!==58)break;r.bid=G.decode(t,t.uint32());continue}case 8:{if(s!==66)break;r.namespace=t.string();continue}case 9:{if(s!==74)break;r.eventId=t.string();continue}case 10:{if(s!==82)break;let o=de.decode(t,t.uint32());o.value!==void 0&&(r.metadata[o.key]=o.value);continue}case 11:{if(s!==89)break;r.viewableDurationMs=t.double();continue}case 12:{if(s!==98)break;let o=H.decode(t,t.uint32());o!==void 0&&r.bidderOutcomes.push(o);continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return K.fromPartial(i??{})},fromPartial(i){let e=De();return e.timestampMs=i.timestampMs??0,e.type=i.type??0,e.eventName=i.eventName??"",e.auctionId=i.auctionId??"",e.transactionId=i.transactionId??"",e.adUnitCode=i.adUnitCode??"",e.bid=i.bid!==void 0&&i.bid!==null?G.fromPartial(i.bid):void 0,e.namespace=i.namespace??"",e.eventId=i.eventId??"",e.metadata=globalThis.Object.entries(i.metadata??{}).reduce((t,[n,r])=>(r!==void 0&&(t[n]=globalThis.String(r)),t),{}),e.viewableDurationMs=i.viewableDurationMs??void 0,e.bidderOutcomes=i.bidderOutcomes?.map(t=>H.fromPartial(t))||[],e}};de={encode(i,e=new M){return i.key!==""&&e.uint32(10).string(i.key),i.value!==""&&e.uint32(18).string(i.value),e},decode(i,e){let t=i instanceof R?i:new R(i),n=e===void 0?t.len:t.pos+e,r=_e();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==10)break;r.key=t.string();continue}case 2:{if(s!==18)break;r.value=t.string();continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return de.fromPartial(i??{})},fromPartial(i){let e=_e();return e.key=i.key??"",e.value=i.value??"",e}};H={encode(i,e=new M){return i.bidder!==void 0&&i.bidder!==""&&e.uint32(10).string(i.bidder),i.adUnitCode!==void 0&&i.adUnitCode!==""&&e.uint32(18).string(i.adUnitCode),i.mediaType!==void 0&&i.mediaType!==""&&e.uint32(26).string(i.mediaType),i.outcome!==void 0&&i.outcome!==0&&e.uint32(32).int32(i.outcome),i.latencyMs!==void 0&&i.latencyMs!==0&&e.uint32(41).double(i.latencyMs),e},decode(i,e){let t=i instanceof R?i:new R(i),n=e===void 0?t.len:t.pos+e,r=xe();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==10)break;r.bidder=t.string();continue}case 2:{if(s!==18)break;r.adUnitCode=t.string();continue}case 3:{if(s!==26)break;r.mediaType=t.string();continue}case 4:{if(s!==32)break;r.outcome=t.int32();continue}case 5:{if(s!==41)break;r.latencyMs=t.double();continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return H.fromPartial(i??{})},fromPartial(i){let e=xe();return e.bidder=i.bidder??"",e.adUnitCode=i.adUnitCode??"",e.mediaType=i.mediaType??"",e.outcome=i.outcome??0,e.latencyMs=i.latencyMs??0,e}};G={encode(i,e=new M){return i.bidder!==void 0&&i.bidder!==""&&e.uint32(10).string(i.bidder),i.cpm!==void 0&&i.cpm!==0&&e.uint32(17).double(i.cpm),i.currency!==void 0&&i.currency!==""&&e.uint32(26).string(i.currency),i.width!==void 0&&i.width!==0&&e.uint32(32).int32(i.width),i.height!==void 0&&i.height!==0&&e.uint32(40).int32(i.height),i.dealId!==void 0&&i.dealId!==""&&e.uint32(50).string(i.dealId),i.mediaType!==void 0&&i.mediaType!==""&&e.uint32(58).string(i.mediaType),i.latencyMs!==void 0&&i.latencyMs!==0&&e.uint32(65).double(i.latencyMs),i.advertiserDomain!==void 0&&i.advertiserDomain!==""&&e.uint32(74).string(i.advertiserDomain),i.creativeId!==void 0&&i.creativeId!==""&&e.uint32(82).string(i.creativeId),e},decode(i,e){let t=i instanceof R?i:new R(i),n=e===void 0?t.len:t.pos+e,r=Me();for(;t.pos<n;){let s=t.uint32();switch(s>>>3){case 1:{if(s!==10)break;r.bidder=t.string();continue}case 2:{if(s!==17)break;r.cpm=t.double();continue}case 3:{if(s!==26)break;r.currency=t.string();continue}case 4:{if(s!==32)break;r.width=t.int32();continue}case 5:{if(s!==40)break;r.height=t.int32();continue}case 6:{if(s!==50)break;r.dealId=t.string();continue}case 7:{if(s!==58)break;r.mediaType=t.string();continue}case 8:{if(s!==65)break;r.latencyMs=t.double();continue}case 9:{if(s!==74)break;r.advertiserDomain=t.string();continue}case 10:{if(s!==82)break;r.creativeId=t.string();continue}}if((s&7)===4||s===0)break;t.skip(s&7)}return r},create(i){return G.fromPartial(i??{})},fromPartial(i){let e=Me();return e.bidder=i.bidder??"",e.cpm=i.cpm??0,e.currency=i.currency??"",e.width=i.width??0,e.height=i.height??0,e.dealId=i.dealId??"",e.mediaType=i.mediaType??"",e.latencyMs=i.latencyMs??0,e.advertiserDomain=i.advertiserDomain??"",e.creativeId=i.creativeId??"",e}}});function L(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let e=Math.random()*16|0;return(i==="x"?e:e&3|8).toString(16)})}function mt(i){let e="";for(let n=0;n<i.length;n+=8192)e+=String.fromCharCode(...i.subarray(n,n+8192));return btoa(e)}function bt(i){let e=atob(i),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}function It(i){if(!i)return!1;let e;try{e=new URL(i)}catch{return!1}return e.username||e.password?!1:e.protocol==="https:"?!0:e.protocol==="http:"?e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname==="[::1]":!1}function gt(i){let e={},t=0;for(let n of Object.keys(i)){if(t>=dt)break;let r=i[n];if(r==null)continue;let s=String(r);e[n]=s.length>Ue?`${s.slice(0,Ue)}...[truncated]`:s,t++}return e}function Tt(i){let e=i.slice(Y.length).split("_");return e.length===2&&/^\d+$/.test(e[0])}function Et(i,e){if(!i||!e)return!1;try{return new URL(i).origin===new URL(e).origin}catch{return!1}}function Ve(){let i=Date.now();F=i;try{typeof localStorage<"u"&&localStorage.setItem(Q,i.toString())}catch{}}function vt(){let i=Date.now();try{if(typeof localStorage<"u"){let e=localStorage.getItem(Ne),t=localStorage.getItem(Q),n=t&&parseInt(t,10)||0;if(e&&n&&i-n<=Le)return localStorage.setItem(Q,i.toString()),e;let r=L();return localStorage.setItem(Ne,r),localStorage.setItem(Q,i.toString()),r}}catch{}return X&&F&&i-F<=Le?(F=i,X):(X=L(),F=i,X)}function l(i){return String(i??"").replace(/%/g,"%25").replace(/:/g,"%3A")}function wt(i,e){switch(i){case"auctionInit":return`auctionInit:${l(e?.auctionId)}`;case"auctionEnd":return`auctionEnd:${l(e?.auctionId)}`;case"bidRequested":{let t=Array.isArray(e?.bids)?e.bids.map(n=>l(n?.bidId||n?.transactionId||n?.adUnitCode)).join(","):"";return`bidRequested:${l(e?.auctionId)}:${l(e?.bidderCode||e?.bidder)}:${t}`}case"bidResponse":{let t=e||{},n=t.creativeId||t.adId||t.requestId||t.bidId||"",r=t.originalCpm??t.cpm??"";return`bidResponse:${l(t.auctionId)}:${l(t.adUnitCode)}:${l(t.bidderCode||t.bidder)}:${l(n)}:${l(r)}`}case"bidTimeout":return"bidTimeout:"+(Array.isArray(e)?e:e?[e]:[]).map(n=>`${l(n?.auctionId)}:${l(n?.bidderCode||n?.bidder)}:${l(n?.bidId||n?.transactionId||n?.adUnitCode)}`).join(",");case"bidWon":{let t=e||{},n=t.creativeId||t.adId||t.requestId||t.bidId||"",r=t.originalCpm??t.cpm??"";return`bidWon:${l(t.auctionId)}:${l(t.adUnitCode)}:${l(t.bidderCode||t.bidder)}:${l(n)}:${l(r)}`}case"noBid":return`noBid:${l(e?.auctionId)}:${l(e?.adUnitCode)}:${l(e?.bidderCode||e?.bidder)}:${l(e?.bidId||e?.transactionId)}`;case"adRenderFailed":{let t=e?.bid||{};return`adRenderFailed:${l(t.auctionId||e?.auctionId)}:${l(t.adUnitCode||e?.adUnitCode)}:${l(t.bidderCode||t.bidder||e?.bidderCode||e?.bidder)}:${l(e?.reason)}:${l(e?.message)}`}case"adRenderSucceeded":{let t=e?.bid||e||{},n=t.creativeId||t.adId||e?.adId||"",r=t.originalCpm??t.cpm??"";return`adRenderSucceeded:${l(t.auctionId||e?.auctionId)}:${l(t.adUnitCode||e?.adUnitCode)}:${l(t.bidderCode||t.bidder)}:${l(n)}:${l(r)}`}case"setTargeting":return`setTargeting:${Object.keys(e||{}).sort().map(l).join(",")}`;case"auctionDebug":return`auctionDebug:${l(e?.type)}:${l(String(e?.arguments?.[0]??"").slice(0,50))}`;default:return""}}function O(i){if(Number.isFinite(i?.width)&&Number.isFinite(i?.height))return{width:i.width,height:i.height};if(typeof i?.size=="string"){let e=i.size.match(/^(\d+)x(\d+)$/);if(e)return{width:Number(e[1]),height:Number(e[2])}}return{width:Number.isFinite(i?.width)?i.width:0,height:Number.isFinite(i?.height)?i.height:0}}function Fe(i){if(i)try{let e=i.prototype;if(e&&typeof e.getAdsManager=="function"&&!e.getAdsManager.__bidkernelHooked){let t=e.getAdsManager,n=function(...r){let s=t.apply(this,r);if(s)for(let o of N.getActiveInstances())try{o.attachImaAdsManager(s)}catch{}return s};n.__bidkernelHooked=!0,e.getAdsManager=n}}catch{}}function $e(i){if(i)try{let e=i.prototype||i;if(e&&typeof e.init=="function"&&!e.init.__bidkernelHooked){let t=e.init,n=function(...r){for(let s of N.getActiveInstances())try{s.attachImaAdsManager(this)}catch{}return t.apply(this,r)};n.__bidkernelHooked=!0,e.init=n}if(e&&typeof e.start=="function"&&!e.start.__bidkernelHooked){let t=e.start,n=function(...r){for(let s of N.getActiveInstances())try{s.attachImaAdsManager(this)}catch{}return t.apply(this,r)};n.__bidkernelHooked=!0,e.start=n}}catch{}}function We(i){if(i)try{let e=i.prototype;if(!e)return;if(typeof e.addEventListener=="function"&&!e.addEventListener.__bidkernelHooked){let t=e.addEventListener,n=function(r,s,...o){if((r==="adsManagerLoaded"||r===(this?.AdsManagerLoadedEvent?.Type?.ADS_MANAGER_LOADED||"adsManagerLoaded"))&&typeof s=="function"){let d=ce.get(s);return d||(d=function(a){if(a&&typeof a.getAdsManager=="function"&&!a.getAdsManager.__bidkernelHooked){let u=a.getAdsManager;a.getAdsManager=function(...h){let b=u.apply(this,h);if(b)for(let f of N.getActiveInstances())try{f.attachImaAdsManager(b)}catch{}return b},a.getAdsManager.__bidkernelHooked=!0}return s.apply(this,arguments)},ce.set(s,d)),t.call(this,r,d,...o)}return t.call(this,r,s,...o)};n.__bidkernelHooked=!0,e.addEventListener=n}if(typeof e.removeEventListener=="function"&&!e.removeEventListener.__bidkernelHooked){let t=e.removeEventListener,n=function(r,s,...o){let d=typeof s=="function"?ce.get(s):void 0;return t.call(this,r,d||s,...o)};n.__bidkernelHooked=!0,e.removeEventListener=n}}catch{}}function $(i){if(!(!i||typeof i!="object"))try{i.AdsManagerLoadedEvent&&Fe(i.AdsManagerLoadedEvent);let e=Object.getOwnPropertyDescriptor(i,"AdsManagerLoadedEvent");if(!e||e.configurable){let r=i.AdsManagerLoadedEvent;try{Object.defineProperty(i,"AdsManagerLoadedEvent",{configurable:!0,enumerable:!0,get(){return r},set(s){r=s,Fe(s)}})}catch{}}i.AdsLoader&&We(i.AdsLoader);let t=Object.getOwnPropertyDescriptor(i,"AdsLoader");if(!t||t.configurable){let r=i.AdsLoader;try{Object.defineProperty(i,"AdsLoader",{configurable:!0,enumerable:!0,get(){return r},set(s){r=s,We(s)}})}catch{}}i.AdsManager&&$e(i.AdsManager);let n=Object.getOwnPropertyDescriptor(i,"AdsManager");if(!n||n.configurable){let r=i.AdsManager;try{Object.defineProperty(i,"AdsManager",{configurable:!0,enumerable:!0,get(){return r},set(s){r=s,$e(s)}})}catch{}}}catch{}}function le(){if(typeof window>"u")return;let i=window;if(i.google?.ima&&$(i.google.ima),i.google&&typeof i.google=="object"){let t=Object.getOwnPropertyDescriptor(i.google,"ima");if(!t||t.configurable){let n=i.google.ima;try{Object.defineProperty(i.google,"ima",{configurable:!0,enumerable:!0,get(){return n},set(r){n=r,$(r)}})}catch{}}}let e=Object.getOwnPropertyDescriptor(i,"google");if(!e||e.configurable){let t=i.google;try{Object.defineProperty(i,"google",{configurable:!0,enumerable:!0,get(){return t},set(n){if(t=n,t&&typeof t=="object"){t.ima&&$(t.ima);let r=Object.getOwnPropertyDescriptor(t,"ima");if(!r||r.configurable){let s=t.ima;try{Object.defineProperty(t,"ima",{configurable:!0,enumerable:!0,get(){return s},set(o){s=o,$(o)}})}catch{}}}}})}catch{}}}function V(i,e=!0){if(!i)return null;if(Array.isArray(i)){let t=i.find(n=>n?.provider==="bidkernel")??(e?i.find(n=>n&&typeof n=="object"&&n.provider===void 0):void 0);return t?V(t,e):null}if(typeof i=="object"){if(i.options&&typeof i.options=="object")return i.options;if(i.config&&typeof i.config=="object")return i.config;if(i.propertyId||i.endpoint)return i}return null}function At(i){if(!i)return null;if(i._bidkernelAnalyticsConfig){let e=V(i._bidkernelAnalyticsConfig);if(e)return e}if(i.bidkernelPrebidAnalytics){let e=i.bidkernelPrebidAnalytics;if(e.options){let t=V(e.options);if(t)return t}if(e.config){let t=V(e.config);if(t)return t}if(e.propertyId)return V(e)}return null}function fe(i="pbjs",e){let t=typeof window<"u"?window:{};t[i]=t[i]||{};let n=t[i],r=o=>{let d=t._bidkernelPrebidAnalytics,a=d?.getEndpoint?.()||"",u={pbjsGlobalName:i,...e,...o};if(a&&!Et(u.endpoint||"",a)&&(console.warn(`[bidkernel] Ignoring analytics endpoint change to ${u.endpoint||"(empty)"}: this page is pinned to ${a}. Reload to change the ingest endpoint.`),u.endpoint=a),d)try{d.disable()}catch(b){console.warn("[bidkernel] Failed to disable previous analytics instance:",b)}let h=new N(u);return h.enable(),t._bidkernelPrebidAnalytics=h,h},s=()=>{try{n.adapterManager&&typeof n.adapterManager.registerAnalyticsAdapter=="function"&&n.adapterManager.registerAnalyticsAdapter({adapter:{enableAnalytics:d=>{let a=V(d,!Array.isArray(d));a&&r(a)},disableAnalytics:()=>{t._bidkernelPrebidAnalytics&&t._bidkernelPrebidAnalytics.disable()}},code:"bidkernel"});let o=At(t);o&&(o.propertyId||e?.propertyId)&&r(o)}catch(o){console.warn("[bidkernel] Failed to register standard Prebid analytics adapter:",o)}};n.adapterManager&&typeof n.adapterManager.registerAnalyticsAdapter=="function"?s():(n.que=n.que||[],n.que.push(s))}var nt,ke,rt,z,st,ot,ae,Ue,dt,Pe,Y,at,ct,ut,lt,ft,P,ht,pt,yt,Ne,Q,Le,X,F,ue,ce,N,qe=S(()=>{"use strict";Oe();nt=20,ke=1e4,rt=50,z=200,st=300*1e3,ot=10,ae=32*1024,Ue=1024,dt=16,Pe="text/plain",Y="_bidkernel_pending_",at=20,ct=7200*1e3,ut=1e4,lt={auctionStart:m.AUCTION_START,auctionEnd:m.AUCTION_END,bidResponse:m.BID_RESPONSE,bidWin:m.BID_WIN,adRenderFailed:m.AD_RENDER_FAILED,click:m.CLICK,impression:m.IMPRESSION,refresh:m.REFRESH,timeInView:m.TIME_IN_VIEW,viewable:m.VIEWABLE},ft=new Set([m.IMPRESSION,m.BID_WIN,m.CLICK]),P=1800*1e3,ht=200,pt=1e3,yt=50,Ne="_bidkernel_session",Q="_bidkernel_session_ts",Le=1800*1e3,X=null,F=0;ue=class{seenObjects=new WeakMap;seenKeys=new Set;isDuplicate(e,t){if(!t)return!1;if(typeof t=="object"){let r=this.seenObjects.get(t);if(r){if(r.has(e))return!0;r.add(e)}else this.seenObjects.set(t,new Set([e]))}let n=wt(e,t);if(n){if(this.seenKeys.has(n))return!0;if(this.seenKeys.size>=1e3){let r=this.seenKeys.values().next().value;r!==void 0&&this.seenKeys.delete(r)}this.seenKeys.add(n)}return!1}};ce=new WeakMap;typeof window<"u"&&le();N=class i{static activeInstances=new Set;static getActiveInstances(){return i.activeInstances}static initImaInterception(){le()}config;queue=[];errorCount=0;flushTimer=null;boundFlushBeacon;boundVisibilityChange;isEnabled=!1;boundPbjsHandlers=[];pageUrl="";deduper=new ue;consecutiveSendFailures=0;nextSendAllowedAt=0;replayedEventCount=0;immediateFlushScheduled=!1;persistedBatchKeys=[];persistedCleanupTimer=null;intersectionObserver=null;slotViewabilityRecords=new Map;elementToSlotId=new Map;slotRefreshIndices=new Map;slotLastAuctionIds=new Map;pendingThresholdListeners=new Map;slotEmittedImpressionKeys=new Set;cachedWinningBids=new Map;videoDetachCleanups=new Set;auctionBidderOutcomes=new Map;constructor(e){let t=e.endpoint||"",n=!t||It(t)?t:"";this.config={endpoint:n,propertyId:e.propertyId||"",pageviewId:e.pageviewId||L(),sessionId:e.sessionId||vt(),userId:e.userId||"",deviceType:e.deviceType||"desktop",country:e.country||"",region:e.region||"",auctionEnabled:e.auctionEnabled??!0,warningsEnabled:e.warningsEnabled??!0,errorsEnabled:e.errorsEnabled??!0,viewabilityEnabled:e.viewabilityEnabled??!0,logLevel:e.logLevel||"INFO",pbjsGlobalName:e.pbjsGlobalName||"pbjs",attachPbjsListeners:e.attachPbjsListeners??!0},t&&!n&&this.log("ERROR",`Rejected untrusted analytics endpoint ${t}: must be an absolute https:// URL without embedded credentials. Events will not be transmitted.`),this.boundFlushBeacon=()=>{this.flushAllSlotsTimeInView(),this.flushBeacon()},this.boundVisibilityChange=()=>this.handleVisibilityChange()}enable(){if(!this.isEnabled){if(this.isEnabled=!0,i.activeInstances.add(this),this.config.endpoint||this.log("WARN","Endpoint is empty. Analytics events will not be transmitted."),this.config.viewabilityEnabled&&typeof IntersectionObserver<"u"){this.intersectionObserver=new IntersectionObserver(this.handleIntersection.bind(this),{threshold:[.5]});for(let e of this.slotViewabilityRecords.values())e.element&&this.intersectionObserver.observe(e.element)}if(this.config.attachPbjsListeners){let t=(typeof window<"u"?window:{})[this.config.pbjsGlobalName]||{};if(typeof t.onEvent=="function"){this.log("DEBUG","Attaching event listeners to pbjs");let n=[["auctionInit",this.handleAuctionInit.bind(this)],["auctionEnd",this.handleAuctionEnd.bind(this)],["bidRequested",this.handleBidRequested.bind(this)],["bidResponse",this.handleBidResponse.bind(this)],["bidTimeout",this.handleBidTimeout.bind(this)],["bidWon",this.handleBidWon.bind(this)],["noBid",this.handleNoBid.bind(this)],["adRenderFailed",this.handleAdRenderFailed.bind(this)],["adRenderSucceeded",this.handleAdRenderSucceeded.bind(this)]];for(let[r,s]of n)t.onEvent(r,s),this.boundPbjsHandlers.push({event:r,handler:s})}else this.log("WARN","pbjs.onEvent is not defined. Prebid analytics will not function.");if(typeof t.getEvents=="function")try{let n=t.getEvents();if(Array.isArray(n)){let r=n.slice(this.replayedEventCount);if(this.replayedEventCount=n.length,r.length>0){this.log("DEBUG",`Replaying ${r.length} historical events from pbjs.getEvents()`);let s={auctionInit:this.handleAuctionInit.bind(this),auctionEnd:this.handleAuctionEnd.bind(this),bidRequested:this.handleBidRequested.bind(this),bidResponse:this.handleBidResponse.bind(this),bidTimeout:this.handleBidTimeout.bind(this),bidWon:this.handleBidWon.bind(this),noBid:this.handleNoBid.bind(this),adRenderFailed:this.handleAdRenderFailed.bind(this),adRenderSucceeded:this.handleAdRenderSucceeded.bind(this)};for(let o of r){if(!o)continue;let d=o.eventType||o.event||o.name,a=o.args!==void 0?o.args:o.data!==void 0?o.data:o,u=s[d];u&&u(a)}}}}catch(n){this.log("WARN","Failed to replay historical events from pbjs.getEvents()",n)}}if(typeof window<"u"){if(!this.pageUrl)try{let e=new URL(window.location.href);this.pageUrl=e.origin+e.pathname}catch{this.pageUrl=window.location.href}window.addEventListener("pagehide",this.boundFlushBeacon),typeof document<"u"&&document.addEventListener("visibilitychange",this.boundVisibilityChange),this.flushTimer=setInterval(()=>this.flush(),ke),this.resendPersistedBatches(),le(),window.google?.ima&&$(window.google.ima)}}}disable(){if(this.isEnabled){this.flushAllSlotsTimeInView(),this.isEnabled=!1,i.activeInstances.delete(this);for(let e of this.slotViewabilityRecords.values()){e.dwellTimer&&(clearTimeout(e.dwellTimer),e.dwellTimer=null,e.dwellStartedAt=null);for(let t of e.thresholdListeners)t.timer&&(clearTimeout(t.timer),t.timer=null)}this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=null),this.slotViewabilityRecords.clear(),this.elementToSlotId.clear();for(let e of this.videoDetachCleanups)try{e()}catch{}if(this.videoDetachCleanups.clear(),this.cachedWinningBids.clear(),this.slotEmittedImpressionKeys.clear(),this.slotLastAuctionIds.clear(),this.auctionBidderOutcomes.clear(),this.flushTimer&&(clearInterval(this.flushTimer),this.flushTimer=null),this.persistedCleanupTimer&&(clearTimeout(this.persistedCleanupTimer),this.persistedCleanupTimer=null),typeof window<"u"&&(window.removeEventListener("pagehide",this.boundFlushBeacon),typeof document<"u"&&document.removeEventListener("visibilitychange",this.boundVisibilityChange)),this.boundPbjsHandlers.length>0){let t=(typeof window<"u"?window:{})[this.config.pbjsGlobalName]||{};if(typeof t.offEvent=="function")for(let{event:n,handler:r}of this.boundPbjsHandlers)t.offEvent(n,r);this.boundPbjsHandlers=[]}this.flush()}}handleVisibilityChange(){if(!(typeof document>"u")){if(document.visibilityState==="hidden"){let e=typeof performance<"u"&&performance.now?performance.now():Date.now();for(let t of this.slotViewabilityRecords.values()){t.inView&&t.lastEnteredViewAt!==null&&(t.accumulatedTimeInViewMs+=Math.max(0,e-t.lastEnteredViewAt),t.lastEnteredViewAt=null,this.checkThresholdListeners(t)),t.dwellTimer&&(clearTimeout(t.dwellTimer),t.dwellTimer=null,t.dwellStartedAt=null);for(let r of t.thresholdListeners)r.timer&&(clearTimeout(r.timer),r.timer=null);let n=Math.round(t.accumulatedTimeInViewMs);n>0&&this.enqueue(m.TIME_IN_VIEW,"timeInView",{auctionId:t.auctionId,transactionId:t.transactionId,adUnitCode:t.adUnitCode,viewableDurationMs:n,bid:t.bidPayload,metadata:{...t.metadata,refresh_index:String(t.refreshIndex)}})}this.flushBeacon()}else if(document.visibilityState==="visible"){let e=typeof performance<"u"&&performance.now?performance.now():Date.now();for(let t of this.slotViewabilityRecords.values())if(t.inView){if(t.lastEnteredViewAt=e,!t.viewableFired&&t.dwellTimer===null){let n=t.mediaType==="video"?2e3:1e3;t.dwellStartedAt=e,t.dwellTimer=setTimeout(()=>{this.handleDwellComplete(t)},n)}this.scheduleThresholdTimers(t)}}}}handleIntersection(e){for(let t of e){let n=this.elementToSlotId.get(t.target);if(!n){for(let a of i.activeInstances)if(a!==this&&a.elementToSlotId.has(t.target)){a.handleIntersection([t]);break}continue}let r=this.slotViewabilityRecords.get(n);if(!r)continue;let s=t.isIntersecting&&(t.intersectionRatio===void 0||t.intersectionRatio>=.5),o=typeof document>"u"||document.visibilityState==="visible",d=typeof performance<"u"&&performance.now?performance.now():Date.now();if(s){if(!r.inView&&(r.inView=!0,o)){if(r.lastEnteredViewAt=d,!r.viewableFired&&r.dwellTimer===null){let a=r.mediaType==="video"?2e3:1e3;r.dwellStartedAt=d,r.dwellTimer=setTimeout(()=>{this.handleDwellComplete(r)},a)}this.scheduleThresholdTimers(r)}}else{r.inView&&(r.lastEnteredViewAt!==null&&(r.accumulatedTimeInViewMs+=Math.max(0,d-r.lastEnteredViewAt),r.lastEnteredViewAt=null),r.inView=!1,this.checkThresholdListeners(r)),r.dwellTimer!==null&&(clearTimeout(r.dwellTimer),r.dwellTimer=null,r.dwellStartedAt=null);for(let a of r.thresholdListeners)a.timer&&(clearTimeout(a.timer),a.timer=null)}}}handleDwellComplete(e){e.dwellTimer=null,e.dwellStartedAt=null,e.inView&&(typeof document<"u"&&document.visibilityState==="hidden"||e.viewableFired||(e.viewableFired=!0,this.enqueue(m.VIEWABLE,"viewable",{auctionId:e.auctionId,transactionId:e.transactionId,adUnitCode:e.adUnitCode,bid:e.bidPayload,metadata:{...e.metadata,refresh_index:String(e.refreshIndex)}})))}scheduleThresholdTimers(e){if(!e.inView||typeof document<"u"&&document.visibilityState==="hidden")return;let t=this.getCurrentTimeInView(e);for(let n of e.thresholdListeners)if(!n.fired)if(t>=n.thresholdMs){n.fired=!0,n.timer&&(clearTimeout(n.timer),n.timer=null);try{n.callback(e.slotId,t)}catch(r){this.log("ERROR","Error in threshold listener callback",r)}}else{n.timer&&clearTimeout(n.timer);let r=n.thresholdMs-t;n.timer=setTimeout(()=>{if(n.timer=null,!n.fired&&e.inView&&(typeof document>"u"||document.visibilityState==="visible")){let s=this.getCurrentTimeInView(e);if(s>=n.thresholdMs){n.fired=!0;try{n.callback(e.slotId,s)}catch(o){this.log("ERROR","Error in threshold listener callback",o)}}}},r)}}checkThresholdListeners(e){let t=this.getCurrentTimeInView(e);for(let n of e.thresholdListeners)if(!n.fired&&t>=n.thresholdMs){n.fired=!0,n.timer&&(clearTimeout(n.timer),n.timer=null);try{n.callback(e.slotId,t)}catch(r){this.log("ERROR","Error in threshold listener callback",r)}}}getCurrentTimeInView(e){let t=e.accumulatedTimeInViewMs;if(e.inView&&e.lastEnteredViewAt!==null){let n=typeof performance<"u"&&performance.now?performance.now():Date.now();t+=Math.max(0,n-e.lastEnteredViewAt)}return t}flushSlotTimeInView(e){let t=this.slotViewabilityRecords.get(e);if(!t)return;if(t.inView&&t.lastEnteredViewAt!==null){let r=typeof performance<"u"&&performance.now?performance.now():Date.now();t.accumulatedTimeInViewMs+=Math.max(0,r-t.lastEnteredViewAt),t.lastEnteredViewAt=null}let n=Math.round(t.accumulatedTimeInViewMs);n>0&&this.enqueue(m.TIME_IN_VIEW,"timeInView",{auctionId:t.auctionId,transactionId:t.transactionId,adUnitCode:t.adUnitCode,viewableDurationMs:n,bid:t.bidPayload,metadata:{...t.metadata,refresh_index:String(t.refreshIndex)}}),t.accumulatedTimeInViewMs=0}flushAllSlotsTimeInView(){for(let e of Array.from(this.slotViewabilityRecords.keys()))this.flushSlotTimeInView(e)}observeSlot(e,t,n){if(!this.config.viewabilityEnabled)return;let r=null;if(typeof e=="string"){if(typeof document<"u"){try{r=document.querySelector(e)||document.getElementById(e)}catch{r=document.getElementById(e)}r||(r=document.getElementById(e))}}else r=e;let s=t||n?.adUnitCode||(r?r.id:"")||L(),o=this.slotViewabilityRecords.get(s);if(o){if(n?.refreshIndex===void 0||n.refreshIndex>o.refreshIndex){this.flushSlotTimeInView(s);let a=n?.refreshIndex!==void 0?n.refreshIndex:(this.slotRefreshIndices.get(s)??o.refreshIndex)+1;this.slotRefreshIndices.set(s,a),n?.emitRefreshEvent!==!1&&this.enqueue(m.REFRESH,"refresh",{auctionId:n?.auctionId||o.auctionId,transactionId:n?.transactionId||o.transactionId,adUnitCode:s,bid:n?.bid??o.bidPayload,metadata:{...n?.metadata,refresh_index:String(a)}}),o.dwellTimer&&(clearTimeout(o.dwellTimer),o.dwellTimer=null,o.dwellStartedAt=null);for(let h of o.thresholdListeners)h.fired=!1,h.timer&&(clearTimeout(h.timer),h.timer=null);o.viewableFired=!1,o.accumulatedTimeInViewMs=0;let u=typeof performance<"u"&&performance.now?performance.now():Date.now();if(o.lastEnteredViewAt=o.inView?u:null,o.refreshIndex=a,o.auctionId=n?.auctionId||o.auctionId,o.transactionId=n?.transactionId||o.transactionId,o.mediaType=n?.mediaType||o.mediaType||"banner",o.bidPayload=n?.bid!==void 0?n.bid:o.bidPayload,o.metadata=n?.metadata??o.metadata,o.inView&&(typeof document>"u"||document.visibilityState==="visible")){let h=o.mediaType==="video"?2e3:1e3;o.dwellStartedAt=u,o.dwellTimer=setTimeout(()=>{this.handleDwellComplete(o)},h),this.scheduleThresholdTimers(o)}}else o.auctionId=n?.auctionId||o.auctionId,o.transactionId=n?.transactionId||o.transactionId,o.mediaType=n?.mediaType||o.mediaType,n?.bid!==void 0&&(o.bidPayload=n.bid),n?.metadata!==void 0&&(o.metadata=n.metadata);n?.auctionId&&this.slotLastAuctionIds.set(s,n.auctionId),r&&(o.element&&o.element!==r&&this.intersectionObserver&&(this.intersectionObserver.unobserve(o.element),this.elementToSlotId.delete(o.element)),o.element=r,this.elementToSlotId.set(r,s),this.intersectionObserver?.observe(r))}else{let d=n?.refreshIndex??this.slotRefreshIndices.get(s)??0;this.slotRefreshIndices.set(s,d),n?.auctionId&&this.slotLastAuctionIds.set(s,n.auctionId);let a=this.pendingThresholdListeners.get(s)||new Set;this.pendingThresholdListeners.delete(s);let u={slotId:s,element:r,adUnitCode:n?.adUnitCode||s,auctionId:n?.auctionId||"",transactionId:n?.transactionId||"",mediaType:n?.mediaType||"banner",bidPayload:n?.bid,metadata:n?.metadata,refreshIndex:d,inView:!1,lastEnteredViewAt:null,accumulatedTimeInViewMs:0,viewableFired:!1,dwellTimer:null,dwellStartedAt:null,thresholdListeners:a};this.slotViewabilityRecords.set(s,u),r&&(this.elementToSlotId.set(r,s),this.intersectionObserver?.observe(r))}}unobserveSlot(e){let t=this.slotViewabilityRecords.get(e);if(t){this.flushSlotTimeInView(e),t.dwellTimer&&(clearTimeout(t.dwellTimer),t.dwellTimer=null,t.dwellStartedAt=null);for(let n of t.thresholdListeners)n.timer&&(clearTimeout(n.timer),n.timer=null);t.thresholdListeners=new Set,t.element&&this.intersectionObserver&&(this.intersectionObserver.unobserve(t.element),this.elementToSlotId.delete(t.element),t.element=null),t.inView=!1,t.lastEnteredViewAt=null}}destroySlot(e){this.unobserveSlot(e),this.slotViewabilityRecords.delete(e),this.slotRefreshIndices.delete(e),this.slotLastAuctionIds.delete(e),this.pendingThresholdListeners.delete(e);let t=`${l(e)}:`;for(let r of Array.from(this.slotEmittedImpressionKeys))(r===e||r.startsWith(t))&&this.slotEmittedImpressionKeys.delete(r);let n=this.cachedWinningBids.get(e);n&&this.deleteCachedBidEntry(n)}getCachedBid(e){let t=this.cachedWinningBids.get(e);if(t){if(Date.now()-t.timestamp>P){this.deleteCachedBidEntry(t);return}return t}}deleteCachedBidEntry(e){for(let[t,n]of Array.from(this.cachedWinningBids))n===e&&this.cachedWinningBids.delete(t)}pruneCachedWinningBids(){let e=Date.now();for(let[t,n]of Array.from(this.cachedWinningBids))e-n.timestamp>P&&this.cachedWinningBids.delete(t);for(;this.cachedWinningBids.size>ht;){let t=this.cachedWinningBids.keys().next();if(t.done)break;this.cachedWinningBids.delete(t.value)}}findCachedWinningBid(e){let t=Date.now(),n=o=>this.hasImpressionEmitted(o.adUnitCode,void 0,o.auctionId,o.bidTrace.creativeId);if(e?.creativeId||e?.adId){for(let o of Array.from(this.cachedWinningBids.values()))if(!(t-o.timestamp>P)&&(e.creativeId&&(o.bidTrace.creativeId===e.creativeId||o.rawBid?.creativeId===e.creativeId)||e.adId&&(o.rawBid?.adId===e.adId||o.adUnitCode===e.adId)))return o}let r;if(e?.mediaType){for(let d of Array.from(this.cachedWinningBids.values())){if(t-d.timestamp>P)continue;(d.bidTrace.mediaType===e.mediaType||d.rawBid?.mediaType===e.mediaType||e.mediaType==="video"&&d.rawBid?.mediaTypes?.video!==void 0)&&(n(d)||(!r||d.timestamp<r.timestamp)&&(r=d))}if(r)return r;let o;for(let d of Array.from(this.cachedWinningBids.values())){if(t-d.timestamp>P)continue;(d.bidTrace.mediaType===e.mediaType||d.rawBid?.mediaType===e.mediaType||e.mediaType==="video"&&d.rawBid?.mediaTypes?.video!==void 0)&&(!o||d.timestamp>o.timestamp)&&(o=d)}if(o)return o}for(let o of Array.from(this.cachedWinningBids.values()))t-o.timestamp>P||n(o)||(!r||o.timestamp>r.timestamp)&&(r=o);if(r)return r;let s;for(let o of Array.from(this.cachedWinningBids.values()))t-o.timestamp>P||(!s||o.timestamp>s.timestamp)&&(s=o);return s}addImpressionKey(e){if(!this.slotEmittedImpressionKeys.has(e)){for(;this.slotEmittedImpressionKeys.size>=pt;){let t=this.slotEmittedImpressionKeys.values().next();if(t.done)break;this.slotEmittedImpressionKeys.delete(t.value)}this.slotEmittedImpressionKeys.add(e)}}getOrCreateAuctionOutcomes(e){let t=this.auctionBidderOutcomes.get(e);for(t||(t=new Map,this.auctionBidderOutcomes.set(e,t));this.auctionBidderOutcomes.size>yt;){let n=this.auctionBidderOutcomes.keys().next();if(n.done||n.value===e)break;this.auctionBidderOutcomes.delete(n.value)}return t}hasImpressionEmitted(e,t,n,r){let s=t??this.slotRefreshIndices.get(e)??0,o=`${l(e)}:${s}`;return r?n?this.slotEmittedImpressionKeys.has(`${o}:auc:${l(n)}:${l(r)}`)||this.slotEmittedImpressionKeys.has(`${o}:${l(r)}`):this.slotEmittedImpressionKeys.has(`${o}:${l(r)}`):n?this.slotEmittedImpressionKeys.has(`${o}:auc:${l(n)}`):this.slotEmittedImpressionKeys.has(o)}markImpressionEmitted(e,t,n,r){let s=`${l(e)}:${t}`;this.addImpressionKey(s),r&&this.addImpressionKey(`${s}:${l(r)}`),n&&(this.addImpressionKey(`${s}:auc:${l(n)}`),r&&this.addImpressionKey(`${s}:auc:${l(n)}:${l(r)}`))}recordImpression(e,t){if(!this.isEnabled)return!1;let n=e||t?.adUnitCode||"",r=t?.adUnitCode||n,s=(t?.auctionId&&n?this.getCachedBid(`${t.auctionId}:${n}`):void 0)||(t?.auctionId&&r?this.getCachedBid(`${t.auctionId}:${r}`):void 0)||(n?this.getCachedBid(n):void 0)||(r?this.getCachedBid(r):void 0),o=t?.bid||s?.rawBid||{},d=t?.auctionId||o.auctionId||s?.auctionId||"",a=t?.transactionId||o.transactionId||s?.transactionId||"",u=o.creativeId||s?.bidTrace?.creativeId||t?.bid?.creativeId||"",h=t?.mediaType||o.mediaType||s?.bidTrace?.mediaType||"banner",b=n||r,f=(n?this.slotViewabilityRecords.get(n):void 0)||(r?this.slotViewabilityRecords.get(r):void 0),T=b?this.slotLastAuctionIds.get(b)||(f?f.auctionId:void 0):void 0,v=!!(b&&d&&T&&T!==d&&t?.refreshIndex===void 0),I={bidder:o.bidderCode||o.bidder||s?.bidTrace?.bidder||"",cpm:Number.isFinite(o.originalCpm)?o.originalCpm:Number.isFinite(o.cpm)?o.cpm:s?.bidTrace?.cpm??0,currency:o.originalCurrency??o.currency??s?.bidTrace?.currency??"USD",...O(o).width?O(o):s?.bidTrace?{width:s.bidTrace.width,height:s.bidTrace.height}:O(o),dealId:o.dealId||s?.bidTrace?.dealId||"",mediaType:h,latencyMs:Number.isFinite(o.timeToRespond)?o.timeToRespond:s?.bidTrace?.latencyMs??0,advertiserDomain:o.meta?.advertiserDomains?.[0]||s?.bidTrace?.advertiserDomain||"",creativeId:o.creativeId||s?.bidTrace?.creativeId||""};if(v&&b){this.flushSlotTimeInView(b);let w=(this.slotRefreshIndices.get(b)??(f?f.refreshIndex:0))+1;this.slotRefreshIndices.set(b,w),this.slotLastAuctionIds.set(b,d),f&&(f.refreshIndex=w,f.auctionId=d,f.transactionId=a,f.bidPayload=I,f.viewableFired=!1,f.accumulatedTimeInViewMs=0),this.enqueue(m.REFRESH,"refresh",{auctionId:d,transactionId:a,adUnitCode:b,bid:I,metadata:{...t?.metadata,refresh_index:String(w)}})}else b&&(d&&this.slotLastAuctionIds.set(b,d),this.slotRefreshIndices.has(b)||this.slotRefreshIndices.set(b,0));let B=t?.refreshIndex??(n?this.slotRefreshIndices.get(n)??(r?this.slotRefreshIndices.get(r):void 0)??(f?f.refreshIndex:0):0);return n&&this.hasImpressionEmitted(n,B,d,u)||r&&r!==n&&this.hasImpressionEmitted(r,B,d,u)?(this.log("DEBUG",`Impression already emitted for slot ${n||r} in cycle ${B}`),!1):(n&&this.markImpressionEmitted(n,B,d,u),r&&r!==n&&this.markImpressionEmitted(r,B,d,u),this.enqueue(m.IMPRESSION,"impression",{auctionId:d,transactionId:a,adUnitCode:r,bid:I,metadata:{...t?.metadata,refresh_index:String(B)}}),f&&(!f.bidPayload&&I&&(f.bidPayload=I),!f.auctionId&&d&&(f.auctionId=d),!f.transactionId&&a&&(f.transactionId=a)),!0)}attachImaAdsManager(e,t){if(!e||typeof e.addEventListener!="function")return this.log("WARN","Invalid AdsManager passed to attachImaAdsManager"),()=>{};if(!e.__bidkernelAttachedInstances)try{Object.defineProperty(e,"__bidkernelAttachedInstances",{value:new Set,configurable:!0,writable:!0})}catch{e.__bidkernelAttachedInstances=new Set}if(e.__bidkernelAttachedInstances.has(this))return()=>{};e.__bidkernelAttachedInstances.add(this);let n=t?.slotId||t?.adUnitCode||"video",r=t?.adUnitCode||n,s=t?.auctionId||"",o=t?.transactionId||"",d=p=>{let c=(s?this.getCachedBid(`${s}:${r}`):void 0)||(s&&n!==r?this.getCachedBid(`${s}:${n}`):void 0)||(r!=="video"?this.getCachedBid(r):void 0)||(n!==r&&n!=="video"?this.getCachedBid(n):void 0);return c||(c=this.findCachedWinningBid({creativeId:p?.creativeId,adId:p?.adId,mediaType:"video"})),c},a=!1,u=p=>{a=!0,this.log("DEBUG","IMA AdEvent.STARTED / IMPRESSION received",p);let c=typeof p?.getAd=="function"?p.getAd():p?.ad,y={};c&&(y.creativeId=(typeof c.getCreativeId=="function"?c.getCreativeId():c.creativeId)||"",y.adId=(typeof c.getAdId=="function"?c.getAdId():c.id)||"",y.title=(typeof c.getTitle=="function"?c.getTitle():c.title)||"",y.duration=typeof c.getDuration=="function"?c.getDuration():c.duration,y.advertiserName=typeof c.getAdvertiserName=="function"?c.getAdvertiserName():"");let g=d(y),A=t?.slotId&&t.slotId!=="video"?t.slotId:t?.adUnitCode&&t.adUnitCode!=="video"?t.adUnitCode:g?.adUnitCode||t?.slotId||t?.adUnitCode||"video",_=t?.adUnitCode&&t.adUnitCode!=="video"?t.adUnitCode:g?.adUnitCode||A,U=s||g?.auctionId||"",He=o||g?.transactionId||"",he={...g?.rawBid||t?.bid,mediaType:"video",creativeId:y.creativeId||g?.bidTrace?.creativeId||t?.bid?.creativeId||""};if(this.recordImpression(A,{adUnitCode:_,auctionId:U,transactionId:He,mediaType:"video",bid:he,metadata:{...t?.metadata,media_type:"video",...y.title?{ad_title:y.title}:{},...Number.isFinite(y.duration)?{ad_duration_s:String(y.duration)}:{}}})&&t?.onImpression)try{t.onImpression(A,{ad:c,bid:he})}catch(Ge){this.log("ERROR","Error in onImpression callback",Ge)}},h=p=>{if(this.log("DEBUG",`IMA AdEvent milestone: ${p}`),t?.onMilestone)try{t.onMilestone(p,n)}catch(c){this.log("ERROR","Error in onMilestone callback",c)}},b=p=>{this.log("DEBUG","IMA AdEvent.CLICK received",p);let c=d(),y=t?.adUnitCode&&t.adUnitCode!=="video"?t.adUnitCode:c?.adUnitCode||n;this.enqueue(m.CLICK,"click",{auctionId:s||c?.auctionId,transactionId:o||c?.transactionId,adUnitCode:y,bid:c?.bidTrace||t?.bid,metadata:{...t?.metadata,media_type:"video"}})},f=p=>{this.log("WARN","IMA AdErrorEvent received",p);let c=typeof p?.getError=="function"?p.getError():p?.error||p,y=(c&&typeof c.getMessage=="function"?c.getMessage():c?.message)||String(c||"IMA ad error"),g=(c&&typeof c.getErrorCode=="function"?c.getErrorCode():c?.code)||"",A=d(),_=t?.adUnitCode&&t.adUnitCode!=="video"?t.adUnitCode:A?.adUnitCode||n;if(this.enqueue(m.AD_RENDER_FAILED,"adRenderFailed",{auctionId:s||A?.auctionId,transactionId:o||A?.transactionId,adUnitCode:_,bid:A?.bidTrace||t?.bid,metadata:{...t?.metadata,reason:a?"ima_playback_error":"ima_ad_error",playback_phase:a?"post_start":"pre_start",message:y,...g?{ima_error_code:String(g)}:{}},error:typeof c=="object"?c:new Error(y)}),t?.onError)try{t.onError(c)}catch(U){this.log("ERROR","Error in onError callback",U)}},T=typeof window<"u"?window.google?.ima:void 0,v=T?.AdEvent?.Type||{},I=T?.AdErrorEvent?.Type||{},B=[{type:v.STARTED||"started",handler:u},{type:v.IMPRESSION||"impression",handler:u},{type:v.FIRST_QUARTILE||"firstQuartile",handler:()=>h("firstQuartile")},{type:v.MIDPOINT||"midpoint",handler:()=>h("midpoint")},{type:v.THIRD_QUARTILE||"thirdQuartile",handler:()=>h("thirdQuartile")},{type:v.COMPLETE||"complete",handler:()=>h("complete")},{type:v.CLICK||"click",handler:b},{type:I.AD_ERROR||"adError",handler:f}],k=new Set,w=[];for(let p of B)k.has(p.type)||(k.add(p.type),w.push(p));for(let{type:p,handler:c}of w)try{e.addEventListener(p,c)}catch{}let E=()=>{e.__bidkernelAttachedInstances?.delete(this);for(let{type:p,handler:c}of w)try{e.removeEventListener(p,c)}catch{}this.videoDetachCleanups.delete(E)};return this.videoDetachCleanups.add(E),E}attachVideoPlayer(e,t){if(!e)return this.log("WARN","attachVideoPlayer called with null/undefined target"),()=>{};let n=null;if(typeof e=="string"){if(typeof document<"u")try{n=document.querySelector(e)||document.getElementById(e)}catch{n=document.getElementById(e)}}else if(typeof HTMLElement<"u"&&e instanceof HTMLElement)n=e;else if(e&&typeof e=="object"&&e.nodeType===1)n=e;else{if(typeof e.addEventListener=="function"&&(typeof e.init=="function"||typeof e.start=="function"||typeof e.getCuePoints=="function"||typeof e.getVolume=="function"||e.__imaAdsManager))return this.attachImaAdsManager(e,t);e&&typeof e.addEventListener=="function"&&(n=e)}let r=t?.slotId||t?.adUnitCode||(n?n.id:"")||"video",s=t?.adUnitCode||r,o=t?.auctionId||"",d=t?.transactionId||"",a=()=>(o?this.getCachedBid(`${o}:${s}`):void 0)||(o&&r!==s?this.getCachedBid(`${o}:${r}`):void 0)||this.getCachedBid(s)||(r!==s?this.getCachedBid(r):void 0),u=null;n&&(n.tagName&&n.tagName.toLowerCase()==="video"?u=n:u=n.querySelector("video"));let h={q1:!1,q2:!1,q3:!1,q4:!1},b=c=>{let y=c||u||(n?.querySelector?n.querySelector("video"):null),g=a(),A={...g?.rawBid||t?.bid,mediaType:"video"};if(this.recordImpression(r,{adUnitCode:s,auctionId:o||g?.auctionId,transactionId:d||g?.transactionId,mediaType:"video",bid:A,metadata:{...t?.metadata,media_type:"video",...y&&Number.isFinite(y.duration)?{video_duration_s:String(Math.round(y.duration))}:{}}})&&t?.onImpression)try{t.onImpression(r,{element:y||n,bid:A})}catch(U){this.log("ERROR","Error in onImpression callback",U)}},f=c=>{this.log("DEBUG","HTML5 video playing event received");let y=c?.target instanceof HTMLVideoElement?c.target:u;b(y)},T=c=>{let y=c?.target instanceof HTMLVideoElement?c.target:u;if(y&&y.currentTime>0&&(b(y),Number.isFinite(y.duration)&&y.duration>0)){let g=y.currentTime/y.duration;g>=.25&&!h.q1&&(h.q1=!0,t?.onMilestone?.("firstQuartile",r)),g>=.5&&!h.q2&&(h.q2=!0,t?.onMilestone?.("midpoint",r)),g>=.75&&!h.q3&&(h.q3=!0,t?.onMilestone?.("thirdQuartile",r))}},v=()=>{h.q4||(h.q4=!0,t?.onMilestone?.("complete",r))},I=c=>{let g=(c?.target instanceof HTMLVideoElement?c.target:u)?.error||u?.error,A=a(),_=g?`HTML5 video error code ${g.code}: ${g.message}`:"Video playback error";if(this.log("WARN",_),this.enqueue(m.AD_RENDER_FAILED,"adRenderFailed",{auctionId:o||A?.auctionId,transactionId:d||A?.transactionId,adUnitCode:s,bid:A?.bidTrace||t?.bid,metadata:{...t?.metadata,reason:"html5_video_error",message:_,...g?.code?{video_error_code:String(g.code)}:{}},error:g?new Error(_):void 0}),t?.onError)try{t.onError(g)}catch(U){this.log("ERROR","Error in onError callback",U)}},B=c=>{c.addEventListener("playing",f),c.addEventListener("play",f),c.addEventListener("timeupdate",T),c.addEventListener("ended",v),c.addEventListener("error",I)},k=c=>{c.removeEventListener("playing",f),c.removeEventListener("play",f),c.removeEventListener("timeupdate",T),c.removeEventListener("ended",v),c.removeEventListener("error",I)},w=null;n&&n!==u&&(n.addEventListener("playing",f,!0),n.addEventListener("play",f,!0),n.addEventListener("timeupdate",T,!0),n.addEventListener("ended",v,!0),n.addEventListener("error",I,!0)),u&&B(u),n&&n.tagName?.toLowerCase()!=="video"&&typeof MutationObserver<"u"&&(w=new MutationObserver(()=>{let c=n.querySelector("video");c&&c!==u&&(u&&k(u),u=c,u&&B(u))}),w.observe(n,{childList:!0,subtree:!0}));let E=a();t?.trackViewability!==!1&&n&&this.observeSlot(n,r,{adUnitCode:s,auctionId:o||E?.auctionId,transactionId:d||E?.transactionId,mediaType:"video",bid:E?.bidTrace||t?.bid,metadata:t?.metadata,emitRefreshEvent:!1});let p=()=>{w&&(w.disconnect(),w=null),n&&n!==u&&(n.removeEventListener("playing",f,!0),n.removeEventListener("play",f,!0),n.removeEventListener("timeupdate",T,!0),n.removeEventListener("ended",v,!0),n.removeEventListener("error",I,!0)),u&&k(u),this.videoDetachCleanups.delete(p)};return this.videoDetachCleanups.add(p),p}onTimeInViewThreshold(e,t,n){let r={thresholdMs:t,callback:n,timer:null,fired:!1},s=this.slotViewabilityRecords.get(e);if(s){s.thresholdListeners.add(r);let o=this.getCurrentTimeInView(s);if(o>=t){r.fired=!0;try{n(e,o)}catch(d){this.log("ERROR","Error in threshold callback",d)}}else if(s.inView&&(typeof document>"u"||document.visibilityState==="visible")){let d=t-o;r.timer=setTimeout(()=>{if(r.timer=null,!r.fired&&s.inView&&(typeof document>"u"||document.visibilityState==="visible")){let a=this.getCurrentTimeInView(s);if(a>=t){r.fired=!0;try{n(e,a)}catch(u){this.log("ERROR","Error in threshold callback",u)}}}},d)}}else this.pendingThresholdListeners.has(e)||this.pendingThresholdListeners.set(e,new Set),this.pendingThresholdListeners.get(e).add(r);return()=>{r.timer&&(clearTimeout(r.timer),r.timer=null),s&&s.thresholdListeners.delete(r);let o=this.pendingThresholdListeners.get(e);o&&o.delete(r)}}getViewabilityState(e){let t=this.slotViewabilityRecords.get(e);if(!t)return;let n=Math.round(this.getCurrentTimeInView(t));return{inView:t.inView,viewable:t.viewableFired,timeInViewMs:n,refreshIndex:t.refreshIndex}}getEndpoint(){return this.config.endpoint}getRefreshIndex(e){return this.slotRefreshIndices.get(e)??0}triggerSlotRefresh(e,t){let n=this.slotViewabilityRecords.get(e);n&&n.element&&this.observeSlot(n.element,e,t)}trackRawEvent(e,t,n){let r=lt[t]??(e==="ERROR"?m.ERROR:m.TRACE_EVENT_TYPE_UNSPECIFIED);this.enqueue(r,t,n,e)}setUserId(e){this.config.userId=e}setSessionId(e){this.config.sessionId=e}navigate(e,t){if(this.disable(),this.slotRefreshIndices.clear(),this.pendingThresholdListeners.clear(),this.config.pageviewId=e||L(),t)try{let n=new URL(t);this.pageUrl=n.origin+n.pathname}catch{this.pageUrl=t}else this.pageUrl="";Ve(),this.enable()}handleAuctionInit(e){if(this.isDuplicate("auctionInit",e))return;this.log("DEBUG","auctionInit",e);let t=e.auctionId||"";t&&(this.auctionBidderOutcomes.delete(t),this.getOrCreateAuctionOutcomes(t)),this.enqueue(m.AUCTION_START,"auctionStart",{auctionId:t,transactionId:e.transactionId||""})}handleAuctionEnd(e){if(this.isDuplicate("auctionEnd",e))return;this.log("DEBUG","auctionEnd",e);let t=e.auctionId||"",n=t?this.auctionBidderOutcomes.get(t):void 0,r=n?Array.from(n.values()):[];t&&this.auctionBidderOutcomes.delete(t),this.enqueue(m.AUCTION_END,"auctionEnd",{auctionId:t,transactionId:e.transactionId||"",bidderOutcomes:r})}handleBidRequested(e){if(this.isDuplicate("bidRequested",e))return;this.log("DEBUG","bidRequested",e);let t=e.auctionId||"",n=e.bidderCode||e.bidder||"";if(!t||!n)return;let r=this.getOrCreateAuctionOutcomes(t);Array.isArray(e.bids)&&e.bids.forEach(s=>{let o=s.adUnitCode||"",d=Object.keys(s.mediaTypes||{}),a=d.length>0?d[0]:s.mediaType||"banner",u=`${n}:${o}`;r.has(u)||r.set(u,{bidder:n,adUnitCode:o,mediaType:a,outcome:D.BIDDER_OUTCOME_NO_RESPONSE,latencyMs:0})})}handleBidResponse(e){if(this.isDuplicate("bidResponse",e))return;this.log("DEBUG","bidResponse",e);let t=e.auctionId||"",n=e.bidderCode||e.bidder||"",r=e.adUnitCode||"",s=Number.isFinite(e.originalCpm)?e.originalCpm:Number.isFinite(e.cpm)?e.cpm:0,o=Number.isFinite(e.timeToRespond)?e.timeToRespond:0,d=Object.keys(e.mediaTypes||{}),a=e.mediaType||(e.mediaTypes?.video?"video":d.length>0?d[0]:"banner");if(t&&n){let u=this.getOrCreateAuctionOutcomes(t),h=`${n}:${r}`,b=u.get(h),f=s>0?D.BIDDER_OUTCOME_BID:D.BIDDER_OUTCOME_NO_BID;b?(b.outcome=f,b.latencyMs=o,a&&(b.mediaType=a)):u.set(h,{bidder:n,adUnitCode:r,mediaType:a,outcome:f,latencyMs:o})}s>0&&this.enqueue(m.BID_RESPONSE,"bidResponse",{auctionId:t,transactionId:e.transactionId||"",adUnitCode:r,bid:{bidder:n,cpm:s,currency:e.originalCurrency??e.currency??"USD",...O(e),dealId:e.dealId||"",mediaType:a,latencyMs:o,advertiserDomain:e.meta?.advertiserDomains?.[0]||"",creativeId:e.creativeId||""}})}handleBidTimeout(e){if(this.isDuplicate("bidTimeout",e))return;this.log("DEBUG","bidTimeout",e);let t=Array.isArray(e)?e:e?[e]:[];for(let n of t){let r=n.auctionId||"",s=n.bidderCode||n.bidder||"",o=n.adUnitCode||"",d=Number.isFinite(n.timeout)?n.timeout:0;if(r&&s){let a=this.getOrCreateAuctionOutcomes(r),u=`${s}:${o}`,h=a.get(u);h?(h.outcome=D.BIDDER_OUTCOME_TIMEOUT,d>0&&(h.latencyMs=d)):a.set(u,{bidder:s,adUnitCode:o,mediaType:"banner",outcome:D.BIDDER_OUTCOME_TIMEOUT,latencyMs:d})}}}handleBidWon(e){if(this.isDuplicate("bidWon",e))return;this.log("DEBUG","bidWon",e);let t=e.auctionId||"",n=e.transactionId||"",r=e.adUnitCode||e.adId||"",s=Object.keys(e.mediaTypes||{}),o=e.mediaType||(e.mediaTypes?.video?"video":s.length>0?s[0]:"banner"),d={bidder:e.bidderCode||e.bidder||"",cpm:Number.isFinite(e.originalCpm)?e.originalCpm:Number.isFinite(e.cpm)?e.cpm:0,currency:e.originalCurrency??e.currency??"USD",...O(e),dealId:e.dealId||"",mediaType:o,latencyMs:Number.isFinite(e.timeToRespond)?e.timeToRespond:0,advertiserDomain:e.meta?.advertiserDomains?.[0]||"",creativeId:e.creativeId||""};if(r){let a={bidTrace:d,auctionId:t,transactionId:n,adUnitCode:r,rawBid:e,timestamp:Date.now()};this.cachedWinningBids.set(r,a),e.adId&&e.adId!==r&&this.cachedWinningBids.set(e.adId,a),t&&(this.cachedWinningBids.set(`${t}:${r}`,a),e.adId&&e.adId!==r&&this.cachedWinningBids.set(`${t}:${e.adId}`,a)),this.pruneCachedWinningBids()}this.enqueue(m.BID_WIN,"bidWon",{auctionId:t,transactionId:n,adUnitCode:r,bid:d})}handleNoBid(e){if(this.isDuplicate("noBid",e))return;this.log("DEBUG","noBid",e);let t=e.auctionId||"",n=e.bidderCode||e.bidder||"",r=e.adUnitCode||"";if(t&&n){let s=this.getOrCreateAuctionOutcomes(t),o=`${n}:${r}`,d=s.get(o);d?d.outcome===D.BIDDER_OUTCOME_NO_RESPONSE&&(d.outcome=D.BIDDER_OUTCOME_NO_BID):s.set(o,{bidder:n,adUnitCode:r,mediaType:"banner",outcome:D.BIDDER_OUTCOME_NO_BID,latencyMs:0})}}handleAdRenderFailed(e){if(this.isDuplicate("adRenderFailed",e))return;this.log("DEBUG","adRenderFailed",e);let t=e.bid||{};this.enqueue(m.AD_RENDER_FAILED,"adRenderFailed",{auctionId:t.auctionId||e.auctionId||"",transactionId:t.transactionId||e.transactionId||"",adUnitCode:t.adUnitCode||e.adUnitCode||"",bid:{bidder:t.bidderCode||t.bidder||e.bidderCode||e.bidder||""},metadata:{reason:String(e.reason||""),message:String(e.message||e.error?.message||"")},error:e.error||(e.message?new Error(String(e.message)):void 0)})}handleAdRenderSucceeded(e){if(this.isDuplicate("adRenderSucceeded",e))return;this.log("DEBUG","adRenderSucceeded",e);let t=e.bid||e||{},n=e.adUnitCode||t.adUnitCode||e.adId||t.adId||"",r=t.auctionId||e.auctionId||"",s=t.transactionId||e.transactionId||"",o=t.mediaType||"banner",d=e.adUnitCode||t.adUnitCode||"",a=e.adId||t.adId||"",u=(r&&d?this.getCachedBid(`${r}:${d}`):void 0)||(r&&a?this.getCachedBid(`${r}:${a}`):void 0)||(d?this.getCachedBid(d):void 0)||(a?this.getCachedBid(a):void 0),h=o==="video"||t.mediaType==="video"||t.mediaTypes?.video!==void 0||u?.bidTrace?.mediaType==="video"||u?.rawBid?.mediaType==="video"||n&&this.slotViewabilityRecords.get(n)?.mediaType==="video",b=h?"video":o||u?.bidTrace?.mediaType||"banner",f={bidder:t.bidderCode||t.bidder||u?.bidTrace?.bidder||"",cpm:Number.isFinite(t.originalCpm)?t.originalCpm:Number.isFinite(t.cpm)?t.cpm:u?.bidTrace?.cpm??0,currency:t.originalCurrency??t.currency??u?.bidTrace?.currency??"USD",...O(t).width?O(t):u?.bidTrace?{width:u.bidTrace.width,height:u.bidTrace.height}:O(t),dealId:t.dealId||u?.bidTrace?.dealId||"",mediaType:b,latencyMs:Number.isFinite(t.timeToRespond)?t.timeToRespond:u?.bidTrace?.latencyMs??0,advertiserDomain:t.meta?.advertiserDomains?.[0]||u?.bidTrace?.advertiserDomain||"",creativeId:t.creativeId||u?.bidTrace?.creativeId||""},T=r||u?.auctionId||"",v=s||u?.transactionId||"",I=n?this.slotViewabilityRecords.get(n):void 0,B=I&&T&&I.auctionId&&I.auctionId!==T;if(!!(n&&I&&B)){this.flushSlotTimeInView(n);let E=(this.slotRefreshIndices.get(n)??(I?I.refreshIndex:0))+1;this.slotRefreshIndices.set(n,E),this.slotLastAuctionIds.set(n,T),I&&(I.refreshIndex=E,I.auctionId=T,I.transactionId=v,I.bidPayload=f,I.viewableFired=!1,I.accumulatedTimeInViewMs=0),this.enqueue(m.REFRESH,"refresh",{auctionId:T,transactionId:v,adUnitCode:n,bid:f,metadata:{refresh_index:String(E)}})}else n&&(T&&this.slotLastAuctionIds.set(n,T),this.slotRefreshIndices.has(n)||this.slotRefreshIndices.set(n,0));let w=n?this.slotRefreshIndices.get(n)??(I?I.refreshIndex:0):0;if(h?this.log("DEBUG",`adRenderSucceeded received for video ad unit ${n||"unknown"}: suppressing IMPRESSION until verified video lifecycle event`):n&&this.hasImpressionEmitted(n,w,T,f.creativeId)||(n&&this.markImpressionEmitted(n,w,T,f.creativeId),this.enqueue(m.IMPRESSION,"impression",{auctionId:T,transactionId:v,adUnitCode:n,bid:f,metadata:{refresh_index:String(w)}})),this.config.viewabilityEnabled&&typeof document<"u"){let E=null,p=n||e.adId||t.adId;if(p&&(E=document.getElementById(p)),!E&&typeof window<"u"&&window.googletag?.pubads)try{let c=window.googletag.pubads().getSlots();for(let y of c)if((y.getAdUnitPath?.()===n||y.getSlotElementId?.()===n)&&(E=document.getElementById(y.getSlotElementId()),E))break}catch{}if(!E&&p)try{for(let c of Array.from(document.querySelectorAll("[data-ad-slot]")))if(c.getAttribute("data-ad-slot")===p){E=c;break}}catch{}E&&this.observeSlot(E,n||p,{adUnitCode:n,auctionId:T,transactionId:v,mediaType:b,bid:f,refreshIndex:w,emitRefreshEvent:!1})}}isDuplicate(e,t){return this.deduper.isDuplicate(e,t)}enqueue(e,t,n,r){if(!this.isEnabled||!this.shouldSample(e,r))return;Ve();let s={eventId:L(),timestampMs:Date.now(),type:e,eventName:t,auctionId:n.auctionId||"",transactionId:n.transactionId||"",adUnitCode:n.adUnitCode||n.elementId||"",namespace:n.ns||n.namespace||""};n.bid&&(s.bid={bidder:n.bid.bidder||"",cpm:Number.isFinite(n.bid.cpm)?n.bid.cpm:0,currency:n.bid.currency||"",width:Number.isFinite(n.bid.width)?n.bid.width:0,height:Number.isFinite(n.bid.height)?n.bid.height:0,dealId:n.bid.dealId||"",mediaType:n.bid.mediaType||"",latencyMs:Number.isFinite(n.bid.latencyMs)?n.bid.latencyMs:0,advertiserDomain:n.bid.advertiserDomain||"",creativeId:n.bid.creativeId||""}),n.viewableDurationMs!==void 0&&(s.viewableDurationMs=Number.isFinite(n.viewableDurationMs)?n.viewableDurationMs:0),n.bidderOutcomes&&Array.isArray(n.bidderOutcomes)&&(s.bidderOutcomes=n.bidderOutcomes);let o={...n.metadata};n.error!==void 0&&n.error!==null&&(o.error=typeof n.error=="object"&&n.error.message?String(n.error.message):String(n.error)),n.gpid&&(o.gpid=String(n.gpid)),n.refreshIndex!==void 0&&o.refresh_index===void 0&&(o.refresh_index=String(n.refreshIndex));let d=gt(o);Object.keys(d).length>0&&(s.metadata=d),this.queue.push(s),this.queue.length>z&&this.queue.splice(0,this.queue.length-z),this.queue.length>=nt?this.flush():ft.has(e)&&!this.immediateFlushScheduled&&(this.immediateFlushScheduled=!0,setTimeout(()=>{this.immediateFlushScheduled=!1,this.flush()},0))}shouldSample(e,t){return e===m.ERROR?(this.errorCount++,this.errorCount>rt?!1:this.config.errorsEnabled):t==="WARN"?this.config.warningsEnabled:this.config.auctionEnabled}requeue(e){e.length&&(this.queue=e.concat(this.queue),this.queue.length>z&&this.queue.splice(0,this.queue.length-z))}drainBatch(){if(this.queue.length===0||!this.config.endpoint)return null;let e=typeof window<"u"?window.location.hostname:"",t=n=>({propertyId:this.config.propertyId,pageviewId:this.config.pageviewId,sessionId:this.config.sessionId,pageUrl:this.pageUrl,country:this.config.country,region:this.config.region,deviceType:this.config.deviceType,userId:this.config.userId,domain:e,events:n});for(;;){if(this.queue.length===0)return null;let n=this.queue,r=j.encode(t(n)).finish();for(;n.length>1&&r.byteLength>ae;)n=n.slice(0,Math.floor(n.length/2)),r=j.encode(t(n)).finish();if(r.byteLength>ae){let[s]=this.queue.splice(0,1);this.log("WARN",`Dropping oversized event ${s?.eventName||s?.eventId} (${r.byteLength} bytes exceeds the ${ae}-byte cap on its own)`);continue}return this.queue=this.queue.slice(n.length),{url:`${this.config.endpoint}/${this.config.propertyId}`,encoded:r,events:n}}}sendFetch(e,t=!1,n,r=!1){let s={method:"POST",headers:{"Content-Type":Pe},body:e.encoded};t&&(s.keepalive=!0),fetch(e.url,s).then(d=>{if(d.ok)r||(this.consecutiveSendFailures=0,this.nextSendAllowedAt=0),n&&n();else{if(this.log("WARN",`Failed to send batch: HTTP ${d.status}`),d.status>=400&&d.status<500&&d.status!==429&&d.status!==408){this.log("WARN",`Dropping batch due to non-retryable client error HTTP ${d.status}`);return}r||this.handleSendFailure(e.events)}}).catch(d=>{this.log("ERROR","Failed to send batch",d),r||this.handleSendFailure(e.events)});let o=typeof globalThis<"u"?globalThis.process:void 0;if(o&&typeof o._tickCallback=="function")try{o._tickCallback()}catch{}}handleSendFailure(e){this.consecutiveSendFailures++;let t=Math.min(ke*2**(this.consecutiveSendFailures-1),st);this.nextSendAllowedAt=Date.now()+t,this.consecutiveSendFailures<=ot?this.requeue(e):this.log("WARN",`Dropping ${e.length} events after ${this.consecutiveSendFailures} consecutive send failures`)}flush(){if(Date.now()<this.nextSendAllowedAt)return;let e=this.drainBatch();for(;e&&(this.sendFetch(e,!1),!(Date.now()<this.nextSendAllowedAt));)e=this.drainBatch()}flushBeacon(){let e=this.drainBatch();for(;e;){let t=!1;if(typeof navigator<"u"&&typeof navigator.sendBeacon=="function")try{let n=new Blob([e.encoded],{type:Pe});t=navigator.sendBeacon(e.url,n)}catch{t=!1}if(!t){let n=this.persistBatch(e.encoded);this.sendFetch(e,!0,()=>this.removePersistedBatch(n))}e=this.drainBatch()}this.schedulePersistedCleanup()}pendingKeyPrefix(){return`${Y}${encodeURIComponent(this.config.propertyId)}_`}persistBatch(e){try{if(typeof localStorage>"u"||!this.config.propertyId)return null;let t=0;for(let r=0;r<localStorage.length;r++){let s=localStorage.key(r);s&&s.startsWith(Y)&&t++}if(t>=at)return null;let n=`${this.pendingKeyPrefix()}${Date.now()}_${Math.floor(Math.random()*1e6)}`;return localStorage.setItem(n,mt(e)),this.persistedBatchKeys.push(n),n}catch{return null}}removePersistedBatch(e){if(!e)return;try{typeof localStorage<"u"&&localStorage.removeItem(e)}catch{}let t=this.persistedBatchKeys.indexOf(e);t!==-1&&this.persistedBatchKeys.splice(t,1)}schedulePersistedCleanup(){this.persistedBatchKeys.length!==0&&(this.persistedCleanupTimer&&clearTimeout(this.persistedCleanupTimer),this.persistedCleanupTimer=setTimeout(()=>{this.persistedCleanupTimer=null;for(let e of Array.from(this.persistedBatchKeys))this.removePersistedBatch(e)},ut))}resendPersistedBatches(){try{if(typeof localStorage>"u"||!this.config.endpoint||!this.config.propertyId)return;let e=this.pendingKeyPrefix(),t=[],n=[];for(let r=0;r<localStorage.length;r++){let s=localStorage.key(r);!s||!s.startsWith(Y)||(s.startsWith(e)?t.push(s):Tt(s)&&n.push(s))}for(let r of n)try{localStorage.removeItem(r)}catch{}for(let r of t){let s=null;try{s=localStorage.getItem(r),localStorage.removeItem(r)}catch{continue}if(!s)continue;let o=parseInt(r.slice(e.length),10);if(!Number.isFinite(o)||Date.now()-o>ct)continue;let d;try{d=bt(s)}catch{continue}d.byteLength!==0&&(this.log("DEBUG",`Resending persisted exit batch (${d.byteLength} bytes)`),this.sendFetch({url:`${this.config.endpoint}/${this.config.propertyId}`,encoded:d,events:[]},!1,void 0,!0))}}catch{}}log(e,t,...n){let r={DEBUG:10,INFO:20,WARN:30,ERROR:40};if(r[e]<r[this.config.logLevel])return;let s=`[bidkernel][prebid-analytics][${e}]`;switch(e){case"DEBUG":console.debug(s,t,...n);break;case"INFO":console.info(s,t,...n);break;case"WARN":console.warn(s,t,...n);break;case"ERROR":console.error(s,t,...n);break}}}});var Rt=je(()=>{qe();var Ke="https://by.bidkernel.io/t",Bt=window._bidkernelPbjsGlobal||"pbjs";fe(Bt,{endpoint:Ke});window.bidkernelPrebidAnalytics={...window.bidkernelPrebidAnalytics,register:(i,e)=>fe(i,{endpoint:Ke,...e}),attachVideoPlayer:(i,e)=>{let t=window._bidkernelPrebidAnalytics;return t?.attachVideoPlayer?t.attachVideoPlayer(i,e):()=>{}},attachImaAdsManager:(i,e)=>{let t=window._bidkernelPrebidAnalytics;return t?.attachImaAdsManager?t.attachImaAdsManager(i,e):()=>{}},recordImpression:(i,e)=>{let t=window._bidkernelPrebidAnalytics;return t?.recordImpression?t.recordImpression(i,e):!1}}});return Rt();})();
package/dist/index.d.mts CHANGED
@@ -132,8 +132,17 @@ declare class PrebidEventDeduper {
132
132
  private seenKeys;
133
133
  isDuplicate(eventName: string, data: any): boolean;
134
134
  }
135
+ /**
136
+ * Hooks Google IMA SDK methods to automatically intercept AdsManager creation
137
+ * across active BidkernelPrebidAnalytics instances without requiring manual
138
+ * publisher calls to attachImaAdsManager.
139
+ */
140
+ declare function hookImaPrototype(ima: any): void;
141
+ declare function initImaInterception(): void;
135
142
  declare class BidkernelPrebidAnalytics {
136
143
  private static activeInstances;
144
+ static getActiveInstances(): Set<BidkernelPrebidAnalytics>;
145
+ static initImaInterception(): void;
137
146
  private config;
138
147
  private queue;
139
148
  private errorCount;
@@ -188,6 +197,11 @@ declare class BidkernelPrebidAnalytics {
188
197
  * consecutively, so eviction takes a whole bid's aliases together.
189
198
  */
190
199
  private pruneCachedWinningBids;
200
+ /**
201
+ * Searches cached winning bids for an entry matching the given filters (creativeId,
202
+ * adId, or mediaType), falling back to the most recent winning video bid.
203
+ */
204
+ private findCachedWinningBid;
191
205
  /** Records a dedup key, evicting oldest-first at the cap. */
192
206
  private addImpressionKey;
193
207
  /**
@@ -316,4 +330,4 @@ interface AdsGlobal {
316
330
  */
317
331
  declare function getbidkernel(alias?: string): AdsGlobal;
318
332
 
319
- export { type AdsGlobal, type AnalyticsConfig, BidkernelPrebidAnalytics, type CachedWinningBid, PrebidEventDeduper, type SizeMapping, type SlotConfig, type SlotObserveOptions, type SlotSize, type SlotSizes, type SlotViewabilityState, type VideoPlayerOptions, getPrebidEventKey, getbidkernel, isTrustedEndpoint, registerPrebidAnalytics };
333
+ export { type AdsGlobal, type AnalyticsConfig, BidkernelPrebidAnalytics, type CachedWinningBid, PrebidEventDeduper, type SizeMapping, type SlotConfig, type SlotObserveOptions, type SlotSize, type SlotSizes, type SlotViewabilityState, type VideoPlayerOptions, getPrebidEventKey, getbidkernel, hookImaPrototype, initImaInterception, isTrustedEndpoint, registerPrebidAnalytics };
package/dist/index.d.ts CHANGED
@@ -132,8 +132,17 @@ declare class PrebidEventDeduper {
132
132
  private seenKeys;
133
133
  isDuplicate(eventName: string, data: any): boolean;
134
134
  }
135
+ /**
136
+ * Hooks Google IMA SDK methods to automatically intercept AdsManager creation
137
+ * across active BidkernelPrebidAnalytics instances without requiring manual
138
+ * publisher calls to attachImaAdsManager.
139
+ */
140
+ declare function hookImaPrototype(ima: any): void;
141
+ declare function initImaInterception(): void;
135
142
  declare class BidkernelPrebidAnalytics {
136
143
  private static activeInstances;
144
+ static getActiveInstances(): Set<BidkernelPrebidAnalytics>;
145
+ static initImaInterception(): void;
137
146
  private config;
138
147
  private queue;
139
148
  private errorCount;
@@ -188,6 +197,11 @@ declare class BidkernelPrebidAnalytics {
188
197
  * consecutively, so eviction takes a whole bid's aliases together.
189
198
  */
190
199
  private pruneCachedWinningBids;
200
+ /**
201
+ * Searches cached winning bids for an entry matching the given filters (creativeId,
202
+ * adId, or mediaType), falling back to the most recent winning video bid.
203
+ */
204
+ private findCachedWinningBid;
191
205
  /** Records a dedup key, evicting oldest-first at the cap. */
192
206
  private addImpressionKey;
193
207
  /**
@@ -316,4 +330,4 @@ interface AdsGlobal {
316
330
  */
317
331
  declare function getbidkernel(alias?: string): AdsGlobal;
318
332
 
319
- export { type AdsGlobal, type AnalyticsConfig, BidkernelPrebidAnalytics, type CachedWinningBid, PrebidEventDeduper, type SizeMapping, type SlotConfig, type SlotObserveOptions, type SlotSize, type SlotSizes, type SlotViewabilityState, type VideoPlayerOptions, getPrebidEventKey, getbidkernel, isTrustedEndpoint, registerPrebidAnalytics };
333
+ export { type AdsGlobal, type AnalyticsConfig, BidkernelPrebidAnalytics, type CachedWinningBid, PrebidEventDeduper, type SizeMapping, type SlotConfig, type SlotObserveOptions, type SlotSize, type SlotSizes, type SlotViewabilityState, type VideoPlayerOptions, getPrebidEventKey, getbidkernel, hookImaPrototype, initImaInterception, isTrustedEndpoint, registerPrebidAnalytics };