PageSourceSearch

https://portal.clickheredigital.com/assets/ReportConnectedTVInsights-D3Mtzaj6.js

js clickheredigital.com collected 2026-09-24 13:07:55 UTC 15,656 bytes, 1 lines download raw bytes

1import{n as v,c as d,j as D,F as M,a2 as C,O as y,k as $,a_ as R,r as h,w as V,d as x}from"./index-C3PRlZvS.js";import{I as B}from"./InsightsReportResource-Xs4TvI8j.js";import{P as I}from"./PdfCover-kaqprAdv.js";import{P as T}from"./PieChart-BQNTRbnr.js";import{I as N}from"./InsightBox-BLe6MQIi.js";import{I as A}from"./InsightSection-Bslh6OqF.js";import{N as F}from"./NoBudgetAlert-BVBXOF5h.js";import{u as E}from"./useChart-DIIHRzqt.js";import{t as Y}from"./chart-helper-7yOiO8-x.js";import"./PartnerResource-Da6bJ3Yo.js";import"./highcharts-Bcw4PBsR.js";import"./Chart-BT5-f4qM.js";const L={__name:"YouTubePlacements",props:["placements","pdfView"],setup(p){const e=p,t=[{text:"Channel",value:"placement",align:"left"},{text:"%",value:"percentage",align:"center"}],r={series:{allowPointSelect:!0,cursor:"pointer",dataLabels:[{enabled:!0,distance:20},{enabled:!0,distance:-50,format:"{point.percentage:.1f}%",style:{fontSize:"1.2em",textOutline:"none",opacity:.7}}]},tooltip:{valueSuffix:"%"}},s=d(()=>{const o=e.placements.reduce((u,_)=>u+_.impressions,0),a=D.sortBy(e.placements.map(u=>({...u,percentage:(u.impressions/o*100).toFixed(2)})),"impressions").reverse();return e.pdfView?a.slice(0,10):a}),n=d(()=>[{name:"Percentage",colorByPoint:!0,data:s.value.map(o=>({name:o.placement,y:parseFloat(o.percentage)}))}]);return{__sfc:!0,props:e,headers:t,chartOptions:r,allPlacements:s,chartData:n,PieChart:T,formatPercentage:M}}};var O=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("div",{staticClass:"w-full"},[t("h3",{staticClass:"uppercase primary--text text--darken-1 font-bold"},[e._v("Placements - YouTube TV")]),t("div",{staticClass:"w-full gap-3 items-center",class:e.pdfView?"my-3":"grid md:grid-cols-6"},[t("div",{class:e.pdfView?"w-[1400px]":"col-span-4"},[t(r.PieChart,{staticClass:"w-full",attrs:{series:r.chartData,"chart-options":r.chartOptions}})],1),t("div",{class:e.pdfView?"w-full":"col-span-2"},[t("v-data-table",{staticClass:"w-full",class:e.pdfView?"pr-4":"elevation-1",attrs:{headers:r.headers,items:r.allPlacements,"items-per-page":10,"disable-pagination":e.pdfView,"hide-default-footer":e.pdfView,"sort-by":"percentage","sort-desc":""},scopedSlots:e._u([{key:"item.percentage",fn:function({item:s}){return[e._v(" "+e._s(r.formatPercentage(s.percentage))+" ")]}}])})],1)])])},j=[],K=v(L,O,j,!1,null,null);const U=K.exports,W={__name:"impressions-chart",props:{width:{type:[Number,String],default:400},height:{type:[Number,String],default:400},chartData:{type:Object,required:!0},options:{type:Object,default:void 0}},setup(p){const e=p,{canvasEl:t,chart:r}=E({type:"bar",data:()=>e.chartData,options:()=>({tooltips:{mode:"index",callbacks:{label(s,n){return Y(s,n)}}},scales:{xAxes:[{gridLines:{color:"rgba(0, 0, 0, 0)"}}],yAxes:[{type:"linear",display:!0,position:"left",id:"y-axis-1",gridLines:{display:!1},ticks:{beginAtZero:!0},labels:{show:!0}}]},legend:{onClick:(s,n)=>{const o=n.datasetIndex,a=r.value;a.data.datasets[o].hidden=!a.data.datasets[o].hidden,a.options.scales.yAxes[o].display=!a.options.scales.yAxes[o].display,a.update()}},responsive:!0,maintainAspectRatio:!1,...e.options})});return{__sfc:!0,props:e,canvasEl:t,chart:r}}};var q=function(){var e=this,t=e._self._c;return e._self._setupProxy,t("div",[t("canvas",{ref:"canvasEl",attrs:{width:e.width,height:e.height}})])},G=[],H=v(W,q,G,!1,null,null);const Z=H.exports,J={__name:"DeliveryByVideoItemsTable",props:["videos","reportName"],setup(p){const e=p,t=[{text:"Line Item",value:"line_item"},{text:"Spend",value:"spend"},{text:"Impressions",value:"impressions"},{text:"Video Completes",value:"completes"},{text:"CPM",value:"cpm"}];function r(n){return n.replace("- $17 ","")}const s=d(()=>{const n={};return e.videos.reduce((o,a)=>(e.reportName==="amazon"?n[a.amzn_line_item]?(n[a.amzn_line_item].amzn_creative_commercials+=a.amzn_creative_commercials,n[a.amzn_line_item].amzn_creative_completed+=a.amzn_creative_completed,n[a.amzn_line_item].amzn_creative_impressions+=a.amzn_creative_impressions,n[a.amzn_line_item].amzn_creative_spend+=a.amzn_creative_spend,n[a.amzn_line_item].cpm=n[a.amzn_line_item].amzn_creative_spend*1e3/n[a.amzn_line_item].amzn_creative_impressions):(n[a.amzn_line_item]={...a},o.push(n[a.amzn_line_item])):n[a.line_item]?(n[a.line_item].impressions+=a.impressions,n[a.line_item].completed+=Number(a.completed),n[a.line_item].spend+=a.spend,n[a.line_item].cpm=n[a.line_item].spend*1e3/n[a.line_item].impressions):(n[a.line_item]={...a,completed:Number(a.completed)},o.push(n[a.line_item])),o),[])});return{__sfc:!0,props:e,headers:t,cleanLineItemName:r,filteredVideos:s,formatCurrency:y,formatNumber:C}}};var Q=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("v-row",[t("v-col",{staticClass:"mx-auto"},[t("v-card",{staticClass:"tabs-card mb-2",attrs:{elevation:"0"}},[t("v-data-table",{staticClass:"elevation-0 report-table",attrs:{"hide-default-footer":"","footer-props":{"items-per-page-options":[10,20,30,40,300]},"items-per-page":300,flat:"",headers:r.headers,items:r.filteredVideos},scopedSlots:e._u([{key:"item.line_item",fn:function({item:s}){return[e._v(" "+e._s(s.amzn_line_item?s.amzn_line_item:r.cleanLineItemName(s.line_item))+" ")]}},{key:"item.spend",fn:function({item:s}){return[e._v(" "+e._s(r.formatCurrency(s.amzn_creative_spend?s.amzn_creative_spend:s.spend))+" ")]}},{key:"item.impressions",fn:function({item:s}){return[e._v(" "+e._s(r.formatNumber(s.amzn_creative_commercials?s.amzn_creative_commercials:s.impressions))+" ")]}},{key:"item.completes",fn:function({item:s}){return[e._v(" "+e._s(r.formatNumber(s.amzn_creative_completed?s.amzn_creative_completed:s.completed))+" ")]}},{key:"item.cpm",fn:function({item:s}){return[e._v(" "+e._s(r.formatCurrency(s.cpm))+" ")]}}])})],1)],1)],1)}
1,X=[],ee=v(J,Q,X,!1,null,null);const te=ee.exports,se={__name:"KpiBox",props:["metric","report"],setup(p){return{__sfc:!0}}};var re=function(){var e=this,t=e._self._c;return e._self._setupProxy,(e.metric.label==="Website Visits"||e.metric.label==="Store Visits")&&e.report.name==="wholesale"?e._e():t("v-col",{staticClass:"mx-auto d-xs-block"},[t("v-card",{staticClass:"tabs-card mb-2"},[t("v-card-title",[t("div",{staticClass:"pl-2"},[e._v(e._s(e.metric.label))])]),t("v-card-subtitle",[t("v-row",[t("v-col",{attrs:{col:"6",xs:"12"}},[e.report.previous?t("p",[e._v("This Month")]):e._e(),t("h3",[e._v(e._s(e.metric.current))])]),e.report.previous?t("v-col",{attrs:{col:"6",xs:"12"}},[t("p",[e._v("Last Month")]),t("h3",[e._v(e._s(e.metric.previous))])]):e._e()],1)],1)],1)],1)},ae=[],ne=v(se,re,ae,!1,null,null);const ie=ne.exports,ce={__name:"SitesTable",props:["sites","report"],setup(p){function e(t,r){return Number(t)/Number(r)}return{__sfc:!0,calculateCPV:e,formatCurrency:y,formatNumber:C}}};var oe=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("section",{staticClass:"sites-table"},[t("v-row",{staticClass:"small-table"},[t("v-col",{staticClass:"mx-auto"},[t("v-card",{staticClass:"mb-2",attrs:{tile:"",elevation:"0"}},[t("v-card-title",{staticClass:"headline"},[t("h2",{staticClass:"uppercase primary--text text--darken-1 font-bold"},[e._v(" Where your commercials were seen ")])]),t("v-card-text",[t("v-simple-table",{scopedSlots:e._u([{key:"default",fn:function(){return[t("thead",[t("tr",[t("th",{staticClass:"text-left"},[e._v("Site")]),t("th",{staticClass:"text-left"},[e._v("Spend")]),t("th",{staticClass:"text-left"},[e._v("Impressions")]),t("th",{staticClass:"text-left"},[e._v(" "+e._s(e.report.name==="amazon"?"Video Completes":"CPV")+" ")]),t("th",{staticClass:"text-left"},[e._v("CPM")])])]),t("tbody",e._l(e.sites,function(s,n){return t("tr",{key:n},[t("td",[t("h6",{staticClass:"primary--text"},[e._v(e._s(s.site?s.site:n))])]),t("td",[e._v(" "+e._s(s.total_cost?r.formatCurrency(s.total_cost):s.cost?r.formatCurrency(s.cost):"-")+" ")]),t("td",[e._v(e._s(r.formatNumber(s.impressions)))]),e.report.name==="amazon"?t("td",[e._v(" "+e._s(s.video_complete?r.formatNumber(s.video_complete):r.formatCurrency(s.cpv))+" ")]):e._e(),e.report.name==="wholesale"||e.report.name==="silverback"||e.report.name==="stack_adapt"||e.report.name==="blended"?t("td",[e._v(" "+e._s(r.formatCurrency(r.calculateCPV(s.cost,s.impressions)))+" ")]):e._e(),t("td",[e._v(" "+e._s(r.formatCurrency(s.cpm))+" ")])])}),0)]},proxy:!0}])})],1)],1)],1)],1)],1)},le=[],pe=v(ce,oe,le,!1,null,null);const ue=pe.exports,_e={__name:"SummaryBox",props:["formattedReportMonth","formattedPreviousMonth","budgets","spends"],setup(p){return{__sfc:!0,formatCurrency:y}}};var me=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("v-row",{staticClass:"mb-3"},[t("v-col",{attrs:{col:"6",xs:6}},[e.budgets?t("v-card",{staticClass:"pa-5 tabs-card text-center"},[t("h3",[e._v("BUDGET")]),e._v(" "+e._s(e.formattedReportMonth)+" "),t("h1",[e._v(" "+e._s(r.formatCurrency(e.budgets.current))+" ")]),e._v(" "+e._s(r.formatCurrency(e.budgets.previous))+" - "+e._s(e.formattedPreviousMonth)+" ")]):e._e()],1),t("v-col",{attrs:{col:"6",xs:6}},[e.spends?t("v-card",{staticClass:"pa-5 tabs-card text-center"},[t("h3",[e._v("SPEND")]),e._v(" "+e._s(e.formattedReportMonth)+" "),t("h1",[e._v(" "+e._s(r.formatCurrency(e.spends.current))+" ")]),e._v(" "+e._s(r.formatCurrency(e.spends.previous))+" - "+e._s(e.formattedPreviousMonth)+" ")]):e._e()],1)],1)},de=[],ve=v(_e,me,de,!1,null,null);const fe=ve.exports,he={__name:"ReportConnectedTVInsights",props:{client:{type:Object},startDate:{type:String},endDate:{type:String},formattedReportMonth:{type:String},formattedPreviousMonth:{type:String}},setup(p){const e=p,t=$(),{isNotPDFUser:r}=R(),s=h([]),n=h(!1),o=h({width:null,height:400}),a=h({}),u=h([]),_=h(!1),f=d(()=>`${x(e.startDate).format("MMMM DD, YYYY")} to ${x(e.endDate).format("MMMM DD, YYYY")}`),P=d(()=>s.value.reduce((c,l)=>{c[l.name]={labels:[],datasets:[{label:"Impressions",data:[],backgroundColor:"#36A3EB",borderColor:"#36A3EB",borderWidth:2,yAxisID:"y-axis-1",type:"bar",tooltipType:"integer"}]};for(const i in l.current.dates)Object.hasOwnProperty.call(l,"current")&&(c[l.name].labels.push(x(i).format("MM/DD")),c[l.name].datasets[0].data.push(l.current.dates[i]));return c},{})),g=d(()=>s.value.filter(c=>c.budget&&c.budget>0).map(c=>c.name)),k=d(()=>g.value.length>0);function z(c){return c==="wholesale"?"Roku":c==="youtube"?"YouTube TV":c==="stack_adapt"||c==="blended"?"Connected TV":c}function w(){_.value=t.query.recache!==void 0}async function b(){n.value=!0,w();const c=await B.getConnectedTVInsightsReport(e.client.id,e.startDate,e.endD
1ate,_.value).then(l=>l.data);s.value=c.reports,a.value=c.manualReportEntries,u.value=c.metrics,n.value=!1,_.value=!1}function m(c,l){let i=l;switch(c){case"number":i=C(i);break;case"currency":i=y(i);break;case"percentage":i=M(i);break}return i}function S(c){const l={};return c.currentPeriod.forEach(i=>{i.Metric.name!=="Spend"&&(l[i.Metric.name]||(l[i.Metric.name]={...i.Metric,label:i.Metric.name,current:m(i.Metric.format,0),previous:m(i.Metric.format,0)}),l[i.Metric.name].current=m(i.Metric.format,i.value))}),c.previousPeriod.forEach(i=>{i.Metric.name!=="Spend"&&(l[i.Metric.name]||(l[i.Metric.name]={...i.Metric,label:i.Metric.name,current:m(i.Metric.format,0),previous:m(i.Metric.format,0)}),l[i.Metric.name].previous=m(i.Metric.format,i.value))}),l}return V(()=>t.query,()=>{b()}),t.query.clientId&&(o.value.width=1300),b(),{__sfc:!0,props:e,route:t,isNotPDFUser:r,reports:s,loading:n,chartOptions:o,manualReportEntries:a,metrics:u,recache:_,formattedDateRange:f,chartData:P,reportsWithBudget:g,hasActiveBudgets:k,checkTitle:z,checkRecache:w,fetchInitialData:b,formatter:m,getKpiMetrics:S,formatCurrency:y,PdfCover:I,YouTubePlacements:U,InsightBox:N,InsightSection:A,NoBudgetAlert:F,ImpressionsChart:Z,SpendAuditDeliveryByVideoTable:te,KpiBox:ie,SitesTable:ue,SummaryBox:fe}}};var ye=function(){var e=this,t=e._self._c,r=e._self._setupProxy;return t("section",{staticClass:"reports"},[t("div",{staticClass:"p-3 pb-12 md:p-4 lg:p-6 space-y-2"},[r.isNotPDFUser?e._e():t("div",[t(r.PdfCover,{attrs:{title:"CTV Performance"},scopedSlots:e._u([{key:"header",fn:function(){return[e._v(e._s(e.client.name))]},proxy:!0},{key:"subheader",fn:function(){return[e._v(" "+e._s(r.formattedDateRange)+" ")]},proxy:!0}],null,!1,3924423360)})],1),r.loading?t("v-overlay",[t("v-progress-circular",{attrs:{indeterminate:"",size:"64"}})],1):[e._l(r.manualReportEntries,function(s,n){return[s.currentPeriod.length>0?[t("div",{key:`${n}-title`,staticClass:"pl-4 pr-8 py-1 font-bold uppercase text-lg sm:text-2xl",domProps:{innerHTML:e._s(n)}}),t(r.SummaryBox,{key:`${n}-summary`,attrs:{budgets:s.budgets,spends:s.spend,formattedReportMonth:e.formattedReportMonth,formattedPreviousMonth:e.formattedPreviousMonth}}),t("v-divider",{key:`${n}-divider`}),t("v-row",{key:`${n}-kpis`},e._l(r.getKpiMetrics(s),function(o,a){return t(r.KpiBox,{key:a,attrs:{metric:o,report:{previous:!0}}})}),1)]:e._e()]}),r.hasActiveBudgets?[e._l(r.reports,function(s,n){var o,a,u,_;return[r.reportsWithBudget.includes(s.name)||((a=(o=s.current)==null?void 0:o.summary)==null?void 0:a.spend)>0?t("section",{key:s.id,staticClass:"alwaysBreak",staticStyle:{"page-break-after":"always"}},[t("div",{staticClass:"pl-4 pr-8 py-1 font-bold uppercase text-lg sm:text-2xl"}),t(r.InsightSection,{attrs:{title:r.checkTitle(s.name)}},[t("div",{staticClass:"flex flex-wrap w-full mt-6 sm:pl-8"},[t("v-row",{staticClass:"mb-3"},[t("v-col",{attrs:{col:"6",xs:6}},[t("v-card",{staticClass:"pa-5 tabs-card text-center"},[t("h3",[e._v("BUDGET")]),e._v(" "+e._s(s.previous&&e.formattedReportMonth)+" "),t("h1",[e._v(" "+e._s(r.formatCurrency(s.budget))+" ")]),s.previous?[e._v(" "+e._s(r.formatCurrency(s.previousBudget))+" - "+e._s(e.formattedPreviousMonth)+" ")]:e._e()],2)],1),t("v-col",{attrs:{col:"6",xs:6}},[t("v-card",{staticClass:"pa-5 tabs-card text-center"},[t("h3",[e._v("SPEND")]),e._v(" "+e._s(s.previous&&e.formattedReportMonth)+" "),t("h1",[e._v(" "+e._s(r.formatCurrency(s.current.summary.spend))+" ")]),s.previous?[e._v(" "+e._s(r.formatCurrency(s.previous.summary.spend))+" - "+e._s(e.formattedPreviousMonth)+" ")]:e._e()],2)],1)],1)],1),t("div",{staticClass:"flex flex-wrap w-full mt-6 sm:pl-8"},e._l(r.metrics[n],function(f){return t(r.InsightBox,{key:f.label,attrs:{label:f.label,current:f.current,previous:f.previous}})}),1)]),s.current.dates instanceof Array?e._e():t("v-row",{staticClass:"py-0 pl-4 pr-8",staticStyle:{"page-break-after":"always"}},[t("v-col",[t("v-row",[t("v-col",[t("div",{staticClass:"sm:pl-8"},[r.chartData[s.name].datasets.length>0?t("v-card",{staticClass:"alwaysbreak mb-2 text-center",attrs:{id:"reporting-chart",elevation:"0",tile:""}}
1,[t("v-card-text",[t(r.ImpressionsChart,{attrs:{"chart-data":r.chartData[s.name]}})],1)],1):e._e()],1)])],1)],1)],1),s.current.items.length>0?t("v-row",{staticClass:"py-0 pl-4 pr-8"},[t("v-col",[t("v-row",[t("v-col",[t("div",{staticClass:"sm:pl-8"},[t(r.SpendAuditDeliveryByVideoTable,{attrs:{videos:s.current.items,reportName:s.name}})],1)])],1)],1)],1):e._e(),s.current.sites instanceof Array?e._e():t("v-row",{staticClass:"py-0 pl-4 pr-8",staticStyle:{"page-break-before":"always"}},[t("v-col",[t("v-row",[t("v-col",[t("div",{staticClass:"sm:pl-8"},[t(r.SitesTable,{attrs:{sites:s.current.sites,report:s}})],1)])],1)],1)],1),s.name==="youtube"&&((_=(u=s.current)==null?void 0:u.placements)==null?void 0:_.length)>0?t("v-row",{staticClass:"px-16"},[t(r.YouTubePlacements,{attrs:{placements:s.current.placements,pdfView:!r.isNotPDFUser}})],1):e._e()],1):e._e()]})]:[t("section",[t(r.NoBudgetAlert)],1)]]],2)])},be=[],xe=v(he,ye,be,!1,null,null);const Be=xe.exports;export{Be as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.