oont-contents/plugins/google-listings-and-ads/js/build/reports.js
2025-02-08 15:10:23 +01:00

4 lines
No EOL
18 KiB
JavaScript

"use strict";(globalThis.webpackChunkgoogle_listings_and_ads=globalThis.webpackChunkgoogle_listings_and_ads||[]).push([[528],{9531:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Ne});var r=a(1609),o=a(7723),s=a(6087),l=a(6476),n=a(7143),i=a(6520),d=a(7615);function c(e=""){return[...new Set(e.split(",").map((e=>parseInt(e,10))).filter((e=>!isNaN(e))))]}function g(e,t={},a={}){return e.reduce(((e,r)=>(e[r]=(t[r]||0)+(a[r]||0),e)),{})}function p(e,t){if(!t)return e||null;if(!e)return t;const a=new Map(e.map((e=>[e.interval,e.subtotals]))),r=new Map(t.map((e=>[e.interval,e.subtotals])));return[...new Set([...a.keys(),...r.keys()])].sort().map((e=>({interval:e,subtotals:g(d.YK,a.get(e),r.get(e))})))}function u(e,t={},a){const r=e?Object.keys(e):a;return e=e||{},r.reduce(((r,o)=>{let s=d.XQ.NONE,l=e[o];return a&&(a.includes(o)?void 0===t[o]?s=d.XQ.FOR_REQUEST:l=(e[o]||0)+t[o]:s=d.XQ.FOR_METRIC),{...r,[o]:(0,d.jr)(l,void 0,s)}}),{})}var m=a(2775),_=a(3905);const y="programs",f={free_listings:[],campaigns:[],intervals:[],totals:{}},h={loaded:!0,data:{},reportQuery:null};function b(e,t,a){const r=c(t[_.s_]),o=0===r.length||r.includes(_.Q),s=(0===r.length||r.some((e=>e!==_.Q)))&&_.Th.adsSetupComplete;return{free:o&&e(y,"free",t,a)||h,paid:s&&e(y,"paid",t,a)||h}}var v=a(3772),k=a(7419);const E=(0,o.__)("Unavailable","google-listings-and-ads");function S(e){const{formatNumber:t}=(0,v.A)(),{formatAmount:a}=(0,k.A)();return(0,s.useMemo)((()=>{function r(e){return void 0===e?E:this.isCurrency?a(e,!0):t(e,0)}return e.map((e=>({...e,formatFn:r})))}),[e,t,a])}var C=a(2047),A=a(9927),P=a(8468),F=a(7374),M=a(5703);const L=[{id:_.Q,name:(0,o.__)("Free Listings","google-listings-and-ads")}],w=new Set(L.map((e=>e.id)));var T=a(1209),Q=a(2448),N=a(6473);const I=(0,M.getSetting)("locale").siteLocale,x=(()=>{let e,t,a;function r(){e=null,a=new Promise((e=>{t=e})).then((()=>L.concat(e)))}r();const s={name:"programs",options:()=>a,getOptionIdentifier:e=>e.id,getOptionLabel:e=>e.name,getOptionKeywords:e=>[e.name],getOptionCompletion:e=>({key:e.id,label:e.name})};async function l(e){const t=new Set(c(e));let r;return r=function(e,t){if(e.size>t.size)return!1;for(const a of e)if(!t.has(a))return!1;return!0}(t,w)?L:(await a).filter((e=>t.has(e.id))),r.map((e=>({key:e.id,label:e.name})))}const n={label:(0,o.__)("Show","google-listings-and-ads"),staticParams:["period","chartType","paged","per_page","selectedMetric","reportKey","orderby","order"],param:"filter",showFilters:()=>!0,filters:[{label:(0,o.__)("All Google programs","google-listings-and-ads"),value:"all"},{label:(0,o.__)("Single program","google-listings-and-ads"),value:"select_program",subFilters:[{component:"Search",value:"single_program",path:["select_program"],settings:{type:"custom",param:_.s_,getLabels:l,labels:{placeholder:(0,o.__)("Type to search for a program","google-listings-and-ads"),button:(0,o.__)("Single Program","google-listings-and-ads")},autocompleter:s}}]},{label:(0,o.__)("Comparison","google-listings-and-ads"),chartMode:"item-comparison",value:"compare-programs",settings:{type:"custom",param:_.s_,getLabels:l,labels:{helpText:(0,o.__)("Check at least two programs below to compare","google-listings-and-ads"),placeholder:(0,o.__)("Search for programs to compare","google-listings-and-ads"),title:(0,o.__)("Compare Programs","google-listings-and-ads"),update:(0,o.__)("Compare","google-listings-and-ads")},autocompleter:s}}]};return({data:a,loaded:o})=>(o?(e&&e!==a&&r(),e=a,t()):e&&r(),n)})(),D=e=>{const{query:t,trackEventId:a}=e,o=[x((0,T.A)({exclude_removed:!1}))],{period:s,compare:l,before:n,after:i}=(0,F.getDateParamsFromQuery)(t),{primary:d,secondary:c}=(0,F.getCurrentDates)(t),g={period:s,compare:l,before:n,after:i,primaryDate:d,secondaryDate:c},p=(0,v.A)(),u={...t};return(0,r.createElement)(Q.A,{query:u,siteLocale:I,currency:p,filters:o,onDateSelect:e=>(0,N.ce)("gla_datepicker_update",{report:a,...(0,P.omitBy)(e,P.isUndefined)}),onFilterSelect:e=>(0,N.ce)("gla_filter",{report:a,filter:e.filter||"all"}),path:t.path,dateQuery:g,isoDateFormat:F.isoDateFormat})};var O=a(8846),R=a(4275),V=a(9039),q=a(2848);const j="https://merchants.google.com/mc/reporting/dashboard",B=({href:e,selected:t,onLinkClickCallback:a,metric:l,data:{value:n,prevValue:i,delta:c,missingFreeListingsData:g}})=>{const p=(0,s.useMemo)((()=>({value:l.formatFn(n),prevValue:l.formatFn(i)})),[l,n,i]);let u=l.label;const m=[],_=[];if(g!==d.XQ.NONE){const e=(0,o.__)("This data is currently available for Google Ads campaigns only.","google-listings-and-ads");m.push(e),_.push(e)}if(g===d.XQ.FOR_REQUEST){const e=(0,o.__)("Please try again later, or go to <googleMerchantCenterLink /> to track your performance for Google Free Listings.","google-listings-and-ads");m.push((0,s.createInterpolateElement)(e,{googleMerchantCenterLink:(0,r.createElement)(q.A,{eventName:"gla_google_mc_link_click",eventProps:{context:"reports",href:j},type:"external",target:"_blank",href:j,onClick:e=>e.stopPropagation()},(0,o.__)("Google Merchant Center","google-listings-and-ads"))}));const t=(0,s.createInterpolateElement)(e,{googleMerchantCenterLink:(0,r.createElement)(r.Fragment,null,(0,o.sprintf)(
// translators: %s: link to Google Merchant Center.
// translators: %s: link to Google Merchant Center.
(0,o.__)("Google Merchant Center (%s)","google-listings-and-ads"),j))});_.push((0,s.renderToString)(t))}if(m.length>0){const e=m.map(((e,t)=>(0,r.createElement)("div",{className:"gla-reports__metric-info",key:t},e)));u=(0,r.createElement)("div",{className:"gla-reports__metric-label"},l.label,(0,r.createElement)(V.A,{text:e},(0,r.createElement)(R.A,{className:"gla-reports__metric-infoicon",role:"img","aria-label":_.join(" "),size:16})))}return(0,r.createElement)(O.SummaryNumber,{label:u,href:e,selected:t,delta:c,onLinkClickCallback:a,...p})},K={value:null,preValue:null,delta:null},U=({loaded:e,metrics:t,expectedLength:a=t.length,totals:o,trackEventId:s})=>{const n=(0,m.A)();if(!e)return(0,r.createElement)(O.SummaryListPlaceholder,{numberOfItems:a});const{selectedMetric:i=t[0].key}=n;return(0,r.createElement)(O.SummaryList,null,(()=>t.map((e=>{const{key:t}=e,a=i===t,n=(0,l.getNewPath)({selectedMetric:t});return(0,r.createElement)(B,{key:t,metric:e,href:n,selected:a,data:o[t]||K,onLinkClickCallback:()=>{return e=t,void(0,N.ce)("gla_chart_tab_click",{report:s,context:e});var e}})}))))},G=(0,o.__)("No data for the selected date range","google-listings-and-ads");function z({metrics:e,loaded:t,intervals:a}){const o=(0,m.A)(),l=(0,v.A)(),{selectedMetric:n}=o;let i={};e.length&&(i=n&&e.find((e=>e.key===n))||e[0]);const{key:d,label:c,isCurrency:g=!1,formatFn:p}=i,u={...l,symbol:""},_=(0,F.getChartTypeForQuery)(o),y=g?"currency":"number",f=p.bind(i),h=(0,s.useMemo)((()=>t?a.map((({interval:e,subtotals:t})=>({date:e,[c]:{value:t[d],label:c}}))):[]),[d,c,t,a]);return(0,r.createElement)(O.Chart,{data:h,title:c,query:o,currency:u,chartType:_,valueType:y,tooltipValueFormat:f,isRequesting:!t,emptyMessage:G,layout:"time-comparison",legendPosition:"hidden"})}var X=a(6427),H=a(7892),Y=a(8237);const $=({compareBy:e,compareParam:t,metrics:a,isLoading:n,compareButonTitle:i,data:d,nameHeader:g,nameCell:p,...u})=>{const _=(0,m.A)(),[y,f]=(0,s.useState)((()=>new Set(c(_[e])))),h=d.length||5,b=(0,s.useMemo)((()=>{if(!a.length)return[];const e=a.map((e=>({...e,isSortable:!0,isNumeric:!0})));return e[0].defaultSort=!0,e[0].defaultOrder="desc",e}),[a]),v=e=>a.map((t=>{const a=e.subtotals[t.key];return{display:t.formatFn(a)}})),k=(e,t)=>{t?f(new Set([...y,e])):(y.delete(e),f(new Set(y)))};return(0,r.createElement)(Y.A,{actions:(0,r.createElement)(H.A,{isSecondary:!0,disabled:n||y.size<=1,title:i,onClick:()=>{const a=Array.from(y).join(",");(0,l.onQueryChange)("compare")(e,t,a)}},(0,o.__)("Compare","google-listings-and-ads")),isLoading:n,headers:(E=d,[{key:"compare",label:(0,r.createElement)(X.CheckboxControl,{disabled:n,checked:!n&&E.length&&y.size===E.length,onChange:e=>{if(e){const e=d.map((e=>e.id));f(new Set(e))}else f(new Set)}}),required:!0},{key:"title",label:g,isLeftAligned:!0,required:!0},...b]),rows:(e=>e.map((e=>[{display:(0,r.createElement)(X.CheckboxControl,{checked:y.has(e.id),onChange:k.bind(null,e.id)})},{display:p(e)},...v(e)])))(d),totalRows:d.length,rowsPerPage:h,query:_,compareBy:e,compareParam:t,onQueryChange:l.onQueryChange,onSort:(0,l.onQueryChange)("sort"),...u});var E},J=({isConverted:e,name:t})=>e?(0,r.createElement)("div",{className:"gla-reports__tooltip-campaign-name"},(0,r.createElement)(V.A,{placement:"top-start",text:(0,o.__)("This campaign has been upgraded to Performance Max","google-listings-and-ads")},t)):t,W=({isLoading:e,orderby:t,order:a,metrics:l,freeListings:n,campaigns:i,...d})=>{const c=(0,s.useMemo)((()=>{if(e)return[];if(!n||0===n.length)return i;const r=[{...n[0],name:(0,o.__)("Free Listings","google-listings-and-ads"),id:_.Q},...i];return i.length&&(r.sort(((e,a)=>(e.subtotals[t]||Number.NEGATIVE_INFINITY)-(a.subtotals[t]||Number.NEGATIVE_INFINITY))),"desc"===a&&r.reverse()),r}),[e,n,i,t,a]);return(0,r.createElement)($,{title:(0,o.__)("Programs","google-listings-and-ads"),compareButonTitle:(0,o.__)("Select one or more programs to compare","google-listings-and-ads"),nameHeader:(0,o.__)("Program","google-listings-and-ads"),nameCell:J,compareBy:"programs",compareParam:"filter",metrics:l,isLoading:e,data:c,...d})};var Z=a(1670),ee=a(9269);const te=[{key:"programs",title:(0,o.__)("Programs","google-listings-and-ads"),href:(0,l.getNewPath)({reportKey:"programs"},"/google/reports",{})},{key:"products",title:(0,o.__)("Products","google-listings-and-ads"),href:(0,l.getNewPath)({reportKey:"products"},"/google/reports",{})}],ae=()=>{const e=(0,ee.A)();return(0,r.createElement)(Z.A,{tabs:te,selectedKey:e})};var re=a(5246);const oe=[{key:"sales",label:(0,o.__)("Total Sales","google-listings-and-ads"),isCurrency:!0},{key:"conversions",label:(0,o.__)("Conversions","google-listings-and-ads")},{key:"clicks",label:(0,o.__)("Clicks","google-listings-and-ads")},{key:"impressions",label:(0,o.__)("Impressions","google-listings-and-ads")}],se=[...oe,{key:"spend",label:(0,o.__)("Total Spend","google-listings-and-ads"),isCurrency:!0}],le=[...oe,{key:"spend",label:(0,o.__)("Spend","google-listings-and-ads"),isCurrency:!0}],ne=()=>{const e="reports-programs",{loaded:t,data:{totals:a,intervals:o,freeListings:c,campaigns:g},reportQuery:{fields:_,orderby:y,order:h}}=function(){const e=(0,m.A)(),{paid:t,free:a}=(0,n.useSelect)((t=>{const{getReport:a}=t(i.Ui);return b(a,e,"primary")}),[e]),r=t.loaded&&a.loaded,o=t.reportQuery||a.reportQuery,l=a.reportQuery?.fields,d=(0,s.useMemo)((()=>{const e=a.data,o=t.data;return r&&o&&e?{freeListings:e.free_listings||f.free_listings,campaigns:o.campaigns||f.campaigns,intervals:p(o.intervals,e.intervals)||f.intervals,totals:u(o.totals,e.totals,l)}:f}),[r,t.data,a.data,l]);return{loaded:r,reportQuery:o,data:d}}(),v=(0,s.useMemo)((()=>{const e=t&&Object.keys(a).length>0;return{available:e?se.filter((({key:e})=>a.hasOwnProperty(e))):se.filter((({key:e})=>_.includes(e))),expected:e?le.filter((({key:e})=>a.hasOwnProperty(e))):le.filter((({key:e})=>_.includes(e)))}}),[t,a,_]),k=S(v.available),E=S(v.expected),{loaded:P,data:F}=function(e){const t=(0,m.A)(),{loaded:a,data:r}=function(e){const{paid:t,free:a}=(0,n.useSelect)((t=>{const{getReport:a}=t(i.Ui);return b(a,e,"secondary")}),[e]),r=t.loaded&&a.loaded,o=a.reportQuery?.fields,l=(0,s.useMemo)((()=>{const e=a.data,s=t.data;return r&&s&&e?u(s.totals,e.totals,o):f.totals}),[r,t.data,a.data,o]);return{loaded:r,data:l}}(t),o=(0,s.useMemo)((()=>a?function(e,t){return Object.keys(e).reduce(((a,r)=>({...a,[r]:(0,d.jr)(e[r].value,t[r]?.value,e[r].missingFreeListingsData)})),{})}(e,r):e),[a,r,e]);return{loaded:a,data:o}}(a),M=P?F:a;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(C.A,{context:e}),(0,r.createElement)(A.A,null),(0,r.createElement)(re.A,null),(0,r.createElement)(ae,null),(0,r.createElement)(D,{query:(0,l.getQuery)(),trackEventId:e}),(0,r.createElement)(U,{loaded:t,metrics:k,expectedLength:se.length,totals:M,trackEventId:e}),(0,r.createElement)(z,{metrics:k,loaded:t,intervals:o}),(0,r.createElement)(W,{trackEventReportId:e,isLoading:!t,orderby:y,order:h,metrics:E,freeListings:c,campaigns:g}))},ie="products",de={products:[],intervals:[],totals:{}};var ce=a(3741),ge=a(314),pe=a(2619),ue=a(3832),me=a(1455),_e=a.n(me);function ye(e,t=P.identity){return function(a="",r){const o="function"==typeof e?e(r):e,s=(0,l.getIdsFromQuery)(a);if(s.length<1)return Promise.resolve([]);const n={include:s.join(","),per_page:s.length};return _e()({path:(0,ue.addQueryArgs)(o,n)}).then((e=>e.map(t)))}}const fe=ye(ge.NAMESPACE+"/products",(e=>({key:e.id,label:e.name,type:e.type})));function he({attributes:e,name:t}){const a=(0,M.getSetting)("admin")?.variationTitleAttributesSeparator||" - ";if(t.indexOf(a)>-1)return t;const r=e.map((({option:e})=>e)).join(", ");return r?t+a+r:t}const be=ye((({products:e})=>e?ge.NAMESPACE+`/products/${e}/variations`:ge.NAMESPACE+"/variations"),(e=>({key:e.id,label:he(e)}))),ve={label:(0,o.__)("Show","google-listings-and-ads"),staticParams:[_.DA,"chartType","orderby","order","paged","per_page","selectedMetric","reportKey"],param:"filter",showFilters:()=>!0,filters:[{label:(0,o.__)("All Products","google-listings-and-ads"),value:"all"},{label:(0,o.__)("Single Product","google-listings-and-ads"),value:"select_product",chartMode:"item-comparison",subFilters:[{component:"Search",value:"single-product",chartMode:"item-comparison",path:["select_product"],settings:{type:"products",param:"products",getLabels:fe,labels:{placeholder:(0,o.__)("Type to search for a product","google-listings-and-ads"),button:(0,o.__)("Single Product","google-listings-and-ads")}}}]},{label:(0,o.__)("Comparison","google-listings-and-ads"),value:"compare-products",chartMode:"item-comparison",settings:{type:"products",param:"products",getLabels:fe,labels:{helpText:(0,o.__)("Check at least two products below to compare","google-listings-and-ads"),placeholder:(0,o.__)("Search for products to compare","google-listings-and-ads"),title:(0,o.__)("Compare Products","google-listings-and-ads"),update:(0,o.__)("Compare","google-listings-and-ads")}}}]},ke={showFilters:e=>"single-product"===e.filter&&!!e.products&&e["is-variable"],staticParams:["filter","products","chartType","orderby","order","paged","per_page","selectedMetric","reportKey"],param:"filter-variations",filters:[{label:(0,o.__)("All Variations","google-listings-and-ads"),chartMode:"item-comparison",value:"all"},{label:(0,o.__)("Single Variation","google-listings-and-ads"),value:"select_variation",subFilters:[{component:"Search",value:"single-variation",path:["select_variation"],settings:{type:"variations",param:"variations",getLabels:be,labels:{placeholder:(0,o.__)("Type to search for a variation","google-listings-and-ads"),button:(0,o.__)("Single Variation","google-listings-and-ads")}}}]},{label:(0,o.__)("Comparison","google-listings-and-ads"),chartMode:"item-comparison",value:"compare-variations",settings:{type:"variations",param:"variations",getLabels:be,labels:{helpText:(0,o.__)("Check at least two variations below to compare","google-listings-and-ads"),placeholder:(0,o.__)("Search for variations to compare","google-listings-and-ads"),title:(0,o.__)("Compare Variations","google-listings-and-ads"),update:(0,o.__)("Compare","google-listings-and-ads")}}}]},Ee={label:(0,o.__)("Show data from","google-listings-and-ads"),param:_.DA,staticParams:["filter","products","orderby","order","chartType","selectedMetric","reportKey"],defaultValue:_.r6,filters:[{value:_.Mx,label:(0,o.__)("Ad campaigns","google-listings-and-ads")},{value:_.k1,label:(0,o.__)("Free listings","google-listings-and-ads")}],showFilters:({hasPaidSource:e})=>e},Se=(0,pe.applyFilters)("gla_products_report_filters",[ve,ke,Ee]),Ce=(0,pe.applyFilters)("gla_products_report_advanced_filters",{}),Ae=(0,M.getSetting)("currency"),Pe=(0,M.getSetting)("locale").siteLocale,Fe=e=>{const{hasPaidSource:t,query:a,trackEventId:o}=e,{period:s,compare:l,before:i,after:d}=(0,F.getDateParamsFromQuery)(a),{primary:c,secondary:g}=(0,F.getCurrentDates)(a),p={period:s,compare:l,before:i,after:d,primaryDate:c,secondaryDate:g},u=(0,n.useSelect)((e=>{if(a.search||!a.products||1!==a.products.split(",").length)return!1;const t=parseInt(a.products,10),r={include:t},{getItems:o}=e(ge.ITEMS_STORE_NAME),s=o("products",r);return s&&s.get(t)&&"variable"===s.get(t).type}),[a.search,a.products]),m={...a,"is-variable":u,hasPaidSource:t};return(0,r.createElement)(O.ReportFilters,{query:m,siteLocale:Pe,currency:Ae,filters:Se,advancedFilters:Ce,onDateSelect:e=>(0,N.ce)("gla_datepicker_update",{report:o,...(0,P.omitBy)(e,P.isUndefined)}),onFilterSelect:e=>(0,N.ce)("gla_filter",{report:o,filter:e.filter||"all",filterVariations:e["filter-variations"]}),dateQuery:p,isoDateFormat:F.isoDateFormat})},Me=({metrics:e,isLoading:t,products:a,...s})=>(0,r.createElement)($,{title:(0,o.__)("Products","google-listings-and-ads"),compareButonTitle:(0,o.__)("Select one or more products to compare","google-listings-and-ads"),nameHeader:(0,o.__)("Product title","google-listings-and-ads"),nameCell:e=>e.name,compareBy:"products",compareParam:"filter",metrics:e,isLoading:t,data:a,...s}),Le=[{key:"clicks",label:(0,o.__)("Clicks","google-listings-and-ads")},{key:"impressions",label:(0,o.__)("Impressions","google-listings-and-ads")}],we=[{key:"sales",label:(0,o.__)("Total Sales","google-listings-and-ads"),isCurrency:!0},{key:"conversions",label:(0,o.__)("Conversions","google-listings-and-ads")},...Le,{key:"spend",label:(0,o.__)("Spend","google-listings-and-ads"),isCurrency:!0}],Te=({hasPaidSource:e})=>{const t="reports-products",a=(0,l.getQuery)(),o=e?a[_.DA]||_.r6:_.k1,s=S(o===_.Mx?we:Le),{loaded:c,data:{totals:g,intervals:p,products:u}}=function(e){const t=(0,m.A)();return(0,n.useSelect)((a=>{const{getReport:r}=a(i.Ui),o=r(ie,e,t,"primary"),s=r(ie,e,t,"secondary"),l=o.loaded&&s.loaded;let n=de;return l&&o.data&&s.data&&(n={products:o.data.products||de.products,intervals:o.data.intervals||de.intervals,totals:(0,d.bM)(o.data.totals,s.data.totals,o.reportQuery.fields)}),{data:n,loaded:l}}),[e,t])}(o);return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(Fe,{hasPaidSource:e,query:a,trackEventId:t}),(0,r.createElement)(U,{metrics:s,loaded:c,totals:g,trackEventId:t}),(0,r.createElement)(z,{metrics:s,loaded:c,intervals:p}),(0,r.createElement)(Me,{trackEventReportId:t,metrics:s,isLoading:!c,products:u}))},Qe=()=>{const{loaded:e,data:t}=(0,T.A)(),a=e&&t.some((({status:e})=>"enabled"===e));return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(C.A,{context:"reports-products"}),(0,r.createElement)(A.A,null),(0,r.createElement)(re.A,null),(0,r.createElement)(ae,null),e?(0,r.createElement)(Te,{hasPaidSource:a}):(0,r.createElement)(ce.A,null))},Ne=()=>"products"===(0,ee.A)()?(0,r.createElement)(Qe,null):(0,r.createElement)(ne,null)}}]);