prebid / Prebid.js

Setup and manage header bidding advertising partners without writing code or confusing line items. Prebid.js is open source and free.
https://docs.prebid.org
Apache License 2.0
1.31k stars 2.07k forks source link

Price Floors module rejects valid bids ? #8565

Closed matthieularere-msq closed 2 years ago

matthieularere-msq commented 2 years ago

Type of issue

bug

Description

In prebid's console log lines I can see bid which are rejected by the price floor module but as far as I understand they are valid bids. For example see attached screenshot, where floorValue 0.25 is set in currency EUR, a 0.2886 USD bid is received, converted to 0.2761 EUR but is rejected.

Steps to reproduce

I noticed this behavior on this page https://www.marmiton.org/?pbjs_debug=true after a few refreshs.

Is there something I missed with the reason why this bid was rejected ?

Thanks.

dgirardi commented 2 years ago

I do not see a screenshot in the OP - it would help to get an example of a bid you believe should not have been rejected together with your prebid configuration.

Trying on that website I saw this - does it qualify? rejectedBid

in that particular case the cpmAfterAdjustments is below the 0.25 floor. You have some adjustment logic but from my end it's not obvious how it works:

cpmadjustment

You should be able to set floors on unadjusted CPMs with the enforcement.bidAdjustment config option for the priceFloors module.

jlquaccia commented 2 years ago

Starting to look into and work on this ticket today

matthieularere-msq commented 2 years ago

Hi @dgirardi indeed that an example of rejected bids I see and where I don't understand why they are considering their cpm is higher than the floor value.

dgirardi commented 2 years ago

@matthieularere-msq because the CPM is being adjusted lower by your (or your colleagues') bidderSettings.standard.bidCpmAdjustment.

matthieularere-msq commented 2 years ago

Should the cpm value already reflect the cpm after adjustment in contrast with originalCpm ?

dgirardi commented 2 years ago

Indeed it should - and I missed that - it looks like it may be adjusted twice. Looking into this.

dgirardi commented 2 years ago

So, there are some quirks that make it confusing - but I believe the likely explanation is still that bidCpmAdjustment is the cause. To confirm it would help to capture network activity and check what the actual original CPM is for one of these bids.

The logic works like this: when a bid comes back from the backend, first it's passed through the currency module (priority 100), then the floors module (priority 50). At the end, just before it gets finally added to the auction, bidCpmAdjustment runs.

I believe what happens is:

So the cpm and originalCpm you see logged are those set after currency conversion, but before CPM adjustment.

I'll see if I can get another one of those bids from the website in the OP to conclusively say this is the case - if it is, I don't think it's great, but I'm not sure how to "fix" it - my instinct is that a single originalCpm does not work well with multiple adjustment steps, but it's going to be hard to redesign.

patmmccann commented 2 years ago

@robertrmartinez could you weigh in? Do you think this can be addressed straightforwardly?

dgirardi commented 2 years ago

Here's the confirmation - this is a problem about the meaning of cpm / originalCpm rather than price floors. This bid: AdagioRejected

Corresponds to this response from Adagio:

{
  "id": "904981a1-3fc3-43de-8e93-33dfe418d28b",
  "bids": [
    {
      "requestId": "20dcc4233181c8e",
      "creativeId": "392890663",
      "cpm": 1.25314785,
      "currency": "USD",
      "ad": "\u003cimg width=\"0\" height=\"0\" border=\"0\" alt=\"\" style=\"display: none;\" src=\"https://c.4dex.io/bimp.gif?adu_code=pegasus_placeholder_banner_atf\u0026auction_id=a41fe775-0f14-4ed9-91db-94a53355f95e\u0026bid_id=6C283AA1-5EE3-4B9C-806F-E76ADA036EDA\u0026bidder=pubmatic\u0026breq_id=894eb09c-5ace-4c0a-a01a-4f4480e19658\u0026browser=chrome\u0026buid=1\u0026buids=3310\u0026category=\u0026cpm=1.46567\u0026crea_id=392890663\u0026ctry=USA\u0026curr=USD\u0026deal_id=\u0026dvc=2\u0026environment=desktop\u0026h=250\u0026lzy=0\u0026mt=ban\u0026net_cpm=1.25314785\u0026org_id=1110\u0026os=linux\u0026partid=2022061714\u0026pgtyp=\u0026plcmt=banner_atf\u0026pn=1\u0026pub_id=10308\u0026pv_id=38e96607-9b56-4a86-9c4c-9f88d5ea87e9\u0026rpmadc_smpl=1\u0026rule_id=1145\u0026seattyp=shared\u0026site=marmiton-org\u0026sspv=4.3.0-gcp-las\u0026subcategory=\u0026tiv=16\u0026url=https%3A%2F%2Fwww.marmiton.org%2F%3Fpbjs_debug%3Dtrue\u0026vr=0.5\u0026w=970\" /\u003e\u003cspan class=\"PubAPIAd\"  id=\"6C283AA1-5EE3-4B9C-806F-E76ADA036EDA\"\u003e\u003cDIV STYLE=\"position: absolute; left: 0px; top: 0px; visibility: hidden;\"\u003e\u003cIMG SRC=\"https://pagead2.googlesyndication.com/pagead/gen_204?id=xbid\u0026dbm_b=AKAmf-DvhS_G_cw3L_y0kvPmBJ7q8w-d326rIXZhYlw95LZAEGmJ9f08qL5pSZOIIoXv-bW8bji4eKJS2gaQfVW1wvJa8qw0svwzlIvqbRPBbGPrE6R7OvM\" BORDER=0 WIDTH=1 HEIGHT=1 ALT=\"\" STYLE=\"display:none\"\u003e\u003c/DIV\u003e\u003ciframe title=\"Blank\" src=\"https://googleads.g.doubleclick.net/xbbe/pixel?d=CM3knwEQgOefARinkqy7ATAB\u0026v=APEucNWgCv17xVKIZHVt68HxJyYuL_z_PGwhqLHDGxOVOQA2BTV9I-ZyDtdqs1aszIOYiAKf59BXPY9HsCQbeBoZiAak7siVoF5r1HHT8WFDMNxvQ7DAMdHB437HNIbIC6HesvQvYX_kCq4gimj0djK-9k-HnRLOaZgqA2HvL6oBrERYB83XA78h8q6B_bgcqsgsyPuVeLZx8No2ke9417wphk3rbBKgLWyt5DLwz_hfbNQ8EXNeBos_HoaH3Tok3nAg67c6jsyNv-_GeauLtJjX37yIkj5WKJX7FYuspcPwtMiYqvCi_S1I5flDedTVG-gnqXkcvOUVN8uaP2VvZXy56iwfdj6MW-XKhKd7O6JC5v4xqyKMJJhteNic2_VyDk1cVC-w70VQ60iyghm8gTta2i6iuhfZUbA7-AZ7t1SQ9BuO69VWhm5OTQzD9PumBXnRbWGLqaBydp-j_YxPg0VbRC96xVDKNQY2wL8t-3XA6HlcF2bFuaIM8rlBnUKxum47aMir17y_z2aywrPx_2Z8tRxBIOv6CzXOQ9mZVNRtI3vnglJPrvFj_eTyiGGIuj6qqTBVF1P92R5pV5n2u7ZAARWGIOtoBVMsWmMEl862RSEp83JeieGYUkkHBK6NKIySSi-bCi4uTNyzrg0vO2Y6EaLuJ0Kf9NArbpWmZtqwpPSDTKw5b3asYa1a57Ve3RKbwTvXjoybdV5FeV6OwnwlPBmydKy44NHEjErdTP_1QzDRZtcKLBwg3Y23g8qf3GoiM0g24mzKpsP7BHeSy4wdW0P3GM8g5KRQ3mlcl5EHZth_4E8eJZpSYK0DnJ893VFmv2qPqLou_r_x0EA8gWI3FB-s59tfTmeVMr2fTRAHDmDTHeD3_AXeKcIwNQwk4X41GxKn106zDFjIlUTvgJPXh3TJ7K1sqMSUtuBPdStPGWoKxRRKOqaw6uBtCi95znnhtgwZLL1yR7mWSHw8jJIre72Wz-1oSMfeWTcY83fhLnU7lHr89Yc_oV_Kgww_CMXhVC-8s4faiVoqXPspBUY9zGmrS9ygSvXvjnWRVQ7nPv0NYzktogzZ0G4Z4Po9Z5HX4zi191HC3_1fMaQecRPD-GXHY8CX3NU5NJvB5s98S3T4o4btky8\" style=\"display:none\" aria-hidden=\"true\"\u003e\u003c/iframe\u003e\u003cdiv\u003e\u003cdiv style=\"position:relative; display:block;\"\u003e\u003cdiv class=\"GoogleActiveViewClass\" id=\"DfaVisibilityIdentifier_2355884792\"\u003e\u003cscript data-jc=\"75\" data-jc-version=\"r20220615\" data-jc-flags=\"[\u0026quot;x%278442\u0026#39;921378y\u0026quot;]\"\u003e(function(){/*  Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ var l=\"function\"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},m;if(\"function\"==typeof Object.setPrototypeOf)m=Object.setPrototypeOf;else{var n;a:{var p={a:!0},q={};try{q.__proto__=p;n=q.a;break a}catch(a){}n=!1}m=n?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+\" is not extensible\");return a}:null}var r=m,t=this||self;var u=new function(a,b){this.key=a;this.defaultValue=void 0===b?0:b;this.valueType=\"number\"}(\"100004\",16E3);/*  SPDX-License-Identifier: Apache-2.0 */ var v=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(\"string\"===typeof a)return\"string\"!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var d=0;d\u003ca.length;d++)if(d in a\u0026\u0026a[d]===b)return d;return-1},w=Array.prototype.forEach?function(a,b){Array.prototype.forEach.call(a,b,void 0)}:function(a,b){for(var d=a.length,c=\"string\"===typeof a?a.split(\"\"):a,e=0;e\u003cd;e++)e in c\u0026\u0026b.call(void 0,c[e],e,a)},x=Array.prototype.map?function(a,b){return Array.prototype.map.call(a, b,void 0)}:function(a,b){for(var d=a.length,c=Array(d),e=\"string\"===typeof a?a.split(\"\"):a,f=0;f\u003cd;f++)f in e\u0026\u0026(c[f]=b.call(void 0,e[f],f,a));return c},y=Array.prototype.reduce?function(a,b,d){return Array.prototype.reduce.call(a,b,d)}:function(a,b,d){var c=d;w(a,function(e,f){c=b.call(void 0,c,e,f,a)});return c};function z(a){for(var b=[],d=0;d\u003ca;d++)b[d]=\"\";return b};function A(a){A[\" \"](a);return a}A[\" \"]=function(){};function B(a,b){if(a)for(var d in a)Object.prototype.hasOwnProperty.call(a,d)\u0026\u0026b(a[d],d,a)}var C=/https?:\\/\\/[^\\/]+/;function D(a){return(a=C.exec(a))\u0026\u0026a[0]||\"\"}function E(a){a=void 0===a?document:a;return a.createElement(\"img\")};function F(a,b,d){a.google_image_requests||(a.google_image_requests=[]);var c=E(a.document);if(d){var e=function(){if(d){var f=a.google_image_requests,g=v(f,c);0\u003c=g\u0026\u0026Array.prototype.splice.call(f,g,1)}c.removeEventListener\u0026\u0026c.removeEventListener(\"load\",e,!1);c.removeEventListener\u0026\u0026c.removeEventListener(\"error\",e,!1)};c.addEventListener\u0026\u0026c.addEventListener(\"load\",e,!1);c.addEventListener\u0026\u0026c.addEventListener(\"error\",e,!1)}c.src=b;a.google_image_requests.push(c)};var G=0;function H(a){var b=document.currentScript;return(b=void 0===b?null:b)\u0026\u0026b.getAttribute(\"data-jc\")===String(a)?b:document.querySelector('[data-jc=\"'+a+'\"]')};function I(){J||(J=new K);var a=J.g[u.key];if(\"proto\"===u.valueType){try{var b=JSON.parse(a);if(Array.isArray(b))return b}catch(d){}return u.defaultValue}return typeof a===typeof u.defaultValue?a:u.defaultValue};function K(){this.g={};var a=H(G);a=a\u0026\u0026a.getAttribute(\"data-jc-flags\")||\"\";try{var b=JSON.parse(a)[0];a=\"\";for(var d=0;d\u003cb.length;d++)a+=String.fromCharCode(b.charCodeAt(d)^\"\\u0003\\u0007\\u0003\\u0007\\b\\u0004\\u0004\\u0006\\u0005\\u0003\".charCodeAt(d%10));this.g=JSON.parse(a)}catch(c){}}var J,L=K;function M(){this.g={}}L.prototype=l(M.prototype);L.prototype.constructor=L; if(r)r(L,M);else for(var N in M)if(\"prototype\"!=N)if(Object.defineProperties){var O=Object.getOwnPropertyDescriptor(M,N);O\u0026\u0026Object.defineProperty(L,N,O)}else L[N]=M[N];L.l=M.prototype;var P=RegExp(\"^https?://(\\\\w|-)+\\\\.cdn\\\\.ampproject\\\\.(net|org)(\\\\?|/|$)\");function Q(a){a=a||R();for(var b=new S(t.location.href,!1),d=null,c=a.length-1,e=c;0\u003c=e;--e){var f=a[e];!d\u0026\u0026P.test(f.url)\u0026\u0026(d=f);if(f.url\u0026\u0026!f.h){b=f;break}}e=null;f=a.length\u0026\u0026a[c].url;0!=b.depth\u0026\u0026f\u0026\u0026(e=a[c]);return new T(b,e,d)} function R(){var a=t,b=[],d=null;do{var c=a;try{var e;if(e=!!c\u0026\u0026null!=c.location.href)b:{try{A(c.foo);e=!0;break b}catch(h){}e=!1}var f=e}catch(h){f=!1}if(f){var g=c.location.href;d=c.document\u0026\u0026c.document.referrer||null}else g=d,d=null;b.push(new S(g||\"\"));try{a=c.parent}catch(h){a=null}}while(a\u0026\u0026c!=a);c=0;for(a=b.length-1;c\u003c=a;++c)b[c].depth=a-c;c=t;if(c.location\u0026\u0026c.location.ancestorOrigins\u0026\u0026c.location.ancestorOrigins.length==b.length-1)for(a=1;a\u003cb.length;++a)g=b[a],g.url||(g.url=c.location.ancestorOrigins[a- 1]||\"\",g.h=!0);return b}function T(a,b,d){this.i=a;this.j=b;this.g=d}function S(a,b){this.url=a;this.h=!!b;this.depth=null};function U(a,b,d,c,e){var f=[];B(a,function(g,h){(g=V(g,b,d,c,e))\u0026\u0026f.push(h+\"=\"+g)});return f.join(b)}function V(a,b,d,c,e){if(null==a)return\"\";b=b||\"\u0026\";d=d||\",$\";\"string\"==typeof d\u0026\u0026(d=d.split(\"\"));if(a instanceof Array){if(c=c||0,c\u003cd.length){for(var f=[],g=0;g\u003ca.length;g++)f.push(V(a[g],b,d,c+1,e));return f.join(d[c])}}else if(\"object\"==typeof a)return e=e||0,2\u003ee?encodeURIComponent(U(a,b,d,c,e+1)):\"...\";return encodeURIComponent(String(a))};function W(a,b){this.g=a;this.depth=b}function X(){function a(h,k){return null==h?k:h}var b=R(),d=Math.max(b.length-1,0),c=Q(b);b=c.i;var e=c.j,f=c.g,g=[];f\u0026\u0026g.push(new W([f.url,f.h?2:0],a(f.depth,1)));e\u0026\u0026e!=f\u0026\u0026g.push(new W([e.url,2],0));b.url\u0026\u0026b!=f\u0026\u0026g.push(new W([b.url,0],a(b.depth,d)));c=x(g,function(h,k){return g.slice(0,g.length-k)});!b.url||(f||e)\u0026\u0026b!=f||(e=D(b.url))\u0026\u0026c.push([new W([e,1],a(b.depth,d))]);c.push([]);return x(c,function(h){return Y(d,h)})} function Y(a,b){var d=y(b,function(e,f){return Math.max(e,f.depth)},-1),c=z(d+2);c[0]=a;w(b,function(e){return c[e.depth+1]=e.g});return c}function Z(){var a=X();return x(a,function(b){return V(b)})};G=75; window.rfl=function(a){try{var b=Number(0===(I()||0)?2083:I()),d=Z();d.pop();var c=b-a.length-5;for(b=0;b\u003cd.length;b++){var e=encodeURIComponent(d[b]);if(e.length\u003c=c)return setTimeout(function(){var f=void 0===f?.01:f;if(!(Math.random()\u003ef)){var g=H(75);g=\"https://\"+(g\u0026\u0026\"true\"===g.getAttribute(\"data-jc-rcd\")?\"pagead2.googlesyndication-cn.com\":\"pagead2.googlesyndication.com\")+\"/pagead/gen_204?id=jca\u0026jc=75\u0026version=\";var h=(h=H(75))\u0026\u0026h.getAttribute(\"data-jc-version\")||\"unknown\";f=g+h+\"\u0026sample=\"+f;g=window; var k=void 0===k?!1:k;if(h=g.navigator)h=g.navigator.userAgent,h=/Chrome/.test(h)\u0026\u0026!/Edge/.test(h)?!0:!1;h\u0026\u0026g.navigator.sendBeacon?g.navigator.sendBeacon(f):F(g,f,void 0===k?!1:k)}},0),a+\"\u0026rfl=\"+e}return a}catch(f){}return a};}).call(this);\u003c/script\u003e\u003cscript\u003evar url = 'https://googleads.g.doubleclick.net/dbm/ad?dbm_c=AKAmf-BN_ujQ6A_39NIHNZWs_G-H7YA-HYBptvkN-nhuX3Xjvo733deqpwIjSWe-ALB6NY_f8w9fVj81DqFaziZM0WxuA52ZB4c5Wr9YOoebQ7rBylYIggfoDMU-2nc9RYpwFFcXBwob-sZ51TECenavYH7vAqEnsQ\u0026cry=1\u0026dbm_d=AKAmf-BiaBHYyEhQVzJtsrRFaJvnYMO5CbF5BPj0NvinNIY_OpB9nbMGZdoH_zbxD6mlAgcPpJWrHWPCg1FGzWeif2lkUYMioCT5ydioULidbCHVrSDo7XgqNSvfYhodze6Bgv_DRpAIdttLnl9QdB-8nJDAP7jtrFcgNm2bfvD7PNm8XPpVH2KkOIbIqeVDO51qutrMaXH-HHuwXCE_s5mzHMqYW85Qeg6u9MYs0qvfX-Kz82lI9xCGCGmEtM3zYO3L0s4FAT555n0t4iJJP2_zO0P8Yc3rKQcA_W2cOpewPKU9a7UKzIWdM7xKwGxVY-73JVR1_YSj09E98Kub7IQV-ltYydkBRMZ3DjXG-V5peT9LN11LCpEICuYXKFDqh8PrJUeqaGScK7LXwczDzbv886agfQFxfJJrGg4_TpFxhOwj_Z0HlWrVcRnEmrwufL5DkJ4xTFoiXRcdn-l5oY6xVWdxXUNhuaZrAY9ohJh8eUIW2ROJ3Nr-n5LTNBCuxEwBl3yeMXeTjQacoCu1jjq4gWSo4-xcsav_RUUfWbdgRKw3t2Rxrbp0YmICvUAW_o5NqRz-2NTLt3fk7Wua3Huxo4EbAdWp3vtm_G9_LCODCAntrO0yj7noD-zOHd5YfQbBFLgVvqk78zcWxeLLj5mz5fBjqm87YcRaZxOeHiSSrMYMDJyasCHZOcTl9rvms3Ei1oFRwufbejoKh3JvTSCHiI8MHHo2zoVtWe9eG4yy1Wm-SiVY0mZsdx_S7aj9BIlSjDaQ3ydV9DopdUB1d9f7yphdLcQvFugNBjw9-xc6ajr061qJddr_q5ZOuBlhgEFhbCR-VtQQi_kpfPmWqKbdodprwArlZKG1aW9ePn9IQvzDepwM6UBmuQA8dQzjU5Nt2EoMu38M59cOO2tholrhl43kNEMnTiTrEeytMLajD_Y7sbRDzNkkiZvixKG29WSFU1NlIpD3dlPnbE4-pnZ-IuyjPNFN8iENKK7lYnt1dLfGb8hxUkPwKoN7jB41biWN62BJEUfWaLl5nlslQxTrbZkG9_X5sHRY2o9sjpIux0SHyX9-TkZdKIqyAR-f3NLEK45zh8zlqc3JXXlcmlQs8TV7eeMUOpbuoQBIWrbG9XZacqN-Xsr5encVcz8ElXIcUAjlpzrXBA79_pV7eoXRu_y7qnKoBVO7qWDJ9NXENJSU3EQY9ZEEi5pIaPoYKJSXo7Sg8R5QRxXDHEclukB-p-acOAbb3b1g3ax3Oo-nsrQz2SFlPBdFsb-N-hmeQIfal_T8DuDX1cvnkEBbre8C64y7IAsMbAHXEBheDh8DMbY95H2Cne1vOPOsJ4oIiQCIPy_YCH70dUvugHtNaN3usxDMpR8d5L63ZXI0Q3XGgVXzgsRFXQ5f3aK-bKt_KLT6mHZxk6Sb9IsHh4tZGRipUGLIBvzeEIAelaxMkOjN1TnNo3JZHuh-4GrUCyPwDTrvwqMhEmqo6PI3SH8BOWbGA_n_up9rSJZqrRjZ2kq2oU1pu8fM2c6NkwxgOjJbVSo4_ZPtNigJ0s7YXSXSEvDBDZ75F2PMlsM2TbC1zNl29-isqBrMys-Xsug2OicQzswptr6q-Lz9pCogt0D3jLT8woPexOaPhObivjyqpkwqpOABwC-22MvhUm4uGygu5SLJAi0nEDCH02-ZJH5PyP3Sw5GvkYlzjqPrkI0imcp5eFcbxFOe5SVdktctEvKWfYq9-nrYMUhHCowcBNlrDgKviSuDZw-XOUOFcCuKAVD6jqnK4JmfPEXEws7eDYB2X3ANoMD3w_Ph1_3PWtGawGQVKxHe5KRXoRMa5rytdxRarYwVefeBG7qWhm-tVytcIPGPbpwax90K_hKSBKcPYgVA30Gte8MPL6C-OYP8TA5GbIDdcwpgqgioVM__WzKcjwOZL6fyG6OMzvu0sbHsGh0TLT63UvjXzSBGlYvuAsrWWjGh1Mj8bNyQcUacflCXR8kiaDP_f0TNToG5AcNg8iqS3bJipYYMK4ypoPZ6XCEtMi1gQ2e6KQTH27rrOt78gaFTdFgJMdo595BOJus-xC8A1zz0s-O6vJtEAPN4WtXHREMCGII49h5x-fiOeLy3Pq-r0YZFKfUHHZJJas41o2jCt0MBvbwI29UWCO0QvTWOl0cki1pdTOx2M9ARFOvCb3vTOkUit5narlPDXr1qWGkoJWpREgkNOkxWEwLLnjKyKef2BIzelfU-sLlgSNAIqQoIqgG2VelHr2gAOeP4BB_TILOz1j5rOXQJ3Qxwv2w6khLmJ-dI7vmaLsDsfUEwJghuYIhxH3RjYnrpqAnRSHK4NXvTjQI9qJiCVdxi9tV2_6ra64cEiREZqUo6J3XouyVo3M-qXo1DDrsgqR_keKn5UmO_fUv8TKYkv4lXKGXQY0nlMXp8AHQkHl6EolWeqRrVyq1Vk5DBwpDqimwyWtG2t_81IHB-67Ojj5L7VTgvPe0ggHMLBDowzq_PN947t_2Vwl6SqyiM_nozxy5TNzGAwJw4nqz2vvUiKwTyM6xWLs0RqU83Ge03YdnryV1huUNQqFe2Yp9OIOcmvz2DLfUu_761YGAu4Hvn67gvjDKtnvWeJaVowmwsANSBuBopy-O6kicWtMrHPwAih9aeNcVVSvqM-lt0UI05VOEWJhmaaDA7TjPr-Y5ZqIwVzsVPq58wJcMDKMoVkYZbJBGOuB10pMKaea5N56cwXHAqpHb1OeSznXMNg9716v45g4EGW2Zu6Eapg-WPWOcccYm9nD7RyGmsu3Nd5j0MWds7pXkIx7D-MGtv8OXkeo4ZmwWr2SqtLke6ZUqy3EA8_IBQW3Krsud3CarSem-OYMsgDMc2bzgbSThiz9Od6yV-gEzKRHusIYoztLFFnmJgnND73EqiFQECHLlCgtsWw0pIkcKfCFmQTWHZDoXLQoukJBQ0YN7mGd0HR1t4s2CT4jRQXJ6Y0YQ3rr0zI6dbahDYfgKebclLKNNvWVCXThC22bIJ76U0LnCkZ5pz4kGvFKuReXoU3C3x5oA2EqSoErP5ZJUrHVxK4H5iPeoWdl9dB_9g0oU80rAtBhXxsfXCZZoos_5jxaEdak4ONOrcVvv8_UsluXoQi76b0i5VpJmgbk3FSrU8Lwjl7dKag6POQgHh3UKi4CdOXwT9GeYPUnN4YFtzNDsvzlG7LZk8NYb1VfdStFnaSNdQzI9po2_XHF-xu3ZrwxebGT4Kr2wGSkPMRcRZl-ONplfUBRF2c9dIhTiaARW2bMFbmp46WSW7veF3F1RkxT-26SVP9gB1LhEa1GLkIg9E3qu2Z3Up3xquEOM1S8SHDn7Qcn4KuKn0LYWy_J0XHCJKt1DjCNCjuIhVj33v-shq2l2rIV3a4Khq_5a7IfPOsSozB9vqDBElN2JXexjzWMJjcUNPSHvsbx0CySFs4X2JhVpDPneLnuW8vEPiE9BNrx6l6JS750NZr91ZQRMm_tCv-IgnhmQQC5rU_yxWq-AEJUsD4jO15UCyt_vRY14GLZYlMqjv\u0026pr=6:1.744845\u0026cid=CAASEuRoPvAUHwF-nROeHEsAy3s8dg';document.write('\u003cscript src=\"' + (window.rfl ? window.rfl(url) : url) + '\"\u003e\u003c/s' + 'cript\u003e');\u003c/script\u003e\u003cSCRIPT language=\"JavaScript1.1\" SRC=\"https://fw.adsafeprotected.com/rjss/bgd/164425/58606508/xbbe/creative/adj?p=APEucNXfwsgcYXeWqRnuvBwgQG5hlto0nsp0m2G40htyhcg0WbXiw28\u0026d=CnkAoCZ_4FaKdr3SAVz0qHzWo5qAN5ZhH8fGE9vz677yYovvlXOgibNjWjl9zUFrCpiJltbe8_M-zBuTy9I1YXMbTFgZRzjgsKY76wlETcB0LCJfKjfBVOgg2u7h7aXdMfPFpwBgcq_Q0ZtNkJa8xZY6PEoo3R5OgmcOErkRAKAmf-DnQScW2C4TNCLAPBrx9TWuVfV6hjDnWMQtrDWriAPXCGwCS5ke3OyOfLAwEBjypiToyP5tsBb_aJED8zeiw8WD31cal0SNJSuNcZuz3B6E0vcrj0_gnpXkSAXL1d1CO0GUmt8PDSVYzB4r-3teciKOR2OOADgmOecD3tV-OtMQBLj_7eQXscrf_tbN22thU5QuP41F__SeoVULIpvp5eFukLY1HXw5QU-uwFXTDuJ7YV6LeTvnDypDkj2Rqohl9P9z5bi8d9xej7akl14zoRxsoamJtnfzF_vAeAAuv8_HyL4R4XLrz_6zaM1oO6vzGiRNrR9DbQE4riG3cJP8ZIN0sfJzyynTKjr9qTUHt0YLurVwWq6qDNg_BauwO-EV6Np8U0QBXo5aIoBgewC50p-r9C3u8Ab_359f42ntRlLB1fwgvRmhgCkxbF8D4qKc8L4fHfNLR5f_RVlMyT2kxVghc2EyS63okjTszLpvMx2ztXRRsBSg-Ti-ZzKY0Gg-lOqWcyBIZ5FOaw5ndtFahoLLQmGwNRZYbbXSqE4kuTCViDXrNlmAFN6KLpzVI_hNvbyUcDDIy_iodhr48JFTQ-gIT4SU1jRpYCWQ6s8n1zg0C8-xDYY0mS-f47J5rYoIIUFI6iYar0MumF5HZeOEJIsKS1a2lNOtzlxbMIArwdMJLGOTUhyGlkZK_m5-a_iShib9IOnIbFqjR_WY7IYEniZ_rE-O38nIjI-sioQ_-3CkKLAnzTDvAaTtmXUWDwSlsWENLku14rsX5tGDDD3q8c2wCBaa2IkNySwEnG2ROU4MInBQReYT9-Pn_LLqITBj-w_RvHmuq4cqKXFZPZW66f8gcOsRkmaIWjkKyfRnDmCTXD59BqdP_nV910dpQ20mXLNTg63YtP2koeolWRYTvBr3u1m76bER0iZlacdF2ZIcE9iNjzTIbUje_BmITsV2e1fvfLYi5-fEODCEqhzqhQT6HSFLvokhPSI1EzxChCUv446rNXMOYfy4VGLPpsLlmc6Bpf-tPR7iCXJZUZzi5irV8fywui9lapnRchRsEVxhhKNew7_xBKokdT2xqwDiMpsTAl_Jg_YD-f0XpnCiMT74lCIO3ol4-sTI9jXypVw63HGbkALZ2jcl0Im-fU4O83TGlfLd2OgjvNt727dKWfNKA4UL71ZFXRQmMBXsKTyXeTdeWP_mr75lm2QVkFOEz7JeciCoXM4s6WCee_wY4tsowDpShseupqeOkApNX0CMDAf29mO47LVNw3FefS4ftf2xALBS0MuqaKm0m4s2vHhEwFx9qlLKz2nYIyeTdpzXI3BZ67mZPpMGkEZRd4Wzh_PH_R6eiuEzv8dtBgjNPrNhLvyMNmak48qM_EZaoYUlkko8F6OM8tuENSBc99FVacDVnpLpg94gkt0Uir_6DJ5A-H7e5-zOmidZu0eSuSmtP1mLnPIVwaWAIhVuyLVV42h0v63P6h2p8ThwzZvxAWsNFzjYcW98Dlzv-lmzEoLoikpEqgHyJubOQO4QkxafN-yZ3EaKUxKUxMgSz8wEm2fYFTY-e07Z9cxjzKwE9JmkqSSpXcYyYOS901z527jWU0hixt5kPLRjt3bQALSAdZeUM48aRrrAvM1KPmSljKQOwuPjRAfj2qJKIpsX6v1cnjpxhPWdsr5PQDKgXCDvXuMN3-8AvSLP9Zfl2pfiJotb9UMrrr5kz269AfUZ9sBj7yOLrlPy5FyLMPTx9F2aryJO2VNwKPW79nt8Ofh-LIP4kjJyDJkRqcPwErkxJCPWn_O2LWkkcVu3a8QAdrKSqGVCX272RdZoFz6veW717zUz_Z0rhNn36NkfizdRi1BsiKu288uikwZXba9jSY3YhL6SvVgUEJwkq_1iz20oy_Gl4Dg8aG5pPEY3z5AuRJNWAwWFjZtz-qbAerFuVOj6blPCarILbXmSoufBOBIpHA6sGxC3yTbepsiMitHhhjEjh0vmdG6MMHaReiA1_cJ4TVqJJa8JvAHIYHHnCSJA8V9u5gQDKWF0AEOwO98Ui4fYfc9RwzYIyuOk2Wx3Vb4C5y8URGQblMs2Vs96qG35Tj2PcKP2qDnhvJ8CfYXJHzwHWbNoTmQpZ8E8MGc60uf0nlUdKzBAitRjBeck0nYDcvIvu3LZfu_QGR8NFhmGRwvyZkPST9gihrnu0y0OmODX6-QpL-RHgKdGvmodzOoKzadwRSh71tRwlGOhVtp4G7zvcSWQVGTfBlOYSdcFxDBkk5bftw-CMkg4z4PUsbo0wRTJCReVfzUQyxBf07bGC7O00kSQRuSw7LCOBj-owXavTvgUrlR2ciYn5ZeYWbHhicd9VOuyyFd1697Et6sprlfyksy22QW76jC5VeQ6KqfvIBnrKSJ5c_uX8htgB0W93sIzY4ETILgp04S8a6fWrK3N4QLHAGzCahv7qTz--yUJtncTqS8_CkoCD0I5Qh_Yb-Hot4GZAy6eLt1P3aWREFn9djp1-kp7-_pjgzRS5VmoNT0lHGI5-L2gVcm8qp_V_wvXtJtbUQerbv0x7u-AYoNij5RSu2p8071BOLF8ZHEF1-yX1Vk8CzTL0-HDCiyVoEXeOdhBOqR0mfOIMqNKTblWGnBSWzuuNsw-NKDlVkhTGoWHJ4d9fq0F5xg1q-C4Mwiq5K5g5M3s2RHf1TI9JSuVsXmz6hL2fDWLg-NTQbJOfRQoyiPxthVYjQaDuo67_bSC8YOmpsQwFgl8wJ66Skc0BcaTiiZHj2Lajt6NMurrudA5UI9g59pFAO9fPvCFcKvbpWN5qcarXS_fZW5uDwSkt0QV-wsELa6pHD4QOz_WpjfKUIjhSQoHHBCT_4QGe03f_qo_Kx6wURIKpo5mk4z7zt7tO9BUxrYno1tXBlUYuyi-uZFVlrsTF0-O1r-L3RxymmESXj9NgKd0gaxo9qy-4QJEHaxbWLCYDNwOrL-tJob_nFYvxRoWCAASEuRoPvAUHwF-nROeHEsAy3s8dmAB\u0026xfc=https%3A%2F%2Fclicktrack.pubmatic.com%2FAdServer%2FAdDisplayTrackerServlet%3FclickData%3DJnB1YklkPTE1OTExMCZzaXRlSWQ9NjY2ODg4JmFkSWQ9MzE5Mjg4MyZrYWRzaXplaWQ9MzImdGxkSWQ9MCZjYW1wYWlnbklkPTIyOTg3JmNyZWF0aXZlSWQ9MCZ1Y3JpZD0zNDc0OTkyMjU4OTU5MTExMzE0JmFkU2VydmVySWQ9MjQzJmltcGlkPTZDMjgzQUExLTVFRTMtNEI5Qy04MDZGLUU3NkFEQTAzNkVEQSZwYXNzYmFjaz0w_url%3D\"\u003e\u003c/SCRIPT\u003e\u003cNOSCRIPT\u003e\u003cA HREF=\"https://bid.g.doubleclick.net/xbbe/creative/jump?p=APEucNXfwsgcYXeWqRnuvBwgQG5hlto0nsp0m2G40htyhcg0WbXiw28\u0026d=CnkAoCZ_4FaKdr3SAVz0qHzWo5qAN5ZhH8fGE9vz677yYovvlXOgibNjWjl9zUFrCpiJltbe8_M-zBuTy9I1YXMbTFgZRzjgsKY76wlETcB0LCJfKjfBVOgg2u7h7aXdMfPFpwBgcq_Q0ZtNkJa8xZY6PEoo3R5OgmcOErkRAKAmf-DnQScW2C4TNCLAPBrx9TWuVfV6hjDnWMQtrDWriAPXCGwCS5ke3OyOfLAwEBjypiToyP5tsBb_aJED8zeiw8WD31cal0SNJSuNcZuz3B6E0vcrj0_gnpXkSAXL1d1CO0GUmt8PDSVYzB4r-3teciKOR2OOADgmOecD3tV-OtMQBLj_7eQXscrf_tbN22thU5QuP41F__SeoVULIpvp5eFukLY1HXw5QU-uwFXTDuJ7YV6LeTvnDypDkj2Rqohl9P9z5bi8d9xej7akl14zoRxsoamJtnfzF_vAeAAuv8_HyL4R4XLrz_6zaM1oO6vzGiRNrR9DbQE4riG3cJP8ZIN0sfJzyynTKjr9qTUHt0YLurVwWq6qDNg_BauwO-EV6Np8U0QBXo5aIoBgewC50p-r9C3u8Ab_359f42ntRlLB1fwgvRmhgCkxbF8D4qKc8L4fHfNLR5f_RVlMyT2kxVghc2EyS63okjTszLpvMx2ztXRRsBSg-Ti-ZzKY0Gg-lOqWcyBIZ5FOaw5ndtFahoLLQmGwNRZYbbXSqE4kuTCViDXrNlmAFN6KLpzVI_hNvbyUcDDIy_iodhr48JFTQ-gIT4SU1jRpYCWQ6s8n1zg0C8-xDYY0mS-f47J5rYoIIUFI6iYar0MumF5HZeOEJIsKS1a2lNOtzlxbMIArwdMJLGOTUhyGlkZK_m5-a_iShib9IOnIbFqjR_WY7IYEniZ_rE-O38nIjI-sioQ_-3CkKLAnzTDvAaTtmXUWDwSlsWENLku14rsX5tGDDD3q8c2wCBaa2IkNySwEnG2ROU4MInBQReYT9-Pn_LLqITBj-w_RvHmuq4cqKXFZPZW66f8gcOsRkmaIWjkKyfRnDmCTXD59BqdP_nV910dpQ20mXLNTg63YtP2koeolWRYTvBr3u1m76bER0iZlacdF2ZIcE9iNjzTIbUje_BmITsV2e1fvfLYi5-fEODCEqhzqhQT6HSFLvokhPSI1EzxChCUv446rNXMOYfy4VGLPpsLlmc6Bpf-tPR7iCXJZUZzi5irV8fywui9lapnRchRsEVxhhKNew7_xBKokdT2xqwDiMpsTAl_Jg_YD-f0XpnCiMT74lCIO3ol4-sTI9jXypVw63HGbkALZ2jcl0Im-fU4O83TGlfLd2OgjvNt727dKWfNKA4UL71ZFXRQmMBXsKTyXeTdeWP_mr75lm2QVkFOEz7JeciCoXM4s6WCee_wY4tsowDpShseupqeOkApNX0CMDAf29mO47LVNw3FefS4ftf2xALBS0MuqaKm0m4s2vHhEwFx9qlLKz2nYIyeTdpzXI3BZ67mZPpMGkEZRd4Wzh_PH_R6eiuEzv8dtBgjNPrNhLvyMNmak48qM_EZaoYUlkko8F6OM8tuENSBc99FVacDVnpLpg94gkt0Uir_6DJ5A-H7e5-zOmidZu0eSuSmtP1mLnPIVwaWAIhVuyLVV42h0v63P6h2p8ThwzZvxAWsNFzjYcW98Dlzv-lmzEoLoikpEqgHyJubOQO4QkxafN-yZ3EaKUxKUxMgSz8wEm2fYFTY-e07Z9cxjzKwE9JmkqSSpXcYyYOS901z527jWU0hixt5kPLRjt3bQALSAdZeUM48aRrrAvM1KPmSljKQOwuPjRAfj2qJKIpsX6v1cnjpxhPWdsr5PQDKgXCDvXuMN3-8AvSLP9Zfl2pfiJotb9UMrrr5kz269AfUZ9sBj7yOLrlPy5FyLMPTx9F2aryJO2VNwKPW79nt8Ofh-LIP4kjJyDJkRqcPwErkxJCPWn_O2LWkkcVu3a8QAdrKSqGVCX272RdZoFz6veW717zUz_Z0rhNn36NkfizdRi1BsiKu288uikwZXba9jSY3YhL6SvVgUEJwkq_1iz20oy_Gl4Dg8aG5pPEY3z5AuRJNWAwWFjZtz-qbAerFuVOj6blPCarILbXmSoufBOBIpHA6sGxC3yTbepsiMitHhhjEjh0vmdG6MMHaReiA1_cJ4TVqJJa8JvAHIYHHnCSJA8V9u5gQDKWF0AEOwO98Ui4fYfc9RwzYIyuOk2Wx3Vb4C5y8URGQblMs2Vs96qG35Tj2PcKP2qDnhvJ8CfYXJHzwHWbNoTmQpZ8E8MGc60uf0nlUdKzBAitRjBeck0nYDcvIvu3LZfu_QGR8NFhmGRwvyZkPST9gihrnu0y0OmODX6-QpL-RHgKdGvmodzOoKzadwRSh71tRwlGOhVtp4G7zvcSWQVGTfBlOYSdcFxDBkk5bftw-CMkg4z4PUsbo0wRTJCReVfzUQyxBf07bGC7O00kSQRuSw7LCOBj-owXavTvgUrlR2ciYn5ZeYWbHhicd9VOuyyFd1697Et6sprlfyksy22QW76jC5VeQ6KqfvIBnrKSJ5c_uX8htgB0W93sIzY4ETILgp04S8a6fWrK3N4QLHAGzCahv7qTz--yUJtncTqS8_CkoCD0I5Qh_Yb-Hot4GZAy6eLt1P3aWREFn9djp1-kp7-_pjgzRS5VmoNT0lHGI5-L2gVcm8qp_V_wvXtJtbUQerbv0x7u-AYoNij5RSu2p8071BOLF8ZHEF1-yX1Vk8CzTL0-HDCiyVoEXeOdhBOqR0mfOIMqNKTblWGnBSWzuuNsw-NKDlVkhTGoWHJ4d9fq0F5xg1q-C4Mwiq5K5g5M3s2RHf1TI9JSuVsXmz6hL2fDWLg-NTQbJOfRQoyiPxthVYjQaDuo67_bSC8YOmpsQwFgl8wJ66Skc0BcaTiiZHj2Lajt6NMurrudA5UI9g59pFAO9fPvCFcKvbpWN5qcarXS_fZW5uDwSkt0QV-wsELa6pHD4QOz_WpjfKUIjhSQoHHBCT_4QGe03f_qo_Kx6wURIKpo5mk4z7zt7tO9BUxrYno1tXBlUYuyi-uZFVlrsTF0-O1r-L3RxymmESXj9NgKd0gaxo9qy-4QJEHaxbWLCYDNwOrL-tJob_nFYvxRoWCAASEuRoPvAUHwF-nROeHEsAy3s8dmAB\u0026xfc=https%3A%2F%2Fclicktrack.pubmatic.com%2FAdServer%2FAdDisplayTrackerServlet%3FclickData%3DJnB1YklkPTE1OTExMCZzaXRlSWQ9NjY2ODg4JmFkSWQ9MzE5Mjg4MyZrYWRzaXplaWQ9MzImdGxkSWQ9MCZjYW1wYWlnbklkPTIyOTg3JmNyZWF0aXZlSWQ9MCZ1Y3JpZD0zNDc0OTkyMjU4OTU5MTExMzE0JmFkU2VydmVySWQ9MjQzJmltcGlkPTZDMjgzQUExLTVFRTMtNEI5Qy04MDZGLUU3NkFEQTAzNkVEQSZwYXNzYmFjaz0w_url%3D\"\u003e\u003cIMG SRC=\"https://fw.adsafeprotected.com/rfw/bgd/164425/58606507/xbbe/creative/ad?p=APEucNXfwsgcYXeWqRnuvBwgQG5hlto0nsp0m2G40htyhcg0WbXiw28\u0026d=CnkAoCZ_4FaKdr3SAVz0qHzWo5qAN5ZhH8fGE9vz677yYovvlXOgibNjWjl9zUFrCpiJltbe8_M-zBuTy9I1YXMbTFgZRzjgsKY76wlETcB0LCJfKjfBVOgg2u7h7aXdMfPFpwBgcq_Q0ZtNkJa8xZY6PEoo3R5OgmcOErkRAKAmf-DnQScW2C4TNCLAPBrx9TWuVfV6hjDnWMQtrDWriAPXCGwCS5ke3OyOfLAwEBjypiToyP5tsBb_aJED8zeiw8WD31cal0SNJSuNcZuz3B6E0vcrj0_gnpXkSAXL1d1CO0GUmt8PDSVYzB4r-3teciKOR2OOADgmOecD3tV-OtMQBLj_7eQXscrf_tbN22thU5QuP41F__SeoVULIpvp5eFukLY1HXw5QU-uwFXTDuJ7YV6LeTvnDypDkj2Rqohl9P9z5bi8d9xej7akl14zoRxsoamJtnfzF_vAeAAuv8_HyL4R4XLrz_6zaM1oO6vzGiRNrR9DbQE4riG3cJP8ZIN0sfJzyynTKjr9qTUHt0YLurVwWq6qDNg_BauwO-EV6Np8U0QBXo5aIoBgewC50p-r9C3u8Ab_359f42ntRlLB1fwgvRmhgCkxbF8D4qKc8L4fHfNLR5f_RVlMyT2kxVghc2EyS63okjTszLpvMx2ztXRRsBSg-Ti-ZzKY0Gg-lOqWcyBIZ5FOaw5ndtFahoLLQmGwNRZYbbXSqE4kuTCViDXrNlmAFN6KLpzVI_hNvbyUcDDIy_iodhr48JFTQ-gIT4SU1jRpYCWQ6s8n1zg0C8-xDYY0mS-f47J5rYoIIUFI6iYar0MumF5HZeOEJIsKS1a2lNOtzlxbMIArwdMJLGOTUhyGlkZK_m5-a_iShib9IOnIbFqjR_WY7IYEniZ_rE-O38nIjI-sioQ_-3CkKLAnzTDvAaTtmXUWDwSlsWENLku14rsX5tGDDD3q8c2wCBaa2IkNySwEnG2ROU4MInBQReYT9-Pn_LLqITBj-w_RvHmuq4cqKXFZPZW66f8gcOsRkmaIWjkKyfRnDmCTXD59BqdP_nV910dpQ20mXLNTg63YtP2koeolWRYTvBr3u1m76bER0iZlacdF2ZIcE9iNjzTIbUje_BmITsV2e1fvfLYi5-fEODCEqhzqhQT6HSFLvokhPSI1EzxChCUv446rNXMOYfy4VGLPpsLlmc6Bpf-tPR7iCXJZUZzi5irV8fywui9lapnRchRsEVxhhKNew7_xBKokdT2xqwDiMpsTAl_Jg_YD-f0XpnCiMT74lCIO3ol4-sTI9jXypVw63HGbkALZ2jcl0Im-fU4O83TGlfLd2OgjvNt727dKWfNKA4UL71ZFXRQmMBXsKTyXeTdeWP_mr75lm2QVkFOEz7JeciCoXM4s6WCee_wY4tsowDpShseupqeOkApNX0CMDAf29mO47LVNw3FefS4ftf2xALBS0MuqaKm0m4s2vHhEwFx9qlLKz2nYIyeTdpzXI3BZ67mZPpMGkEZRd4Wzh_PH_R6eiuEzv8dtBgjNPrNhLvyMNmak48qM_EZaoYUlkko8F6OM8tuENSBc99FVacDVnpLpg94gkt0Uir_6DJ5A-H7e5-zOmidZu0eSuSmtP1mLnPIVwaWAIhVuyLVV42h0v63P6h2p8ThwzZvxAWsNFzjYcW98Dlzv-lmzEoLoikpEqgHyJubOQO4QkxafN-yZ3EaKUxKUxMgSz8wEm2fYFTY-e07Z9cxjzKwE9JmkqSSpXcYyYOS901z527jWU0hixt5kPLRjt3bQALSAdZeUM48aRrrAvM1KPmSljKQOwuPjRAfj2qJKIpsX6v1cnjpxhPWdsr5PQDKgXCDvXuMN3-8AvSLP9Zfl2pfiJotb9UMrrr5kz269AfUZ9sBj7yOLrlPy5FyLMPTx9F2aryJO2VNwKPW79nt8Ofh-LIP4kjJyDJkRqcPwErkxJCPWn_O2LWkkcVu3a8QAdrKSqGVCX272RdZoFz6veW717zUz_Z0rhNn36NkfizdRi1BsiKu288uikwZXba9jSY3YhL6SvVgUEJwkq_1iz20oy_Gl4Dg8aG5pPEY3z5AuRJNWAwWFjZtz-qbAerFuVOj6blPCarILbXmSoufBOBIpHA6sGxC3yTbepsiMitHhhjEjh0vmdG6MMHaReiA1_cJ4TVqJJa8JvAHIYHHnCSJA8V9u5gQDKWF0AEOwO98Ui4fYfc9RwzYIyuOk2Wx3Vb4C5y8URGQblMs2Vs96qG35Tj2PcKP2qDnhvJ8CfYXJHzwHWbNoTmQpZ8E8MGc60uf0nlUdKzBAitRjBeck0nYDcvIvu3LZfu_QGR8NFhmGRwvyZkPST9gihrnu0y0OmODX6-QpL-RHgKdGvmodzOoKzadwRSh71tRwlGOhVtp4G7zvcSWQVGTfBlOYSdcFxDBkk5bftw-CMkg4z4PUsbo0wRTJCReVfzUQyxBf07bGC7O00kSQRuSw7LCOBj-owXavTvgUrlR2ciYn5ZeYWbHhicd9VOuyyFd1697Et6sprlfyksy22QW76jC5VeQ6KqfvIBnrKSJ5c_uX8htgB0W93sIzY4ETILgp04S8a6fWrK3N4QLHAGzCahv7qTz--yUJtncTqS8_CkoCD0I5Qh_Yb-Hot4GZAy6eLt1P3aWREFn9djp1-kp7-_pjgzRS5VmoNT0lHGI5-L2gVcm8qp_V_wvXtJtbUQerbv0x7u-AYoNij5RSu2p8071BOLF8ZHEF1-yX1Vk8CzTL0-HDCiyVoEXeOdhBOqR0mfOIMqNKTblWGnBSWzuuNsw-NKDlVkhTGoWHJ4d9fq0F5xg1q-C4Mwiq5K5g5M3s2RHf1TI9JSuVsXmz6hL2fDWLg-NTQbJOfRQoyiPxthVYjQaDuo67_bSC8YOmpsQwFgl8wJ66Skc0BcaTiiZHj2Lajt6NMurrudA5UI9g59pFAO9fPvCFcKvbpWN5qcarXS_fZW5uDwSkt0QV-wsELa6pHD4QOz_WpjfKUIjhSQoHHBCT_4QGe03f_qo_Kx6wURIKpo5mk4z7zt7tO9BUxrYno1tXBlUYuyi-uZFVlrsTF0-O1r-L3RxymmESXj9NgKd0gaxo9qy-4QJEHaxbWLCYDNwOrL-tJob_nFYvxRoWCAASEuRoPvAUHwF-nROeHEsAy3s8dmAB\u0026xfc=https%3A%2F%2Fclicktrack.pubmatic.com%2FAdServer%2FAdDisplayTrackerServlet%3FclickData%3DJnB1YklkPTE1OTExMCZzaXRlSWQ9NjY2ODg4JmFkSWQ9MzE5Mjg4MyZrYWRzaXplaWQ9MzImdGxkSWQ9MCZjYW1wYWlnbklkPTIyOTg3JmNyZWF0aXZlSWQ9MCZ1Y3JpZD0zNDc0OTkyMjU4OTU5MTExMzE0JmFkU2VydmVySWQ9MjQzJmltcGlkPTZDMjgzQUExLTVFRTMtNEI5Qy04MDZGLUU3NkFEQTAzNkVEQSZwYXNzYmFjaz0w_url%3D\" BORDER=0 WIDTH=970 HEIGHT=250 ALT=\"Advertisement\"\u003e\u003c/A\u003e\u003c/NOSCRIPT\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003ciframe width=\"0\" scrolling=\"no\" height=\"0\" frameborder=\"0\" src=\"https://ads.pubmatic.com/AdServer/js/showad.js#PIX\u0026ptask=DSP\u0026SPug=1\u0026fp=1\u0026mpc=10\u0026u=1F3AABE3-615E-40AD-A390-899AE3113A1A\u0026p=159110\u0026s=666888\u0026d=1\u0026cp=0\u0026sc=1\u0026rs=0\u0026os=0\u0026gdpr=1\u0026gdpr_consent=CPam0oAPam0oAAHABBENCTCsAP_AAH_AAAAAHfND_TrMYyNj-XZ9Nrs0eYxOxNSXo-wCjAaJAWgBAQKAIJQG0mAQpAHgBCACIAAEIiJBAQIlDCHACQAA4IABASEAIAiABBIIICIAgEAQAwAICBBDCcAAAQKYgAQEEAQAmgoAAAoiQAAAIAAABgAAAAAAAAAAAAAAABA1kAEwVJiABsSwwJJoQihRADCIICoBQAUQAQIAUAACAABBCASAgAAAAAAAAAAAAABEBAIABAIAAIAAAAPBAAACAAAAAAAAABAARAAAgAAAAAAAAAQDAAAAAQAAAAgACgECAAAAAASAAAAAAAAMAcpACAIsAtAdACAIsAtAJABAWgKAAgCOGAAQBHEAAIAjiQAEARwA.f_gAD_gAAAAA\" style=\"position:absolute;top:-15000px;left:-15000px\" vspace=\"0\" hspace=\"0\" marginwidth=\"0\" marginheight=\"0\" allowtransparency=\"true\" name=\"synciframe\"\u003e\u003c/iframe\u003e\u003ciframe width=\"0\" scrolling=\"no\" height=\"0\" frameborder=\"0\" src=\"https://aktrack.pubmatic.com/AdServer/AdDisplayTrackerServlet?operId=1\u0026pubId=159110\u0026siteId=666888\u0026adId=3192883\u0026adType=10\u0026adServerId=243\u0026kefact=1.628522\u0026kaxefact=1.628522\u0026kadNetFrequecy=0\u0026kadwidth=970\u0026kadheight=250\u0026kadsizeid=32\u0026kltstamp=1655476159\u0026indirectAdId=0\u0026adServerOptimizerId=2\u0026ranreq=0.1\u0026kpbmtpfact=1.744845\u0026dcId=1\u0026tldId=0\u0026passback=0\u0026svr=BID77459U\u0026adsver=_3183238267\u0026adsabzcid=0\u0026cls=BID\u0026ekefact=v4-sYp7JAABDXW5CKnY4dM4r4VMrXFqckyiGI1YvjpwUr8_S\u0026ekaxefact=v4-sYrfJAACSI2fXJV651g6OElzkVMTs0hvRikGflYSlKpri\u0026ekpbmtpfact=v4-sYsnJAADquaksOGtXMCX0cCgwOxsHRLjmfEXuK2d8Te3m\u0026enpp=v4-sYuDJAAA_U3h8MeiCsMnD6xOaPT6N73myFnldaB_Pfu5-\u0026pfi=1\u0026domId=8566818333696122961\u0026dc=SFO2\u0026pubBuyId=20367\u0026crID=392890663\u0026lpu=americanexpress.com\u0026ucrid=3474992258959111314\u0026campaignId=22987\u0026creativeId=0\u0026pctr=0.000000\u0026wDSPByrId=2617933\u0026wDspId=80\u0026wbId=3\u0026wrId=0\u0026wAdvID=746848\u0026wDspCampId=22856574\u0026isRTB=1\u0026rtbId=1978E84C-F587-480C-B4BE-3CB92C3DBC47\u0026imprId=6C283AA1-5EE3-4B9C-806F-E76ADA036EDA\u0026oid=6C283AA1-5EE3-4B9C-806F-E76ADA036EDA\u0026country=US\u0026carrierid=387\u0026cntryId=232\u0026domain=marmiton.org\u0026sec=1\u0026pmc=1\u0026pAuSt=2\u0026wops=0\u0026sURL=marmiton.org\u0026BrID=5\u0026oiabdvt=2\" style=\"position:absolute;top:-15000px;left:-15000px\" vspace=\"0\" hspace=\"0\" marginwidth=\"0\" marginheight=\"0\" allowtransparency=\"true\" name=\"pbeacon\"\u003e\u003c/iframe\u003e\u003c/span\u003e \u003c!-- PubMatic Ad Ends --\u003e\u003cimg width=\"0\" height=\"0\" border=\"0\" alt=\"\" style=\"display: none;\" src=\"https://c.4dex.io/imp.gif?adu_code=pegasus_placeholder_banner_atf\u0026auction_id=a41fe775-0f14-4ed9-91db-94a53355f95e\u0026bid_id=6C283AA1-5EE3-4B9C-806F-E76ADA036EDA\u0026bidder=pubmatic\u0026breq_id=894eb09c-5ace-4c0a-a01a-4f4480e19658\u0026browser=chrome\u0026buid=1\u0026buids=3310\u0026category=\u0026cpm=1.46567\u0026crea_id=392890663\u0026ctry=USA\u0026curr=USD\u0026deal_id=\u0026dvc=2\u0026environment=desktop\u0026h=250\u0026lzy=0\u0026mt=ban\u0026net_cpm=1.25314785\u0026org_id=1110\u0026os=linux\u0026partid=2022061714\u0026pgtyp=\u0026plcmt=banner_atf\u0026pn=1\u0026pub_id=10308\u0026pv_id=38e96607-9b56-4a86-9c4c-9f88d5ea87e9\u0026rpmadc_smpl=1\u0026rule_id=1145\u0026seattyp=shared\u0026site=marmiton-org\u0026sspv=4.3.0-gcp-las\u0026subcategory=\u0026tiv=16\u0026url=https%3A%2F%2Fwww.marmiton.org%2F%3Fpbjs_debug%3Dtrue\u0026vr=0.5\u0026w=970\" /\u003e",
      "width": 970,
      "height": 250,
      "ttl": 30,
      "netRevenue": true,
      "adUnitCode": "pegasus_placeholder_banner_atf",
      "lz": false,
      "bidder": "",
      "aDomain": [
        "americanexpress.com"
      ],
      "meta": {
        "advertiserDomains": [
          "americanexpress.com"
        ],
        "advertiserId": 746848,
        "networkId": 80
      },
      "mediaType": "banner"
    }
  ],
  "data": {
    "user_syncs": [
      {
        "html": "\u003ciframe id='adg-0-sync' height='0' width='0' marginwidth='0' marginheight='0' scrolling='no' frameborder='0' src='https://secure-assets.rubiconproject.com/utils/xapi/multi-sync.html?p=onfocus\u0026endpoint=us-west' style='border: 0px; display: none;'\u003e\u003c/iframe\u003e"
      }
    ],
    "adagiojs": {
      "sampling": {
        "avw": 0
      }
    }
  }
}

As you can see:

dgirardi commented 2 years ago

Would it help if we added a sort of history log for changes to the CPM? Let's say a "normal" (non-rejected) bid contained something like:

{
  ...
  cpmAdjustments: [
     {
        reason: "currency",
        from: {
            currency: 'USD',
            cpm: 1.2
        },
        to: {
            currency: 'EUR',
            cpm: 1
        }
     },
     {
        reason: "bidCpmAdjustment",
        from: {
            currency: 'EUR',
            cpm: 1
        },
        to: {
            currency: 'EUR',
            cpm: 0.8
        },
     }
  ]
}

then this case would only contain the first and it should clear up confusion. (although, I'd still be wondering why my bidCpmAdjustment didn't run...)

jlquaccia commented 2 years ago

Agree with @dgirardi. From what I can gather about all of this (and from looking through the prebid docs), it seems as though the expected behavior is occurring (I think). However, I suppose the timeline of the cpm value adjustments could possibly be made a bit more transparent as mentioned above.

robertrmartinez commented 2 years ago

So what is the Action Item here?

patmmccann commented 2 years ago

perhaps we just need more explicit logging of rejected bids?

robertrmartinez commented 2 years ago

In my initial P.O.C of this I actually was just going to add a new event called BID_REJECTED that the price floors module would emit.

I decided not to do it for some reason, but I think this is probably the right thing to do now.

Maybe in the case of a BID_REJECTED there should NOT be a BID_RESPONSE event and vice versa.

But that might be a breaking change, so maybe for now we can just add in this new BID_REJECTED event to help?

dgirardi commented 2 years ago

@robertrmartinez for this issue specifically, I don't think an a different event would have helped - I think; the log message would have beeen the same, showing the rejected bid with a half-adjusted cpm (I believe it would have looked the same in a rejection event, unless we want to open pandora's box and try to process those together with "real" bids?) https://github.com/prebid/Prebid.js/pull/8655 might be enough to clarify that the rejected bid was indeed below the floor.

robertrmartinez commented 2 years ago

Ah ok makes sense!