This article is part of the Free Speech Project, a collaboration between Future Tense and the Tech, Law, & Security Program at the American University Washington College of Law, which examines how technology affects how we think about language.
On Friday, President Joe Biden struck a blow on Facebook over misinformation about coronavirus vaccines spreading on the platform. « They kill people, » Biden told reporters when asked what his message was to Facebook and other platforms regarding misinformation and the pandemic. « I mean, they really, you see, the only pandemic we have is among the unvaccinated, and that’s – they kill people. » That blunt, if brief, accusation was enough to usher in a weekend news cycle in which the social networking giant cracked down on the White House and almost every keen observer of the company weighed how much Facebook blamed the millions of Americans who did it continue to refuse to get COVID vaccinations.
The tension between Houses Biden and Zuckerberg is not a sudden development. According to the Wall Street Journal, Facebook and the White House have been meeting privately for months to discuss ways to contain anti-vaccine content. The government had reportedly been optimistic about the prospect of working with Facebook, but talks recently fell through when officials decided the platform had a flawed and insufficiently rigorous approach to address vaccine hesitation. And it’s not just Biden who is increasing public pressure on Facebook. In early July, White House Chief of Staff Ron Klain told the New York Times that people in focus groups commissioned by the government for vaccines were the most likely to refer to Facebook as the source of misinformation they saw on the matter. Surgeon General Vivek Murthy, in his initial consultation with that government, also urged social media companies to take « responsibility for repairing the damage » from vaccine misinformation, and White House press secretary Jen Psaki urged Facebook to be harder to work to remove anti-vax posts. On Monday, Biden took the issue on a lighter note, saying, « My hope is that instead of taking it personally, Facebook is somehow killing people, that they would do something about the misinformation, the outrageous misinformation about the vaccine. That’s what I meant. «
» They kill people, « says President Biden when asked about the spread of COVID misinformation on social media platforms. Https://t.co/TDE9ZJqnEb pic .twitter.com/HBLcFtwVTh
After Biden’s initial comments, Guy Rosen, Facebook’s vice president for integrity, wrote a sharp-edged blog post claiming the facts do not support the president’s allegations and suggesting that the government try Blaming Facebook for failing to get 70 percent of Americans vaccinated by July 4th (the country narrowly missed the mark with a vaccination rate of 67 percent), “The fact is, vaccine adoption Facebook users in the US has increased, « wrote Rosen. » These and other facts tell a very different story than the one that has been promoted by the administration in recent days. « He went on to claim that more than 3.3 million Americans r used Facebook’s vaccine finder tool to schedule an appointment and that the platform has already deleted more than 18 million COVID-19 misinformation. However, the post didn’t reveal how many people interacted with those 18 million pieces of content, as noted Joan Donovan, director of research at Harvard Shorenstein Center.
Is Biden right to use Facebook for its role in spreading vaccine misinformation show, or was his anger out of place? Actually a bit of both. As it turns out, the story is a lot more complicated than both parties have admitted.
Ultimately, Facebook has improved its handling of health misinformation during the pandemic to remove such content and limit its spread, and the platform likely isn’t the main reason for vaccine reluctance to use in this country. At the same time, however, the anti-Vax movement would not be as powerful and pernicious as it would be without Facebook.
Renée DiResta, research director at the Stanford Internet Observatory, an expert on online anti-vaccination tactics, argues in a rewarding Twitter Thread that Anti-Vaxxer, after being snubbed by the mainstream and more traditional media, relied heavily on Facebook around 2009 to get more followers. They used groups, pages and advertisements as a publicity-generating infrastructure that would support their cause for years. Facebook was reluctant to take action because anti-Vaxxers increasingly labeled their views as political, especially following a 2015 bill banning personal and religious exemptions for school vaccines in California. Facebook has been extremely reluctant to moderate political content until recently, and anti-Vaxxers have been able to use this freedom of movement to provide medical misinformation to people and cultivate receptive audiences. When the COVID-19 vaccines hit the market, anti-Vaxxers were ready to mobilize the infrastructure they had built on social media. Facebook has played an important role in building an internet ecosystem that allows lies to spread much faster than the truth, and despite the platform’s current efforts to provide accurate vaccine information, it is trying to climb out of a hole it does for more than a decade.
That being said, it’s not clear that Facebook is currently the main engine of misinformation about vaccines. As Charlie Warzel points out in Galaxy Brain, while Facebook has played a role in amplifying this misinformation, its sheer size and audience coverage has likely also enabled it to reach more people than many with pro-vaccine resources Government campaigns. In addition, experts seem to be more to blame established conservative voices like Fox News and Republican politicians for vaccination reluctance. While Facebook can help reinforce these views – and reach them in private groups where personal conviction is possible – influential institutions and personalities already have their own huge platforms for reaching impressive followers. In addition, it is difficult to figure out how much blame Facebook is to blame as there is not a lot of comprehensive information on the platform about the extent and nature of the problem. The White House has repeatedly cited a report by the nonprofit Center to Combat Digital Hate, which found that 65 percent of anti-vaccine misinformation on social media came from around 12 people. Facebook both denies the methodology of the report and claims it cracked down on the accounts of some of these people.
As Donovan and others have noted, Facebook likes to publish a lot of flattering statistics about its efforts to disseminate accurate information and remove lies but it tends to omit data on the number of users who see misinformation and the way they see it to simply deal with that content. Reports from the New York Times suggest the company is considering the ability to restrict tools – the precious CrowdTangle owned by Facebook – that researchers are using to understand what content is spreading the most on the platform. Independent analysis, such as one by NPR on the virality of stories about people dying after vaccination, suggests the problem may be more serious than Facebook wants to admit. NPR found that such stories were among the most popular vaccine-related articles on Facebook, Pinterest, and Twitter for nearly half of the days from January to March 2021.
It’s not clear what the White House can do by itself to limit the spread of vaccine misinformation as direct government intervention could conflict with the First Amendment. Aside from short-term fixes, it’s also not clear what Facebook can or wants to do about the fact that its size and engagement incentives ensure that Anti-Vax content spreads so quickly on the platform. However, for lawmakers currently reviewing big tech, this may be another reason to limit Facebook’s influence. And while they focus on health misinformation, so are YouTube and Amazon.
Future tense
is a partnership of
Slate,
New America and
University of Arizona
that deals with new technologies, public order and society.
« )); var p = g (h [i.size_id] .split ( » x « ). map (function (e) {return Number (e)}), 2); f.width = p [0], f.height = p [1]} f.rubiconTargeting = (Array.isArray (i.targeting)? I.targeting: []). Reduce (function (e, t) {return e [t.key ] = t. values [0], e}, {rpfl_elemid: l.adUnitCode}), t.push (f)} else n.logError (« Rubicon: bidRequest undefined at index position: ». concat (o), r, e); return t}, []). sort (function (e, t) {return (t.cpm || 0) – (e.cpm || 0)})}, getUserSyncs: function (e, t, r, n) {if (! B&&e.iframeEnabled) {var i = « »; return r&& « string » == typeof r.consentString&& (« boolean » == typeof r.gdprA = « . concatd? ipr = » (Number r.gdprApplies), « &gdpr_consent = »). Concat (r.consentString): i = « ? Gdpr_consent = ». Concat (r.consentString)), n&& (i = « ». Concat (i? « &) : « ? », « us_privacy = ») .concat (encodeURIComponent (n))), B =! 0, {type: « iframe », url: « https: // » .concat (y.syncHost || « eus « , » .rubiconproject.com / usync.html « ) i}}}, transformBidParams: function (e, t) {return n.convert Types ({acc ountId: « number », siteId: « number », zoneId: « number »}, e)}}; Function S (e, t) {var r = obgetConfig (« pageUrl »); return e.params .referrer? r = e.params.referrer: r || (r = t.refererInfo.referer), e.params.secure? r.replace (/ ^ http: / i, « https: »): r} Function A (e ) {var t, r = document.getElementById (e.adUnitCode); (t = r.querySelector (« div [id ^ = ‘google_ads’] »)) &&t.style.setProperty (« display », « none ») , function (e) {var t = e.querySelector (« script [id ^ = ‘sas_script’] »), r = t&&t.nextSibling; r&& « iframe » === r.localName&CSSEAND « PertyR. , « none »)} (r); var n = e.renderer.getConfig (); e.renderer.push (function () {window.MagniteApex.renderAd ({width: e.width, height: e.height, vastUrl: e.vastUrl, placement: {attachTo: « # ». concat (e.adUnitCode), align: n.align || « center », position: n.position || « append »}, closeButton: n.closeButton ||! 1, label: n.label || void 0, collapse: n.collapse ||! 0})})} Function I (e, t) {var r = e.params; if (« video » = == t) {var i = []; return r.video&CSSEANDCH ARr.video.playerWidth&&r.video.playerHeight? i = [r.video.playerWidth, r.video.playerHeight]: Array.isAr ray (n.deepAccess (e, « mediaTypes.video.playerSize »)) &&1 === e .mediaTypes.video.playerSize.length? i = e.mediaTypes.video.playerSize [0]: Array.isArray (e. sizes) &&e.sizes.length> 0&&Array.isArray (e.sizes [0]) &&e.sizes [0] .length> 1&& (i = e.sizes [0], i} return o .isArray (r.sizes)? o = r.sizes: void 0! == n.deepAccess (e, « mediaTypes.banner.sizes »)? o = O (e.mediaTypes.banner.sizes): Array.isArray (e.sizes) &&e.sizes.length> 0? o = O (e.sizes): n.logWarn (« Rubicon: No sizes were set up or found »), x (o)} function E (e, t , r) {var i = {user: {ext: {data: f ({}, e. params.visitor)}}, site: {ext: {data: f ({}, e.params.inventory)}}}; e.params.keywords&& (i.site.keywords = n.isArray (e.params. keywords)? e.params.keywords.join (« , »): e.params.keywords); var s = n.mergeDeep ({}, obgetConfig (« ortb2 ») | | {}, i), c = n .deepAccess (e.ortb2Imp, « ext.data ») || {}, d = {user: [3], site: [1,2]}, u = {user: « tg_v. », site: « tg_i . « , adserver: » tg_i.dfp_ad_unit_code « , pbadslot: » tg_i.pbadslot « , keywords: » kw « }, l = function (e, t, r) {if ( » data « === t&&Array.isArray (e )) return e.filter (function (e) {return e.segment&&n.deepAccess (e, « ext.segtax ») &&d [r] &&-1! == d [r] .indexOf (n.deepAccess (e, « ext.segtax »))}). map (function (e) {var t = e.segment.filter (function (e) {return e.id}). reduce (function (e, t) {return e. push (t.id), e}, []); if (t.length> 0) return t.toString ()}). toString (); if (« object »! == v (e) || array .isArray (e)) {if (void 0! == e) return Array.isArray (e)? e.filter (function (e) {if (« Object »! = = v (e) &&void 0! == e) return e.to String (); n.logWarn (« Rubicon: Filtered value: », e, « for key », t, « : Expected value is String, Integer, or an array of Strings / Ints »)}). ToString (): e.toString ()} else n.logWarn (« Rubicon: Filtered FPD key: », t, « : Expected value is string, integer, or an array of strings / Ints »)}, p = function (e, t , n) {var i =! (arguments.length> 3&&void 0! == arguments [3]) || arguments [3], o = l (e, n, t), a = u [n] &&i? » « .concat (u [n]): » data « === n? » « . concat (u [t], » iab « ): » « . concat (u [t]). concat (n); r [a] = r [a]? r [a] .concat (« , », o): o}; Object.keys (c) .forEach (function (e) {« adserver » === e? [ » name « , » adslot « ]. forEach (function (t) {c [e] [t] && (c [e] [t] = c [e] [t] .toString (). replace (/ ^ / /, « »))}): « pbadslot » === e&& (c [e] = c [e] .toString (). replace (/ ^ / /, » »)))),t===ab?([« site », »user » Autovermietung ).forEach(function(e){Object.keys(s[e]).forEach (function (t) {« site » === e&& « content » === t&&s [e] [t] .data? p (s [e] [t] .data, e, « data »): « ext « ! == t? p (s [e] [t], e, t): s [e] [t] .data&&Object.keys (s [e] .ext.data) .forEach (function (t) { p (s [e] .ext.data [t], e, t,! 1)})})}), Object.keys (c) .forEach (function (e) {« adserver » === e? p (c [e] .adslot, name, e): p (c [e], « site », e)})) 🙁 Object.keys (c) .length&&n.merg eDeep (r.imp [0] .ext, {data: c}), n.mergeDeep (r, s))} function O (e) {return n.parseSizesInput (e) .reduce (function (e, t) {var r = parseInt (h [ t], 10); return r&&e.push (r), e}, [])} function T (e) {return « object » === v (n.deepAccess (e, « params.video »)) &&void 0! == n.deepAccess (e, « mediaTypes. ». Concat (ad))} function C (e) {var t = arguments.length> 1&&void 0! == arguments [1] &&Argumente [1]; T ( e) return? -1 === [« outstream », « instream »]. indexOf (n.deepAccess (e , « mediaTypes. ». concat (ad, « . context »)))? void (t&&n.logError (« Rubicon: mediaTypes.video.context must be outstream or instream »)): I (e, « video »). length-1 || i> -1? -1 === n? 1: -1 === i? -1: ni: er})} function j (e) {var t = parseInt (n.deepAccess ( e, « params.video.size_id »)); return isNaN (t)? « outstream » === n.deepAccess (e, « mediaTypes. ». concat (ad, « . context »))? 203: 201: t} Function P (e) {return {ranges: {low: [{max: 5, increment: .5}], medium: [{max: 20, increment: .1}], high: [{max: 20 , Increment: .01}], auto: [{max: 5, increment: .05}, {min: 5, max: 10, increment: .1}, {min: 10, max: 20, increment :. 5}], dense: [{max: 3, increment: .01}, {min: 3, max: 8, increment: .05}, {min: 8, max: 20, increment: .5}], custom : e.getConfig (« customPriceBucket ») &&e.getConfig (« customPriceBucket ») .buckets} [e.getConfig (« priceGranularity »)]}} Function D (e) {var t =! 0, r = Object.prototype. toString.call ([]), i = {mimes: r, protocols: r, linearity: Object.prototype.toString.call (0), api: r}; return Object.keys (i) .forEach (function (r ) {Object.prototype.toStri ng.call (n.deepAccess (e, « mediaTypes.video. » r))! == i [r] && (t =! 1, n.logError (« Rubicon: mediaTypes.video. » r « is required and must be of the type: « i [r]))}), t} Function k (e) {var t =! 1, r = [ » asi « , » sid « , » hp « ]; return e.nodes? ((t = e.nodes.reduce (function (e, t) {return e? r.every (function (e) {return t.hasOwnProperty (e)}): e} ,! 0)) || n. logError (« Rubicon: required Schain parameters are missing »), t): t} Function R (e, t) {return « rp_schain » === e? « rp_schain = ». concat (t): « ». concat ( e, « = »). concat (encodeURIComponent (t))} var B =! 1; Object t (i.registerBidder) (_)}}, [622]), pbjsChunk ([101], {658: function ( e, t, r) {e.exports = r (659)}, 659: function (e, t, r) {Object.defineProperty (t, « __ esModule », {value:! 0}), rd (t, « spec », function () {return m}), rd (t, « _ isInbounds », function () {return _}), t._getPlatform = S; var n = r (1), i = r (0) , o = r (2), a = r (3), s = r (13), c = r (55); function d (e, t) {return function (e) {if (Array.isArray (e) ) Return e} (e) || function (e, t) {var r = null = = e? Null: « undefined »! = Type of symbol&&e [symbol.iter ator] || e [« @@ iterator »]; if (null! = r) {var n, i, o = [], a =! 0, s =! 1; try {for (r = r.call (e);! (a = (n = r.next ()). done) && (o.push (n.value) ,! t || o.length! == t); a =! 0);} catch (e) {s =! 0, i = e} finally {try {a || null == r.return || r.return () } finally {if (s) throw i}} return o}} (e, t) || function (e, t) {if (e) {if (« String » == type of e) return u (e, t); var r = Object.prototype.toString.call (e) .slice (8, -1); return « Object » === r&&e.constructor&& (r = e.constructor.name), « Map » == = r || « Set » === r? Array.from (e): « Arguments » === r || / ^ (?: Ui | I) nt (?: 8 | 1 6 | 32) (? : Clamped)? Array $ /. Test (r)? U (e, t): void 0}} (e, t) || function () {throw new TypeError (« Invalid attempt at destructuring non-iterable instance. NTo iterable to , non-array objects must have a [Symbol.iterator] () method. « )} ()} Function u (e, t) {(null == t || t> e.length) && (t = e.length); for (var r = 0, n = new Array (t); r0) {var s = Object (i.deepClone) (e [0] .userId); s.id5id&& (s.id5id = Object (i.deepAccess) (s, « id5id.uid »)), o.userid = JSON.stringify (s)} var d = Object (i.deepAccess) (e [0] , « userIdAsEids »); Array.isArray (d) &&d.length> 0&& (o.eids = JSON.stringify (d)); var u = e [0] .params.keywords; if (u&& = .) u), t&&t.uspConsent&& (o.us_privacy = t.uspConsent),! 0 === abgetConfig (« coppa »)? o.coppa = 1: o.coppa = 0, Object (i.isEmpty) (n )) return null; var m = « https://apex.go.sonobi.com/trinity.json »; return Object (i.deepAccess) (e [0], « params.bid_request_url ») && (m = Object (i.deepAccess) (e [0], « params.bid_request_url »)), {method: « GET », url: m, withCredentials:! 0, data: o, bidderRequests: e}}, interpretResponse: function (e , t) {var r = e.body, n = [], o = t.data.ref; return 0 === Object.keys (r.slots) .length || Object.keys (r.slots). forEach (function (e) {var a = r.slots [e], c = e.split (« | »). slice (-1) [0], u = function (e, t) {for (var r = 0; r2&&void 0! = = Arguments [2]? Argu mente [2]: {}, n = sainstall ({id: t.aid, url: « https://mtrx.go.sonobi.com/sbi_outstream_renderer.js », config: r, load:! 1, adUnitCode: e}); try {n.setRender (A)} catch (e) {Object (i.logWarn) (« Prebid error when calling setRender on renderer », e)} return n.setEventHandlers ({impression: function () {return Object (i.logMessage) (« Sonobi Outstream Video Impression Event »)}, loaded: function () {return Object (i.logMessage) (« Sonobi Outstream Video Loaded Event »)}, ended: function () {Object (i.logMessage) (« Sonobi Outstream Renderer Video Event »)}}), n} (including adUnitCode, _, Object (i.deepAccess) (u, « renderer.options »)); var S = Object ( i.deepAccess) (u, « params.sizes »); Array.isArray (S) CS SEANDCHAR&Array.isArray (S [0]) && (S = S [0]), S&& (_. width = S [0] , _. height = S [1])} n.push (_)}}), n}, getUserSyncs: function (e, t, r, n) {var i = []; try {e.pixelEnabled&&t [0 ] .body.sbi_px.forEach (function (e) {i.push ({type: e .type, url: e.url})})} catch (e) {} return i}}; function b (e) {return Object (i.deepAcc ess) (e, « mediaTypes.video »)? « »: e.params.sizes? Object (i.parseSizesInput) (e.params.sizes) .join (« , »): Object (i.deepAccess) (e , « mediaTypes.banner.sizes »)? Object (i.parseSizesInput) (Object (i.deepAccess) (e, « mediaTypes.banner.sizes »)). join (« , »): e.sizes? Object (i .parseSizesInput) (e.sizes) .join (« , »): void 0} function v (e) {return e.params.floor, « »} function y (e) {var t = Object (i.deepAccess) (e, « ortb2Imp.ext.data.pbadslot ») || Object (i.deepAccess) (Object (i.getGptSlotInfoForAdUnitCode) (e.adUnitCode), « gptSlot ») || e.params.ad_unit; return t? « | Gpid = ». Concat (t): « »} var h = Function (e, t) {return function (r, n) {return « video » === e || « outstream » === e? Function (e, t, r) {return « https: // ». concat (e, « apex.go.sonobi.com/vast.xml?vid = »). concat (t, « &ref = »). concat (encodeURIComponent (r))} (r, n, t): ‘ ‘}}, _ = function () {var e = arguments.length> 0&&void 0! == arguments [0]? arguments [0]: window; return function () {var t = arguments.length > 0&&void 0! == arguments [0]? Arguments [0]: 0, r = arguments.length> 1&&void 0! == arguments [1]? Arguments [1]: Number.MAX_SAFE_INTEGER; return e.CinnerWidth. = TCSSEAND innerWidth 0&&void 0! == arguments [0]? arguments [0]: window, t = _ (e), r = 992, n = 768; return t (0.768)? « mobile »: t (n, r)? « tablet »: « desktop »} function A (e) {e.renderer.push (function () {var t = d (e.getSize ( ) .split (« x »), 2), r = t [0], n = t [1], i = new window.SbiOutstreamRenderer; i.init ({vastUrl: e.vastUrl, height: n, width: r}), i.setRootElement (e.adUnitCode)})} Object (n.registerBidder) (m)}}, [658]), pbjsChunk ([100], {666: function (e, t, r) { e.exports = r (667)}, 667: function (e, t, r) {Object.defineProperty (t, « __ esM odule », {value:! 0}), rd (t, « GOOGLE_CONSENT », function ( ) {return d}), rd (t, « spec », function () {return u}); var n = r (0), i = r (3), o = r (13), a = r ( 1), s = r (2); function c (e) {return (c = « function » == symbol type&& « symbol » == _ typeof (Symbol.iterator)? Function (e) {return _typeof (e)}: function (e) {return e&& « function » == typeof Symbol&&e.constructor === Symbol&&e! == Symbol.prototype? « symbol »: _ typeof (e)}) (e)} var d = {approved_providers: [« 3 « , » 7 « , » 11 « , » 12 « , » 15 « , » 20 « , » 22 « , » 35 « , » 43 « , » 46 « , » 48 « , » 55 « , » 57 « , « 61 », « 62 », « 66 », « 70 », « 80 », « 83 », « 85 », « 86 », « 89 », « 93 », « 108 » « , » 122 « , » 124 « , » 125 « , » 126 « , » 131 « , » 134 « , » 135 « , » 136 « , » 143 « , » 144 « , » 147 « , » 149 « , « 153 », « 154 », « 159 », « 161 », « 162 », « 165 », « 167 », « 171 », « 178 », « 184 », « 188 », « 192 », « 195 « , » 196 « , » 202 « , » 209 « , » 211 « , » 218 « , » 221 « , » 228 « , » 229 « , » 230 « , » 236 « , » 239 « , » 241 « , « 253 », « 255 », « 259 », « 266 », « 271 », « 272 », « 274 », « 286 », « 291 », « 294 », « 303 », « 308 », « 310 » « , » 311 « , » 313 « , » 314 « , » 316 « , » 317 « , » 322 « , » 323 « , » 327 « , » 336 « , » 338 « , » 340 « , » 348 « , « 350 », « 358 », « 359 », « 363 », « 36 7 », « 370 », « 371 », « 384 », « 385 », « 389 », « 393 », « 394 », » 397 « , » 398 « , » 407 « , » 414 « , » 415 « , » 424 « , » 429 « , » 430 « , » 432 « , » 436 « , » 438 « , » 440 « , » 442 » , « 443 », « 445 », « 448 », « 449 », « 453 », « 459 », « 479 », « 482 », « 486 », « 491 », « 492 », « 494 », » 495 « , » 503 « , » 505 « , » 510 « , » 522 « , » 523 « , » 528 « , » 537 « , » 540 « , » 550 « , » 559 « , » 560 « , » 568 » , « 571 », « 574 », « 575 », « 576 », « 584 », « 585 », « 587 », « 588 », « 590 », « 591 », « 592 », « 595 », » 609 « , » 621 « , » 624 « , » 723 « , » 725 « , » 733 « , » 737 « , » 776 « , » 780 « , » 782 « , » 787 « , » 797 « , » 798 » , « 802 », « 803 », « 814 », « 817 », « 820 », « 821 », « 827 », « 829 », « 839 », « 853 », « 864 », « 867 », » 874 « , » 899 « , » 904 « , » 922 « , » 926 « , » 931 « , » 932 « , » 933 « , » 938 « , » 955 « , » 973 « , » 976 « , » 979 » , « 981 », « 985 », » 987 « , » 991 « , » 1003 « , » 1024 « , » 1025 « , » 1027 « , » 1028 « , » 1029 « , » 1033 « , » 1034 « , » 1040 « , » 1047 « , » 1048 » , « 1051 », « 1052 », « 1053 », « 1054 », « 1062 », « 1063 », « 1067 », « 1072 », « 1085 », « 1092 », « 1095 », « 1097 », » 1099 « , » 1100 « , » 1107 « , » 1126 « , » 1127 « , » 1143 « , » 1149 « , » 1152 « , » 1162 « , » 1166 « , » 1167 « , » 1170 « , » 1171 » , « 1172 », « 1188 », « 1192 », « 1199 », « 1201 », « 1204 », « 1205 », « 1211 », « 1212 », « 1215 », « 1220 », « 1225 », » 1226 « , » 1227 « , » 1230 « , » 1232 « , » 1236 « , » 1241 « , » 1248 « , » 1250 « , » 1252 « , » 126 8 « , » 1275 « , » 1276 « , » 1284 « , » 1286 « , » 1298 « , » 1301 « , » 1307 « , » 1312 « , » 1313 « , » 1317 « , » 1329 « , » 1336 « , » 1344 « , » 1345 « , » 1356 « , « 1362 », « 1365 », « 1375 », « 1403 », « 1409 », « 1411 », « 1415 », « 1416 », « 1419 », « 1423 », « 1440 », « 1442 », « 1449 » « , » 1451 « , » 1455 « , » 1456 « , » 1468 « , » 1496 « , » 1503 « , » 1509 « , » 1512 « , » 1514 « , » 1517 « , » 1520 « , » 1525 « , « 1540 », « 1547 », « 1548 », « 1555 », « 1558 », « 1570 », « 1575 », « 1577 », « 1579 », « 1583 », « 1584 », « 1591 », « 1598 « , » 1603 « , » 1608 « , » 1613 « , » 1616 « , » 1626 « , » 1631 « , » 1633 « , » 1638 « , » 1642 « , » 1648 « , » 1651 « , » 1652 « , « 1653 », « 1660 », « 1665 », « 1667 », « 1669 », « 1671 », « 1674 », « 1677 », « 1678 », « 1682 », « 1684 », « 1697 », « 1703 « , » 1705 « , » 1716 « , » 1720 « , » 172 1 « , » 1722 « , » 1725 « , » 1732 « , » 1733 « , » 1735 « , » 1739 « , » 1741 « , » 1745 « , » 1750 « , » 1753 « , » 1760 « , » 1765 » , « 1769 », « 1776 », « 1780 », « 1782 », « 1786 », « 1791 », « 1794 », « 1799 », « 1800 », « 1801 », « 1810 », « 1827 », » 1831 « , » 1832 « , » 1834 « , » 1837 « , » 1840 « , » 1843 « , » 1844 « , » 1845 « , » 1858 « , » 1859 « , » 1863 « , » 1866 « , » 1870 » , « 1872 », « 1875 », « 1878 », « 1880 », « 1882 », « 1883 », « 1889 », « 1892 », « 1896 », « 1898 », « 1899 », « 1902 », » 1905 « , » 1911 « , » 1922 « , » 1928 « , » 1929 « , » 1934 « , » 1942 « , » 1943 « , » 1944 « , » 1945 « , » 1958 « , » 19 60 « , » 1962 « , » 1963 « , » 1964 « , » 1967 « , » 1968 « , » 1978 « , » 1985 « , » 1986 « , » 1987 « , » 1998 « , » 2003 « , » 2007 « , » 2012 « , « 2013 », « 2027 », « 2035 », « 2038 », « 2039 », « 2044 », « 2047 », « 2052 », « 2056 », « 2059 », « 2062 », « 2064 », « 2068 « , » 2070 « , » 2072 « , » 2078 « , » 2079 « , » 2084 « , » 2088 « , » 2090 « , » 2095 « , » 2100 « , » 2103 « , » 2107 « , » 2109 « , « 2113 », « 2115 », « 2121 », « 2127 », « 2130 », « 2133 », « 2137 », « 2140 », « 2141 », « 2145 », « 2147 », « 2150 », « 2156 « , » 2166 « , » 2170 « , » 2171 « , » 2176 « , » 2177 « , » 2179 « , » 2183 « , » 2186 « , » 2192 « , » 2198 « , » 2202 « , » 2205 « , « 2214 », « 2216 », « 2219 », « 2220 », « 2222 », « 2223 », « 2224 », « 2225 », « 2227 », « 2228 », « 2234 », « 2238 », « 2247 « , » 2251 « , » 2253 « , » 2262 « , » 2264 « , » 2271 « , » 2276 « , » 2278 « , » 2279 « , » 2282 « , » 2290 « , » 2292 « , » 2295 « , » 2299 « , » 2305 « , » 2306 « , » 2310 « , « 2311 », « 2312 », « 2315 », « 2320 », « 2325 », « 2328 », « 2331 », « 2334 », « 2335 », « 2336 », « 2337 », « 2343 », « 2346 » « , » 2354 « , » 2357 « , » 2358 « , » 2359 « , » 2366 « , » 2370 « , » 2373 « , » 2376 « , » 2377 « , » 2380 « , » 2382 « , » 2387 « , « 2389 », « 2392 », « 2394 », « 2400 », « 2403 », « 2405 », « 2406 », « 2407 », « 2410 », « 2411 », « 2413 », « 2414 », « 2415 « , » 2416 « , » 2418 « , » 2422 « , » 2425 « , » 2427 « , » 2435 « , » 2437 « , » 2440 « , » 2441 « , » 2447 « , » 2453 « , » 2459 « , « 2 461 », « 2462 », « 2464 », « 2467 », « 2468 », « 2472 », « 2477 », « 2481 », « 2484 », « 2486 », « 2492 », « 2493 », » 2496 « , » 2497 « , » 2498 « , » 2499 « , » 2504 « , » 2506 « , » 2510 « , » 2511 « , » 2512 « , » 2517 « , » 2526 « , » 2527 « , » 2531 » , « 2532 », « 2534 », « 2542 », « 2544 », « 2552 », « 2555 », « 2559 », « 2563 », « 2564 », « 2567 », « 2568 », « 2569 », » 2571 « , » 2572 « , » 2573 « , » 2575 « , » 2577 « , » 2579 « , » 2583 « , » 2584 « , » 2586 « , » 2589 « , » 2595 « , » 2596 « , » 2597 » , « 2601 », « 2604 », « 2605 », « 2609 », « 2610 », « 2612 », « 2614 », « 2621 », « 2622 », « 2624 », « 2628 », « 2629 », » 2632 « , » 2634 « , » 2636 « , » 2639 « , » 2643 « , » 2645 « , » 2646 « , » 2647 « , » 2649 « , » 2650 « , » 2651 « , » 2652 « , » 2656 » , « 2657 », « 2658 », « 2660 », « 2661 » , « 2662 », « 2663 », « 2664 », « 2669 », « 2670 », « 2673 », « 2676 », « 2677 », « 2678 », « 2681 », « 2682 », « 2684 », » 2685 « , » 2686 « , » 2689 « , » 2690 « , » 2691 « , » 2695 « , » 2698 « , » 2699 « , » 2702 « , » 2704 « , » 2705 « , » 2706 « , » 2707 » , « 2709 », « 2710 », « 2713 », « 2714 », « 2727 », « 2729 », « 2739 », « 2758 », « 2765 », « 2766 », « 2767 », « 2768 », » 2770 « , » 2771 « , » 2772 « , » 2776 « , » 2777 « , » 2778 « , » 2779 « , » 2780 « , » 2783 « , » 2784 « , » 2786 « , » 2787 « , » 2791 » , « 2792 », « 2793 », « 2797 », « 2798 », « 2801 », « 2802 », « 2803 », « 2805 », « 2808 », « 2809 », « 2810 », « 2811 », » 2812 « , » 2813 « , » 2814 « , » 2817 « , » 2818 « , » 2824 « , » 2826 « , » 2827 « , » 2829 « , » 2830 « , » 2831 « , » 2832 « , » 2834 » , « 2836 », « 2838 », « 2840 », « 2842 », « 2843 », « 2844 », « 2850 », « 2851 », « 2852 », « 2854 », « 2858 », « 2860 », » 2862 « , » 2864 « , » 2865 « , » 2866 « , » 2867 « , » 2868 « , » 2869 « , » 2871 « ]}, u = {code: » spotx « , gvlid: 165, aliase: [ » spotx « ], supportedMediaTypes: [sd], isBidRequestValid: function (e) {if (e&& » object « ! == c (e.params)) return n.logError ( » spotx: params is not defined or wrong in the bidder settings . « ) ,! 1; if (! N.deepAccess (e, » mediaTypes.video « )) return n.logError ( » spotx: mediaType s.video is not available in the bidder settings. « ) ,! 1; var t = n.deepAccess (e, » mediaTypes.video.playerSize « ); if (! t ||! n.isArray (t)) return n .logError (« spotx: mediaTypes.video.playerSize is not defined in the bidder settings. ») ,! 1; if (! n.getBidIdParameter (« channel_id », e.params)) return n.logError (« spotx: channel_id is not available in bidder parameters « ) ,! 1; if (( » outstream « == n.deepAccess (e, » mediaTypes.video.context « ) || » outstream « == n.deepAccess (e, » params.ad_unit » )) &CSSE ANDCHAR! N.getBidIdParameter (« outstream_function », e.params)) {if (! N.getBidIdParameter (« outstream_options », e.params)) return n.logError (« spotx: please define or overwrite outstream_options parameters You can use the standard SpotX outstream rendering by defining your own outstream function with the field outstream_function. « ) ,! 1; if (! N.getBidIdParameter ( » slot « , e.params.outstream_options)) return n.logError ( » spotx: please define the parameter slot in the outstream_options object in the configuration ion. « ) ,! 1} return! 0}, buildRequests: function (e, t) {var r = t.refererInfo.referer, o = !! r.match (/ ^ https: /); return e .map (function (e) {var a; a = n.getBidIdParameter (« page », e.params)? n.getBidIdParameter (« page », e.params): ibgetConfig (« pageUrl »)? ibgetConfig (« pageUrl ») : r; var s = n.getBidIdParameter (« channel_id », e.params), c = null, u = n.deepAccess (e, « mediaTypes.video.playerSize »), l = u [0] [0], f = u [0] [1], p = o || (n.getBidIdParameter (« secure », e.params)? 1: 0), g = {sdk_name: « Prebid 1 », versionOrtb: « 2.3 »} ; if (« »! = n.getBidIdParameter (« hide_skin », e.params) CSSEANDCH AR& (g.hide_skin = !! n.getBidIdParameter (« hide_skin », e.params)), « »! = n.getBidIdParameter ( « ad_volume », e.params) && (g.ad_volume = n.getBidIdParameter (« ad_volume », e.params)), « »! = n.getBidIdParameter (« ad_unit », e.params) && = g n.getBidIdParameter (« ad_unit », e.params)), « »! = n. getBidIdParameter (« outstream_options », e.params) && (g.outstream_options = n.getBidIdParameter (« outstream_options », e.params)), « »! = n.getBidIdParameter (« outstream_function », e.params) &CSS. outstream_function = n.getBidIdParameter (« outstream_function », e.params)), « »! = n.getBidIdParameter (« custom », e.params) && (g.custom = n.getBidIdParameter (« custom », e.params) ), « »! = n.getBidIdParameter (« pre_market_bids », e.params) &&n.isArray (n.getBidIdParameter (« pre_market_bids », e.params))) {var m = n.getBidIdParameter (« pre_market_bids », e. params); for (var b in g.pre_market_bids = [], m) {var v = m [b], y = « »; v.vast_url? y = ‘ ‘v.vast_url » « : v.vast_string&& (y = v.vast_string), g.pre_market_bids.push ({id: v.deal_id, seatbid: [{bid: [{impid: Date.now (), dealid: v.deal_id, price: v.price, adm: y}]}], cur: v.currency, ext: {event_log : [{}]}})}} var h = n.getBidIdParameter (« mime s « , e.params) || [ » application / javascript « , » video / mp4 « , » video / webm « ], _ = {id: e.bidId, secure: p, video: {w: l, h : f, ext: g, mimes: h}}; « »! = n.getBidIdParameter (« start_delay », e.params) && (_. video.startdelay = 0 Boolean (n.getBidIdParameter (« start_delay », e. params))), « »! = n.getBidIdParameter (« min_duration », e.params) && (_. video.minduration = n.getBidIdParameter (« min_duration », e.params)), « »! = n.getBidIdParameter (« max_duration », e.params) && (_. video.maxduration = n.getBidIdParameter (« max_duration », e.params)), « »! = n.getBidIdParameter (« placement_type », e.params) && (_ .video.ext.placement = n.getBidIdParameter (« placement_type », e.params)), « »! = n. getBidIdParameter (« position », e.params) && (_. video.ext.pos = n.getBidIdParameter (« position », e.params)), e.crumbs&&e.crumbs.pubcid&CSSEidcrumb )s.pubc = e.params ; var S = navigator.language? « language »: « userLanguage », A = {id: s, imp: _, site: {id: « », page: a, content: « content »}, device: {h : screen.height, w: screen.width, dnt: n.getDNT ()? 1: 0, language: navigator [S] .split (« -« ) [0], make: navigator.vendor? navigator.vendor: « », ua: navigator.userAgent}, ext: {wrap_response: 1}}; ibgetConfig (« cache ») &&i.b.getConfig (« cache.url ») &&! 0 === ibgetConfig (« cache. ignoreBidderCacheKey » » ) && (A.ext.wrap_response = 0), n.getBidIdParameter (« number_of_ads », e.params) && (A.ext.number_of_ads = n.getBidIdParameter (« number_of_ads) », e.para .m = {}; return 1 == n.getBidIdParameter (« spotx_all_google_consent », e.params) && (I.consented_providers_settings = d), t&&t.gdprConsent&CSSEANDC HAR ( I.consent = t.gdprConsent.consentString, void 0! == t.gdprConsent.gdprApplies&&n.deepSetValue (A, « regs.ext.gdpr », t.gdprConsent.gdprApplies? 1: 0, .deApplies? 1: 0)) « regs.ext.us_privacy », t.uspConsent), n.deepAccess (e, « userId.id5id.uid ») && (I.eids = I.eids || [], I.eids. push ({source: « id5-sync.com », uids: [{id: e.userId.id5id.uid, ext: e.userId.id5id.ext || {}}]})), c&& (I. fpc = c), e&&e.schain&& (A.source = {ext: {schain: e.schain}}), e&&e.userId&&e.userId.tdid&CeSSAND ({source .org « , uids: [{id: e.userId.tdid, ext: {rtiPartner: » TDID « }}]})), n.isEmpty (I) || (A.user = {ext: I}) , {method: « POST », url: « https://search.spotxchange.com/openrtb/2.3/dados/ » s « ? src_sys = prebid », data: A, bidRequest: t}})}, interpretResponse: function (e, t) {var r = [], a = e.body; return a&&n.isArray (a.se atbid) &&n._each (a.seatbid, function (e) {n._each (e.bid, function (e) {var c = {}; for (var d in t.bidRequest.bids) e.impid == t.bidRequest.bids [d] .bidId&& (c = t.bidRequest.bids [d]); n._each (c.params.pre_market_bids, function (t) {t.deal_id == e.id&& (e.price = t.price, a.cur = t.currency)}); var u = {requestId: c .bidId, currency : a.cur || « USD », cpm: e.price, creativeId: e.crid || « », dealId: e.dealid || « », ttl: 360, netRevenue:! 0, channel_id: a.id, mediaType: sd, width: ew, height: eh}; ibgetConfig (« cache ») &&i. b.getConfig (« cache.url ») &&! 0 === ibgetConfig (« cache.ignoreBidderCacheKey »)? u.vastXml = e.adm: (u.cache_key = e.ext.cache_key, u.vastUrl = « https : //search.spotxchange.com/ad/vast.html? key = « e.ext.cache_key, u.videoCacheKey = e.ext.cache_key), u.meta = u.meta || {}, e&&e. adomain&&e.adomain.length> 0&& (and meta.advertiserDomains = e.adomain); var f = n.deepAccess (c, « mediaTypes.video.context »), p = n.de epAccess (c, « params.ad_unit « ); if ( » outstream « == f || » outstream « == p) {var g = n.deepAccess (c, » mediaTypes.video.playerSize « ), m = oa install ({id: 0, url : « / », config: {adText: « SpotX outstream video ad via Prebid.js », player_width: g [0] [0], player_height: g [0] [1], content_page_url: n.deepAccess (t, » data.site.page « ), ad_mute: !! n.deepAccess (c, » params.ad_mute « ), hide_skin: !! n.deepAccess (c, » params.hide_skin « ), outstream_options: n.deepAccess (c, « params.outstream_options »), outstream_function: n.deepAccess (c, « params.outstream_function »)}}); try {m.setRender (l), m.setEventHandlers ({impression: function () {return n.logMessage ( « SpotX Outstream Video Impression Event »)}, loaded: function () {return n.logMessage (« SpotX Outstream Video Loaded Event »)}, ended: function () {n.logMessage (« SpotX Outstream Renderer Video Event ») )}})} catch (e) {n.logWarn (« Prebid Error calling s etRender or setEventHandlers on renderer « , e)} u.renderer = m} r.push (u)})}), r}}; function l (e) {var t = function (e) {var t = n. getBidIdParameter (« slot », e.renderer.config.outstream_opt ionen); n.logMessage (« [SPOTX] [renderer] handle SpotX outstream renderer »); var r = window.document.createElement (« script »); r .type = « text / javascript », r.src = « https://js.spotx.tv/easi/v1/ » e.channel_id « .js »; var i = {}; i [« data-spotx_channel_id » ] = « » e.channel_id, i [« data-spotx_vast_url »] = « » e.vastUrl, i [« data-spotx_content_page_url »] = e.renderer.config.content_page_url, i [« data-spotx_ad_unit »] = » incontent « , n.logMessage ( » [SPOTX] [renderer] standard behavior « ), n.getBidIdParameter ( » ad_mute « , e.renderer.config.outstream_options) && (i [ » data-spotx_ad_mute « ] = » 1 « ), i [« data-spotx_collapse »] = « 0 », i [« data-spotx_autoplay »] = « 1 », i [« data-spotx_blocked_autoplay_override_mode »] = « 1 », i [« data-spotx_video_slot_can_autoplay »] = « 1 « ; var o = n.getBidIdParameter ( » playersize_auto_adapt « , e.renderer.config.outstream_options); if (o& &n.isBoolean (o) &&! 0 === o) {var a = e.width&&n.isNumber (e.width) &&e.heightCSSEAND. e .width / e.height: 4/3, s = window.document.getElementById (t) .clientWidth, c = e.renderer.config.player_width, d = e.renderer.config.player_height, u = 0, l = 0; s <c&& (d = (c = s) / a), a = 0? r.connection.downlink.toString (): « »), timeToFirstByte: s (window), data: n, deviceWidth: screen.width, hb_version: » 5.2.0 « }; e [0] .schain&& (i.schain = e [0] .schain); var o = t.gdprConsent; if (t&&o) {var d = » boolean « == typeof o.gdprApplies, u = « string » == typeof o.consentString, l = d? function (e, t, r) {var n = 12; return e? function (e, t) {return e&&1 === t? e.hasGlobalScope || e.hasGlobalConsent:! (! e || 2! == t || e.isServiceSpecific)} (t, r) && (n = 11): n = 0, n} (o.gdprApplies, o.vendorData , o.apiVersion): 22; i.gdpr_iab = {consent: u? o.consentString: « », status: l, apiVersion: o.apiVersion}} return t&&t.uspConsent&& (i.us_privacy), {uspConsent) method: « POST », url: « https://a.teads.tv/hb/bid-request » , data: JSON.s tringify (i)}}, interpretResponse: function (e, t) {var r = []; return (e = e.body) .responses&&e.responses.forEach (function (e) {var t = {cpm: e. cpm, width: e.width, height: e.height, currency: e.currency, netRevenue:! 0, ttl: e.ttl, meta: {advertiserDomains: e&&e.adomain? e.adomain: []}, ad: e.ad, requestId: e.bidId, creativeId: e.creativeId, placementId: e.placementId}; e.dealId&& (t.dealId = e.dealId), r.push (t)}), r}}; function a (e) {var t = « »; return e&&e.refererInfo&&e.refererInfo.referer&& (t = e.refererInfo.referer), t} Function s (e) {var t = e.performance ||Perform || e.msPerformance || e.mozPerformance, r = t&& « function » == typeof t.getEntriesByType&& « [object Function] » === Object.prototype.toString.call (t.getEntriesByByType.getEAND « CSSEAND » [0] &&t.getEntriesByType (« navigation ») [0] .responseStart&&t.get EntriesByType (« navigation ») [0] .requestStart&&t.getCHAR&t.getCHAR&t. [0] .requestStart> 0&&Math.round (t (get « EntriesBy ») [0] .responseStart-t.getEntriesByType (« navigation ») [0] .requestStart); if (r) return r.toString (); var n = t&&t.timing.responseStart&&t.timing.requestStart&&t .timing.requestStart> 0&TCHAR&t.timing} function? }, r = i.getValue (e.params, « placementId »), n = i.getValue (e.params, « pa geId « ); return t.sizes = function (e) {return i.parseSizesInput (function (e) {var t = i.deepAccess (e, » mediaTypes.video.playerSize « ), r = i.deepAccess (e, « mediaTypes.video.sizes »), n = i.deepAccess (e, « mediaTypes.banner.sizes »); return i.isArray (n) || i.isArray (t) || i.isArray (r)? [n, r, t] .reduce (function (e, t) {retur n i.isArray (t) && (i.isArray (t [0])? t.forEach (function (t) {e.push ( t)}): e.push (t)), e}, []): e.sizes} (e)} (e), t.bidId = i.getBidIdParameter (« bidId », e), t.bidderRequestId = i.getBidIdParameter (« bidderRequestId », e), t.placementId = parseInt (r, 10), t.pageId = parseInt (n, 10), t.adUnitCode = i.getBidIdParameter (« adUnitCode », e), t .auctionId = i.getBidIdParameter (« auctionId », e), t.transactionId = i.getBidIdParameter (« transactionId », e), t} Function d (e) {return parseInt (e)> 0} Object (n.registerBidder ) (o)}}, [682]), pbjsChunk ([87], {696: function (e, t, r) {e.exports = r (697)}, 697: function (e, t, r) {Object.defineProperty (t, « __ esModule », {value:! 0}), rd (t, « tripleliftAdapterSpec », function () {return b}); var n = r (2), i = r (1) , o = r (0), a = r ( 3); function s () {return (s = Object.assign || function (e) {for (var t = 1; t <arguments.length; t) {var r = arguments [t]; for (var n in r) Object. Prototype.hasOwnProperty.call (r, n) && (e [n] = r [n])} return e}). Apply (this, arguments)} function c (e) {return (c = "function" == Symboltyp&CSSEANDCH AR "symbol" == _ typeof (Symbol.iterator)? Function (e) {return _typeof (e)}: function (e) {return e&& "function" == typeof Symbol&&e.constructor === Symbol! ==&e . Prototype? "Symbol": _ typeof (e)}) (e)} Function d (e, t) {var r = Object.keys (e); if (Object.getOwnPropertySymbols) {var n = Object.getOwnPropertySymbols (e ); t&& (n = n.filter (function (t) {return Object.getOwnPropertyDescriptor (e, t) .enumerable})), r.push.apply (r, n)} return r} function u (e) { for (var t = 1; t e.length) && (t = e.length); for (var r = 0, n = new array (t); r 0&& (t.user = {ext: {eids: i}}); var c = function (e, t) {var r = {}; return o.isEmpty (e) || (r.schain = u ({}, e)), o.isEmpty (t) || (r.fpd = u ({}, t)), r} (r, n); back o. isEmpty (c) || (t.ext = c), t} (e); if (r = o.tryAppendQueryString (r, « lib », » prebid « ), r = o.tryAppendQueryString (r, » v « , » 5.2.0 « ), t&&t.refererInfo) {var i = t.refererInfo.referer; r = o.tryAppendQueryString (r, » referrer « , i )} return t&&t.timeout&& (r = o.tryAppendQueryString (r = o.tryAppendQueryString (« tmax », t.timeout))), t&&t.gdprCHARConsentSSEAND! dprConsent.gdprApplies&& (g = t.gdprConsent.gdprApplies, r = o.tryAppendQueryString () « , g. » g)), void 0! == t.gdprConsent.consentString, rtring&dprentCSS .tryAppendQueryString (r, « cmp_cs », m))), t&&t.uspConsentChart, « us_privacy », t.uspConsent)) ,! 0 === abgetConfig (« coppa ») && (rend = o.QueryString (rend = o.QueryString) « coppa »,! 0)), r.lastIndexOf (« & ») === r.length-1&& (r = r.substring (0, r.length-1)), o.logMessage (« tlCall request created: « r), {method: » POST « , url: r, data: n, bidderRequest: t}}, interpretResponse: function (e, t) {var r = t.bidderRequest; return (e. body.bids || []). map (function (e) {return function (e, t) {var r = {}, n = t.width || 1, i = t.height || 1, o = t.deal_id || « », a = t.crid || « », s = e.bids [t.imp_id]; return 0! = t.cpm&&t.ad&& (r = {requestId: s.bidId, cpm: t.cpm, width: n, height: i, netRevenue:! 0, ad: t.ad, creativeId: a, dealId: o, currency: « USD », ttl: 300, tl_source: t.tl_source, meta: { }}, v (s) && (r.vastXml = t.ad, r.mediaType = « video »), t.advertiser_name&& (r.meta.advertiserName = t.advertiser_name), t.adomain&&t (. meta.advertiserDomains = t.adomain), t.tl_source&& « hdx » == t.tl_source&& (r.meta.mediaType = « banner »), t.tl_source&ANDCHAR « hdx » ==& « tlSSEANDCHAR » tl = « native »)), r} (r, e)})}, getUserSyncs: function (e, t, r, n) {var i = function (e) {if (e) return e.iframeEnabled? « iframe « : e.pixelEnabled? » image « : void 0} (e); if (i) {var a = » https://eb2.3lift.com / sync? « ; return » image « === iCSSEANDCH AR& (a = o.tryAppendQueryString (a, « px », 1), a = o.tryAppendQueryString (a, « src », « prebid »)), null! = = M&& (a = o.tryAppendQueryString (a, » gdpr « , g), a = o.tryAppendQueryString (a, » cmp_cs « , m)), n&& (a = o.tryAppendQueryString (a, » us_privacy « , n)), [{type: i, url: a} ]}}}; Function v (e) {return !! e.mediaTypes.video&& !! e.mediaTypes.video.context&& « instream » === e.mediaTypes. video.context.toLowerCase ()} function y (e) {var t = null; if (« function » == typeof e.getFloor) {var r = e.getFloor ({currency: « USD », mediaType: v ( e)? « video »: « banner », size: « * »}); « object »! == c (r) || « USD »! == r.currency || isNaN (parseFloat (r.floor) ) || (t = parseFloat (r.floor))} return null! == t? t: e.params.floor} Function h (e, t) {o.isEmpty (t) || Object.keys (t ) .forEach (function (r) {null! = t [r] && (e [r] = t [r])})} function _ (e, t, r, n) {return e.map (function ( e) {return function (t) {return t&&t.userId&&t.userId [e]}} (t)). filter (function (e) {return!! e}). map (function (e, t) {return function (r) {return {source: e, uids: [{id: r, ext: {rtiPartner: t}}]}}} (r, n))} Function S (e) {return e.filter (A) .map (function (e) {return {w: e [0], h: e [1]}})} Function A (e) {return 2 === e.length&& « number » == typeof e [0 ] && « number » == typeof e [1]} Object (i.registerBidder) (b)}}, [696]), pbjsChunk ([7], {21: function (e, t, r) {tb = function (e) {var t = []; for (var r in e) if (e.hasOwnProperty (r)) if ( « pubProvidedId » == = r) t = t.concat (e.pubProvidedId); else {var n = o (e [r], r); n&&t.push (n)} return t}, ta = function (e ) {var t = []; return e.filter (function (e) {return n.isPlainObject (e.idObj) &&Object.keys (e.idObj) .length}). forEach (function (e) {Object.keys (e.idObj) .forEach (Function n (r) {n.deepAccess (e, « config.bidders ») &&Array.isArray (e.config.bidders) &&n.deepAccess (i, r « .source ») &CSSEAND. push ({source: i [r] .source, bidders: e.config.bidders})})}), t}; var n = r (0), i = {intentIqId: {source: « intentiq.com » , atype: 1}, pubcid: {source: « pubcid.org », atype: 1}, tdid: {source: « adserver.org », atype: 1, getUidExt: function () {return {rtiPartner: « TDID » }}}, id5id: {getValue: function (e) {return e.uid}, source: « id5-sync.com », atype: 1, getUidExt: function (e) {if (e.ext) return e. ext}}, parrableId: {source: « parrable.com », atype: 1, getValue: function (e) {return e.eid? e.eid: e.ccpaOptout? « : null}, getUidExt: function (e) {var t = n.pick (e, [« ibaOptout », « ccpaOptout »]); if (Object.keys (t) .length) return t}}, idl_env: {source: « liveramp.com », atype: 3}, lipb: {getValue: function (e) {return e.lipbid}, source: « liveintent.com », atype: 3, getEidExt: function (e) {if (Array.isArray (e.segments) &&e.segments.length) return {segments: e.segments}}}, britepoolid: {source: » britepool.com « , atype e: 3}, dmdId: {source: » hcn.health « , atype: 3}, lotamePanoramaId: {source: » crwdcntrl.net « , atype: 1}, criteoId: {source: » criteo .com « , atype: 1}, merkleId: {source: » merkleinc.com « , atype: 3, getValue: function (e) {return e.id}, getUidExt: function (e) {return e&&e.keyID? { keyID: e.keyID}: void 0}}, netId: {source: « netid.de », atype: 1}, IDP: {source: « zeotap.com », atype: 1}, haloId: {source: » audigent.com « , atype: 1}, quantcastId: {source: » quantcast.com « , atype: 1}, nextrollId: {source: » nextroll.com « , atype: 1}, idx: {source: » idx. lat « , atype: 1}, connectid: {source: » verizonmedia.com « , atype: 3}, fabrickId: {source: » neustar.biz « , atype: 1}, mwOpenLinkId: {source: » mediawallahscript.com » , atype: 1}, tapadId: {source: « tapad. com « , atype: 1}, novatiq: {getValue: function (e) {return e.snowflake}, source: » novatiq.com « , atype: 1}, uid2: {source: » uidapi.com « , atype: 3, getValue: function (e) {return e.id}}, deepintentId: {source: « deepintent.com », atype: 3}, admixerId: {source: « admixer.net », atype: 3}, amxId: {source: « amxrtb.com », atype: 1}}; function o (e, t) {var r = i [t]; if (rC SSEANDCHAR&e) {var o = {}; o.source = r.source ; var a = n.isFn (r.getValue)? r.getValue (e): e; if (n.isStr (a)) {var s = {id: a, atype: r.atype}; if (n .isFn (r.getUidExt)) {var c = r.getUidExt (e); c&& (s.ext = c)} if (o.uids = [s], n.isFn (r.getEidExt)) {var d = r.getEidExt (e); d&& (o.ext = d)} return o}} return null}}, 716: function (e, t, r) {e.exports = r (717)}, 717: function (e, t, r) {Object.defineProperty (t, « __ esModule », {value:! 0}), rd (t, « PBJS_USER_ID_OPTOUT_NAME », function () {return w}), rd (t, « coreStorage » , function () {return x}), rd (t, « syncDelay », function () {return S}), rd (t, « auctionDelay », function () {return A}), t.setSubmoduleRegistry = function ( e) {R = e}, t.setStoredValue = B, t.set StoredConsentData = M, t.findRootDomain = F, t.requestBidsHook = G, rd (t, « validateGdprEnforcement », function () {return Q}), t.attachIdSystem = $, t.init = Z; var n = r ( 11), i = rn (n), o = r (3), a = r (9), s = rn (a), c = r (0), d = r (16), u = r (7 ), l = r (5), f = rn (l), p = r (10), g = r (21), m = r (8), b = r (12), v = rn (b) ; Function y (e, t) {(null == t || t> e.length) && (t = e.length); for (var r = 0, n = new array (t); r 1&&void 0! == arguments [1]? argume nts [1] : void 0, n = r? « ». concat (e.name, « _ »). concat (r): e.name; try {if (e.type === E) t = x .getCookie (n ); else if (e.type === O) {var i = x.getDataFromLocalStorage (« ». concat (e.name, « _ exp »)); « » === i? t = x .getDataFromLocalStorage (n ): i&&new Date (i) .getTime () – Date.now ()> 0&& (t = decodeURIComponent (x.getDataFromLocalStorage (n)))} « string » == typeof t&&. {=== t&&. trim (). charAt (0) CSSEANDCH AR&(t=JSON.parse(t))}catch(e){c.logError(e)}return t}function N(e){var t={consentString: » « ,gdprApplies:!1,apiVersion:0};return e&&(t.consentString=e.consentString,t.gdprApplies=e.gdprApplies,t.apiVersion=e.apiVersion),c.cyrb53Hash(JSON.stringify(t) )}Funktion M(e){try{var t=new Date(Date.now() 864e5*C).toUTCString();x.setCookie(T,N(e),t, »Lax »)}catch( e){c.logError(e)}}Funktion q(){try{return x.getCookie(T)}catch(e){c.logError(e)}}Funktion z(e){if(e&& »boolean « ==Typ von e.gdprApplies&&e.gdprApplies){if(!e.consentStri ng)return!1;if(1===e.apiVersion&&!1===c.deepAccess(e, »vendorData.purposeConsents.1″))return!1;if(2===e.apiVersion&&!1 ===c.deepAccess(e, »vendorData.purpose.consents.1 »))return!1}return!0}function F(){var e=arguments.length>0&&void 0!==arguments[0]? arguments[0]:window.location.hostname;if(!x.cookiesAreEnabled())return e;var t,r,n=e.split(« . »);if(2==n.length)return e ;var i=-2,o= »_rdc ».concat(Date.now()),a= »writeable »;do{t=n.slice(i).join(« . »);var s=new Date(c.timestamp() 1e4).toUTCString();x.setCookie(o,a,s, »Lax »,t,void 0),x.getCookie(o,void 0)===a?(r =!1,x.setCookie(o, » », »Do, 01 Jan 1970 00:00:01 GMT »,void 0,t,void 0)):(i =-1,r=Math.abs(i )0){t=!0;var n=!1,i=function(){n||(n=!0,e())};c.logInfo(« ».concat( I, » – Auktion verzögert um « ).concat(A, » höchstens um IDs abzurufen »)),_=setTimeout(i,A),L(r,i)}else saon(faEVENTS.AUCTION_END,function e(){saoff(faEVENTS.AUCTION_END,e),S>0?setTimeout(function(){L(r)},S):L(r)})}e&&!t&&e()}function G( e,t){V(function(){(function(e,t){[e].some(function(e){return!Array.isArray(e)||!e.length})||e. forEach(function(e){e.bids&&c.isArray(e.bids)&&e.bids.forEach(function(e){var r=function(e,t){return Array.isArray(e)&&e.length&&t? .filter(function(e){return!e.config.bidders||!c.isArray(e.config.bidders)||v()(e.config.bidders,t)}).filter(function(e ){return c.isPlainObject(e.idObj)&&Object.keys(e.idObj).length}).reduce(function(e,t){return Object.keys(t.idObj).for Each(function(r){ e[r]=t.idObj[r]}),e},{}):{}}(t,e.bieter);Objekt.Schlüssel s(r).length&&(e.userId=r,e.userIdAsEids=Object(gb)(r))})})})(t.adUnits||Object(da)().adUnits,h),e .call(this,t)})}function K(){return V(),W(h)}function H(){return V(),Object(gb)(W(h))}function J(e ,t){var r=e?e.submoduleNames:null;r||(r=[]),V(function(){var e=u.gdprDataHandler.getConsentData(),n=Q(D,e) ,i=n.userIdModules;if(n.hasValidated||z(e)){var o=q();M(e);var a,s=[],d=Funktion(e,t){var r= »undefined »!=Typ des Symbols&&e[Symbol.iterator]||e[« @@iterator »];if(!r){if(Array.isArray(e)||(r=Funktion(e,t) {if(e){if(« string »==typeof e)return y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return »Object » ===r&&e.constructor&&(r=e.constructor.name), »Map »===r|| »Set »===r?Array.from(e): »Arguments »===r||/ ^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?y(e,t):void 0}}(e))|| t&&e&& »number »==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:f unction(){return n>=e.length?{done:!0}:{done:!1,value:e[n]}},e:function(e){throw e},f:i}} throw new TypeError(« Ungültiger Versuch, eine nicht iterierbare Instanz zu iterieren.nUm iterierbar zu sein, müssen Nicht-Array-Objekte eine [Symbol.iterator]()-Methode haben. »)}var o,a=!0,s= !1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function( e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}} (i);try{for(ds();!(a=dn()).done;){var l=a.value;r.length>0&&-1===r.indexOf(l.submodule. name)||(c.logInfo(« ».concat(I, » – erfrischend « ).concat(l.submodule.name)),Y(l,e,o,!0),c.isFn(l. callback)&&s.push(l))}}catch(e){de(e)}finally{df()}s.length>0&&L(s),t&&t()}else c.logWarn(« ».concat( I, » – gdpr-Berechtigung nicht g ültig für lokale Speicherung oder Cookies, Exit-Modul »))})}var Q=Object(pb)(« sync »,function(e,t){return{userIdModules:e,hasValidated:t&&t .hasValidated}} », ValidateGdprEnforcement »);Funktion Y(e,t,r,n){if(e.config.storage){var i,o=U(e.config.storage),a=!1;if(« number »= =typeof e.config.storage.refreshInSeconds){var s=new Date(U(e.config.storage, »last »));a=s&&Date.now()-s.getTime()>1e3*e.config .storage.refreshInSeconds}!o||a||n||!function(e,t){return null!=r&&r===N(t)}(0,t)?i=e.submodule.getId( e.config,t,o): »function »==typeof e.submodule.extendId&&(i=e.submodule.extendId(e.config,t,o)),c.isPlainObject(i)&&(i.id&& (B(e,i.id),o=i.id), »function »==typeof i.callback&&(e.callback=i.callback)),o&&(e.idObj=e.submodule.decode(o ,e.config))}else if(e.config.value)e.idObj=e.config.value;else{var d=e.submodule.getId(e.config,t,void 0);c.isP lainObject (d)&&(« function »==typeof d.callback&&(e.callback=d.callback),d.id&&(e.idObj=e.submodule.decode(d.id,e.config))) }}Funktion X(){var e=function(e,t,r){return Array.isArray(e)?e.reduce(function(e,t){return!t||c.isEmptyStr(t.name )||(!t.storage||c.isEmptyStr(t.storage.type)||c.isEmptyStr(t.storage.name)||-1===r.indexOf(t.storage.type)? c.isPlainObject(t.value)?e.push(t):t.storage||t.value||e.push(t):e.push(t)),e},[]):[] }(k,0,j);if(e.length){var t=R.filter(function(e){return!i()(D,function(t){return t.name===e. name})});D=t.map(function(t){var r=i()(e,function(e){return e.name&&(e.name.toLowerCase()===t.name. toLowerCase()||t.aliasName&&e.name.toLowerCase()===t.aliasName.toLowerCase())});return r&&t.name!==r.name&&(r.name=t.name),t. findRootDomain=F,r?{submodule:t,config:r,callback:void 0,idObj:void 0}:null}).filter(function(e){return null!==e}),!P&&D.length&& (Object(da)().requestBids.before(G,40),c.logInfo(« ».concat(I, » – usersync-Konfiguration aktualisiert für « ).concat(D.length, » Untermodule: « ), D.map(function(e){return e.submodule.name})),P=!0)}}function $(e){i()(R,function(t){return t.name=== e.name})||(R.push(e),X())}Funktion Z(e){D=[],k=[],P=!1,h=void 0,-1!= =(j=[x.localStorageIsEnabled()?O :null,x.cookiesAreEnabled()?E:null].filter(function(e){return null!==e})).indexOf(E)&&x.getCookie (w)?c.logInfo(« ».concat(I, » – Opt-Out-Cookie gefunden, Exit-Modul »)):-1!==j.indexOf(O)&&x.getDataFromLocalStorage(w)?c.logInfo (« ».concat(I, » – Opt-out localStorage gefunden, Modul beenden »)):(e.getConfig(function(e){var t=e.userSync;t&&t.userIds&&(k=t.userIds,S =c.isNumber(t.syncDelay)?t.syncDelay:500,A=c.isNumber(t.auctionDelay)?t.auctionDelay:0,X())}),Object(da)().getUserIds=K ,Object(da)().getUserIdsAsEids=H,Object(da)().refreshUserIds=J)}Z(ob),Object(pc)(« userId »,$)}},[716]),pbjs. processQueue();
}, {}];
window.modules[« visibility.legacy »] = [function(require,module,exports){« use strict »;DS.service(« $visibility »,[« $document », »$window », »_throttle », « Eventify »,function(e,t,n,i){var o,r,h=[];function s(e,t){return et?e:t}function d(e,t,n){!e.preload&&e.preloadThreshhold&&function(e,t,n,i){return t.top=e .shownThreshold&&!e.seen?(e.seen=!0,setTimeout(function(){e.trigger(« shown »,new r(« shown »,t))},15)):(!n|| i1&&(h =e(r,Math.floor(n/o),i-1,o)),h},this. getVerticallyVisiblePixels=f,this.getViewportHeight=function(){return t.innerHeight||e.documentElement.clientHeight||e.body.clientHeight},this.getViewportWidth=function(){return t.innerWidth||e.documentElement. clientWidth||e.body.clientWidth},this.isElementNotHidden=u,this.isElementInViewport=function(n){var i=n.getBoundingClientRect();return i.top>=0&&i.left>=0&&i.bottom<= (t.innerHeight||e.documentElement.clientHeight)&&i.right<=(t.innerWidth||e.documentElement.clientWidth)},this.Visible=o}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require ;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '" o "'");throw f.code ="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1 ][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require ;for(var o=0;o<r.length;o )s(r[o]);return s})(window.modules,{},[]);
'streng verwenden';
/ **
* Lege Legacy-Dienste von _global.js ein, falls vorhanden
* /
Function _createForOfIteratorHelper (o, allowArrayLike) {var it; if (symbol type === « undefined » || o [Symbol.iterator] == null) {if (Array.isArray (o) || (it = _unsupportedIterableToArray (o)) || allowArrayLike && o && typeof o. length === « number ») {if (es) o = es; vari = 0; var F = function F () {}; return {s: F, n: function n () {if (i> = o.length) return {done: true}; return {done: false, value: o [i]}; }, e: function e (_e) {throw _e; }, f: F}; } throw new TypeError (« Invalid attempt to iterate a non-iterable instance. nTo be iterable, non-array objects must have a [Symbol.iterator] () method. »); } var normalCompletion = true, didErr = false, err; return {s: function s () {it = o [symbol.iterator] (); }, n: function n () {var step = it.next (); normalCompletion = step.done; Return step; }, e: function e (_e2) {didErr = true; Error = _e2; }, f: function f () {try {if (! normalCompletion && it.return! = null) it.return (); } finally {if (didErr) throw err; }}}; }
Function _unsupportedIterableToArray (o, minLen) {if (! O) return; if (typeof o === « string ») return _arrayLikeToArray (o, minLen); var n = Object.prototype.toString.call (o) .slice (8, -1); if (n === « Object » && o.constructor) n = o.constructor.name; if (n === « Map » || n === « Set ») return Array.from (o); if (n === « Arguments » || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray (o, minLen); }
function _arrayLikeToArray (arr, len) {if (len == null || len> arr.length) len = arr.length; for (var i = 0, arr2 = new array (len); i <len; i) {arr2 [i] = arr [i]; } Return arr2; }
Function mountLegacyServices () {
Object.keys (window.modules) .filter (function (key) {
Return type of the key === ‘string’ && key.match (/ . Legacy $ /);
}). forEach (function (key) {
Return window.require (key);
});
}
Function tryToMount (fn, el, name) {
To attempt {
fn (el); // initialize controller
} catch (e) {
var elementTag = el.outerHTML.slice (0, el.outerHTML.indexOf (el.innerHTML));
console.error (« Error initializing controller for » « . concat (name, » « on » « ). concat (elementTag, » « »), e);
}
}
/ **
* mount client.js component controller controller
* /
Function mountComponentModules () {
Object.keys (window.modules) .filter (function (key) {
Return type of the key === ‘string’ && key.match (/ . Client $ /);
}). forEach (function (key) {
var controllerFn = window.require (key);
if (control type Fn === ‘function’) {
var name = key.replace (‘. client’, »),
instancesSelector = « [data-uri * = » _ components / « . concat (name, » / « ] »),
defaultSelector = « [data-uri $ = » _ components « .concat (name, » « ] »),
Instances = document.querySelectorAll (instancesSelector),
defaults = document.querySelectorAll (defaultSelector);
var _iterator = _createForOfIteratorHelper (instances),
_Step;
To attempt {
for (_iterator.s ();! (_ step = _iterator.n ()). done;) {
var el = _step.value;
tryToMount (controllerFn, el, name);
}
} catch (err) {
_iterator.e (err);
} in the end {
_iterator.f ();
}
var _iterator2 = _createForOfIteratorHelper (default values),
_Step 2;
To attempt {
for (_iterator2.s ();! (_ step2 = _iterator2.n ()). done;) {
var _el = _step2.value;
tryToMount (controllerFn, _el, name);
}
} catch (err) {
_iterator2.e (err);
} in the end {
_iterator2.f ();
}
}
});
} // Make sure there is a `window.process.env.NODE_ENV` available in the client for all dependencies,
// Services or components that might require it
// Note: The value « is exchanged for the actual environment variable in /lib/cmd/compile/scripts.js
Window.process = window.process || {};
window.process.env = window.process.env || {};
if (! window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = »;
} // Note: Legacy controllers that need legacy services (e.g. Dollar-Slice) must
// wait for DOMContentLoaded to initialize itself, since the files themselves have to be mounted first
mountLegacyServices ();
mountComponentModules ();
//]]
Keywords: