@embedreach/components 0.3.47 → 0.3.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,82 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { T as TrendingUp, K as KeyPointsList } from "./index.js";
3
+ import "react";
4
+ import { I as InfoCard } from "./index2.js";
5
+ import { D as DollarSign } from "./dollar-sign.js";
6
+ function _createMdxContent(props) {
7
+ const _components = {
8
+ p: "p",
9
+ ...props.components
10
+ };
11
+ return jsxs(Fragment, {
12
+ children: [jsx(InfoCard, {
13
+ title: "What is Cost Per Lead (CPL)?",
14
+ description: "How much you are spending in ads for every new lead your campaigns generate",
15
+ icon: DollarSign,
16
+ variant: "highlighted",
17
+ children: jsxs("div", {
18
+ className: "space-y-4 text-sm",
19
+ children: [jsx("p", {
20
+ className: "text-muted-foreground",
21
+ children: jsx(_components.p, {
22
+ children: "Cost Per Lead is calculated by dividing your total ad spend by the number of leads generated\nin the same period."
23
+ })
24
+ }), jsxs("div", {
25
+ className: "bg-muted rounded-lg p-3",
26
+ children: [jsx("p", {
27
+ className: "font-medium",
28
+ children: "Formula: Ad Spend divided by Leads = Cost Per Lead"
29
+ }), jsx("p", {
30
+ className: "text-muted-foreground mt-1",
31
+ children: jsx(_components.p, {
32
+ children: "Example: $500 spent on ads, 25 leads generated = $20 CPL"
33
+ })
34
+ })]
35
+ }), jsx("p", {
36
+ className: "text-muted-foreground",
37
+ children: jsx(_components.p, {
38
+ children: "You can find CPL in the Leads tab of your dashboard, broken down by channel and campaign."
39
+ })
40
+ })]
41
+ })
42
+ }), "\n", jsx(InfoCard, {
43
+ title: "Is your CPL healthy?",
44
+ description: "How to evaluate whether your cost per lead makes sense for your business",
45
+ icon: TrendingUp,
46
+ variant: "default",
47
+ intro: "There is no universal good CPL — it depends entirely on how much a customer is worth to your business.",
48
+ items: [{
49
+ title: "Compare CPL to your average order value",
50
+ description: "If a lead converts to a customer worth $500, a CPL of $50 is very healthy. A CPL of $400 leaves little margin."
51
+ }, {
52
+ title: "Factor in your lead-to-customer conversion rate",
53
+ description: "If only 10% of leads become customers, your effective cost per customer is 10x your CPL. Use this to set a CPL ceiling that keeps campaigns profitable."
54
+ }, {
55
+ title: "Compare CPL across channels",
56
+ description: "A channel with a lower CPL is delivering leads more efficiently. Use this to shift budget toward your most cost-effective sources."
57
+ }]
58
+ }), "\n", jsx(KeyPointsList, {
59
+ title: "Key things to remember",
60
+ points: [{
61
+ text: "CPL only counts leads we can attribute to an ad click — unattributed leads from direct visits are not included in the calculation"
62
+ }, {
63
+ text: "A rising CPL over time means your ads are becoming less efficient — investigate targeting, creative, or market saturation"
64
+ }, {
65
+ text: "A falling CPL is a good sign — more leads for the same spend means improved campaign performance"
66
+ }],
67
+ variant: "highlighted"
68
+ })]
69
+ });
70
+ }
71
+ function MDXContent(props = {}) {
72
+ const { wrapper: MDXLayout } = props.components || {};
73
+ return MDXLayout ? jsx(MDXLayout, {
74
+ ...props,
75
+ children: jsx(_createMdxContent, {
76
+ ...props
77
+ })
78
+ }) : _createMdxContent(props);
79
+ }
80
+ export {
81
+ MDXContent as default
82
+ };
@@ -0,0 +1,107 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { T as TrendingUp, E as ExpandableScenarios } from "./index.js";
3
+ import { I as InfoCard } from "./index2.js";
4
+ import { C as CircleHelp } from "./circle-help.js";
5
+ function _createMdxContent(props) {
6
+ return jsxs(Fragment, {
7
+ children: [jsx(InfoCard, {
8
+ title: "Before you start troubleshooting",
9
+ description: "Check these four things first — they cover the most common causes",
10
+ icon: TrendingUp,
11
+ variant: "highlighted",
12
+ items: [{
13
+ title: "Is the tracking snippet installed?",
14
+ description: "Your dashboard cannot show revenue attribution data without the snippet on your website. Check your website source code or use the testing guide to verify it is firing."
15
+ }, {
16
+ title: "Are your ad accounts connected?",
17
+ description: "Go to Settings and confirm at least one ad account is showing as connected. Without a connected ad account, spend data will not appear."
18
+ }, {
19
+ title: "Has enough time passed?",
20
+ description: "After connecting, it can take 24-48 hours for data to fully populate. If you connected recently, wait a day before investigating further."
21
+ }, {
22
+ title: "Does your selected date range include activity?",
23
+ description: "If you set the date range to a period before ads were connected or before the snippet was installed, there will be no data to show."
24
+ }]
25
+ }), "\n", jsx(ExpandableScenarios, {
26
+ title: "Specific scenarios",
27
+ description: "Find your situation and follow the steps",
28
+ icon: CircleHelp,
29
+ scenarios: [{
30
+ id: 1,
31
+ title: "Dashboard is completely empty",
32
+ description: "No metrics, no charts, nothing showing at all",
33
+ steps: [{
34
+ platform: "Check snippet",
35
+ action: "Installed?",
36
+ day: "Step 1",
37
+ color: "bg-blue-500"
38
+ }, {
39
+ platform: "Check ad accounts",
40
+ action: "Connected?",
41
+ day: "Step 2",
42
+ color: "bg-blue-500"
43
+ }, {
44
+ platform: "Check date range",
45
+ action: "Correct?",
46
+ day: "Step 3",
47
+ color: "bg-green-500"
48
+ }],
49
+ attribution: "Most likely cause: the tracking snippet is not installed or the ad accounts are not connected. Start with the snippet verification guide."
50
+ }, {
51
+ id: 2,
52
+ title: "Ad spend shows but no revenue",
53
+ description: "Spend and impressions appear, but measured revenue is zero",
54
+ steps: [{
55
+ platform: "Snippet present",
56
+ action: "Fires?",
57
+ day: "Step 1",
58
+ color: "bg-blue-500"
59
+ }, {
60
+ platform: "Purchase events",
61
+ action: "Firing?",
62
+ day: "Step 2",
63
+ color: "bg-blue-500"
64
+ }, {
65
+ platform: "Conversions exist",
66
+ action: "In period?",
67
+ day: "Step 3",
68
+ color: "bg-green-500"
69
+ }],
70
+ attribution: "Ad spend is coming from your connected ad accounts (working correctly). Missing revenue usually means that transactions are not coming in. Go to the Transactions tab and change the picker from Click Date to Transaction Date and verify that there is data. If there is not, contact support. If there is, double check that the snippet is installed correctly."
71
+ }, {
72
+ id: 3,
73
+ title: "Revenue from ads is much lower than expected or a high % of unknow attribution",
74
+ description: "Some revenue shows, but the numbers seem too low",
75
+ steps: [{
76
+ platform: "Snippet coverage",
77
+ action: "All pages?",
78
+ day: "Step 1",
79
+ color: "bg-blue-500"
80
+ }, {
81
+ platform: "Purchase events",
82
+ action: "All orders?",
83
+ day: "Step 2",
84
+ color: "bg-blue-500"
85
+ }, {
86
+ platform: "Unknown %",
87
+ action: "High?",
88
+ day: "Step 3",
89
+ color: "bg-amber-500"
90
+ }],
91
+ attribution: "Check that the snippet is installed on all pages (not just the homepage), and verify that every completed purchase is triggering a purchase event. Also ensure that you have your call tracking tool set up correctly, if you use one, or consider adding one if you do not already."
92
+ }]
93
+ })]
94
+ });
95
+ }
96
+ function MDXContent(props = {}) {
97
+ const { wrapper: MDXLayout } = props.components || {};
98
+ return MDXLayout ? jsx(MDXLayout, {
99
+ ...props,
100
+ children: jsx(_createMdxContent, {
101
+ ...props
102
+ })
103
+ }) : _createMdxContent();
104
+ }
105
+ export {
106
+ MDXContent as default
107
+ };
@@ -0,0 +1,156 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { F as FeatureHighlights, c as Calendar, d as Target, M as MousePointer, P as ProcessSteps, T as TrendingUp, E as ExpandableScenarios, e as Eye, K as KeyPointsList } from "./index.js";
3
+ import { I as InfoCard } from "./index2.js";
4
+ function _createMdxContent(props) {
5
+ return jsxs(Fragment, {
6
+ children: [jsx(FeatureHighlights, {
7
+ cardTitle: "Last-Click Attribution with Paid Priority",
8
+ cardDescription: "Paid ads always get priority. If we find any ad clicks in the 90 days before purchase, the most recent ad click gets all the credit. Otherwise, we use a priority system that favors attributed sources over direct traffic.",
9
+ cardIcon: Target,
10
+ highlights: [{
11
+ icon: Calendar,
12
+ title: "90-Day Window",
13
+ description: "We look back 90 days from purchase"
14
+ }, {
15
+ icon: Target,
16
+ title: "Paid Ads First",
17
+ description: "Ad clicks always get priority"
18
+ }, {
19
+ icon: MousePointer,
20
+ title: "Last-Click",
21
+ description: "Most recent interaction wins"
22
+ }]
23
+ }), "\n", jsx(ProcessSteps, {
24
+ title: "How Our System Works",
25
+ icon: TrendingUp,
26
+ steps: [{
27
+ number: 1,
28
+ title: "Look Back 90 Days",
29
+ description: "When a purchase happens, we look back 90 days to find all the ways this customer interacted with your marketing."
30
+ }, {
31
+ number: 2,
32
+ title: "Check for Paid Ad Clicks",
33
+ description: "We search for any clicks from your paid ads (Google, Facebook, etc.). If we find any ad clicks, we move to step 3."
34
+ }, {
35
+ number: 3,
36
+ title: "Last Paid Click Wins",
37
+ description: "If we found paid ad clicks, the most recent ad click before the purchase gets 100% credit. This is your attribution."
38
+ }, {
39
+ number: 4,
40
+ title: "Fallback Priority System",
41
+ description: "If there are no paid ad clicks, we prioritize attributed sources (email/SMS, organic search, social, referral) over direct traffic. We find the best source type available, then use the most recent visit of that type."
42
+ }]
43
+ }), "\n", jsx(ExpandableScenarios, {
44
+ title: "Attribution Scenarios",
45
+ description: "See how different customer journeys are attributed",
46
+ icon: Eye,
47
+ scenarios: [{
48
+ id: 1,
49
+ title: "Last Paid Click Wins",
50
+ description: "Customer clicks multiple ads - the last ad click gets the credit",
51
+ steps: [{
52
+ platform: "Google Ads",
53
+ action: "Click",
54
+ day: "Day 1",
55
+ color: "bg-blue-500"
56
+ }, {
57
+ platform: "Facebook Ads",
58
+ action: "Click",
59
+ day: "Day 15",
60
+ color: "bg-blue-600"
61
+ }, {
62
+ platform: "Purchase",
63
+ action: "Completes",
64
+ day: "Day 20",
65
+ color: "bg-green-500"
66
+ }],
67
+ attribution: "Facebook gets 100% credit (most recent paid ad click before purchase)"
68
+ }, {
69
+ id: 2,
70
+ title: "No Paid Clicks => Fallback",
71
+ description: "Customer visits from organic search, then returns directly",
72
+ steps: [{
73
+ platform: "Organic Search",
74
+ action: "Visit",
75
+ day: "Day 1",
76
+ color: "bg-green-600"
77
+ }, {
78
+ platform: "Direct Visit",
79
+ action: "Returns",
80
+ day: "Day 5",
81
+ color: "bg-gray-400"
82
+ }, {
83
+ platform: "Purchase",
84
+ action: "Completes",
85
+ day: "Day 10",
86
+ color: "bg-green-500"
87
+ }],
88
+ attribution: "Organic Search gets credit (no paid ads, so we prioritize organic search over direct traffic)"
89
+ }, {
90
+ id: 3,
91
+ title: "Outside 90-Day Window",
92
+ description: "Ad clicks happened too long ago, falls back to priority system",
93
+ steps: [{
94
+ platform: "Google Ads",
95
+ action: "Click",
96
+ day: "Day 1",
97
+ color: "bg-gray-400"
98
+ }, {
99
+ platform: "Organic Search",
100
+ action: "Visit",
101
+ day: "Day 89",
102
+ color: "bg-green-600"
103
+ }, {
104
+ platform: "Purchase",
105
+ action: "Completes",
106
+ day: "Day 100",
107
+ color: "bg-green-500"
108
+ }],
109
+ attribution: "Organic Search gets credit (Google ad was 99 days ago, outside window, so we use the highest-priority source available)"
110
+ }]
111
+ }), "\n", jsx(InfoCard, {
112
+ title: 'Why Some Purchases Show as "Unknown"',
113
+ description: "When we cannot match a purchase to any of your marketing",
114
+ icon: Eye,
115
+ variant: "default",
116
+ intro: "A purchase is labeled Unknown when we cannot find any record of that customer visiting your site within 90 days before buying:",
117
+ items: [{
118
+ title: "No Recent Website Visits",
119
+ description: "The customer did not visit your website in the 90 days before purchasing, or their visit was blocked by ad blockers",
120
+ dotColor: "amber"
121
+ }, {
122
+ title: "Cannot Match the Customer",
123
+ description: "We cannot connect their website visits to their purchase (different email/phone, or they never identified themselves on your site)",
124
+ dotColor: "amber"
125
+ }, {
126
+ title: "Old Marketing Touch",
127
+ description: "They clicked your ad or visited your site more than 90 days ago, which is outside our tracking window",
128
+ dotColor: "amber"
129
+ }]
130
+ }), "\n", jsx(KeyPointsList, {
131
+ title: "Important Notes",
132
+ points: [{
133
+ text: "Paid ads always win: If there are ANY paid ad clicks in the 90 days before purchase, the last paid ad click gets 100% credit"
134
+ }, {
135
+ text: "Fallback priority system: When no paid ads exist, we prioritize sources in this order: email & SMS > organic search > social > referral > direct > unknown"
136
+ }, {
137
+ text: "Best source wins: We find the highest-priority source type available, then use the most recent visit of that type"
138
+ }, {
139
+ text: "Direct is last resort: Direct traffic only gets credit when there are no other attributed sources in the window"
140
+ }],
141
+ variant: "highlighted"
142
+ })]
143
+ });
144
+ }
145
+ function MDXContent(props = {}) {
146
+ const { wrapper: MDXLayout } = props.components || {};
147
+ return MDXLayout ? jsx(MDXLayout, {
148
+ ...props,
149
+ children: jsx(_createMdxContent, {
150
+ ...props
151
+ })
152
+ }) : _createMdxContent();
153
+ }
154
+ export {
155
+ MDXContent as default
156
+ };
@@ -0,0 +1,128 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { F as FeatureHighlights, U as Users, P as ProcessSteps, T as TrendingUp, K as KeyPointsList } from "./index.js";
3
+ import "react";
4
+ import { I as InfoCard } from "./index2.js";
5
+ import { S as ShoppingCart } from "./shopping-cart.js";
6
+ function _createMdxContent(props) {
7
+ const _components = {
8
+ p: "p",
9
+ ...props.components
10
+ };
11
+ return jsxs(Fragment, {
12
+ children: [jsx(FeatureHighlights, {
13
+ cardTitle: "Two Stages of the Same Journey",
14
+ cardDescription: "Leads and transactions are not alternatives — they are two sequential steps in your customer funnel. Together, they give you a complete picture of how your marketing is performing.",
15
+ cardIcon: Users,
16
+ columns: 2,
17
+ highlights: [{
18
+ icon: Users,
19
+ title: "A Lead",
20
+ description: "A person who has expressed interest by submitting a form (contact us, request a quote, book an appointment, etc.) or by calling your business — but who has not yet made a purchase. A lead is an opportunity, not a sale."
21
+ }, {
22
+ icon: ShoppingCart,
23
+ title: "A Transaction",
24
+ description: "A completed sale where money changed hands and the purchase event was captured by the tracking snippet. A transaction is the outcome — the lead that converted."
25
+ }]
26
+ }), "\n", jsx(ProcessSteps, {
27
+ title: "How leads and transactions fit into the funnel",
28
+ icon: TrendingUp,
29
+ steps: [{
30
+ number: 1,
31
+ title: "Someone sees your ad or other marketing and clicks",
32
+ description: "The tracking snippet records the click and saves the source. At this point they are just a visitor."
33
+ }, {
34
+ number: 2,
35
+ title: "They fill out a form or call — becoming a Lead",
36
+ description: "When they submit a contact form, request a quote, or call your business, a Lead is created. This is your signal that the marketing worked well enough to generate interest. The lead is attributed to the channel or campaign that brought them in."
37
+ }, {
38
+ number: 3,
39
+ title: "You follow up and close the sale",
40
+ description: "Some businesses have a sales process that needs to occur here, while for others a sale is often immediate. The lead will remain open for 90 days until the sale is closed."
41
+ }, {
42
+ number: 4,
43
+ title: "The sale is recorded — becoming a Transaction",
44
+ description: "When the purchase is completed and captured by the tracking snippet, a Transaction is recorded. It is attributed back to the same original marketing source that created the lead. The lead is now marked as converted, and you can see the final value and the transaction ID."
45
+ }, {
46
+ number: 5,
47
+ title: "Leads go stale",
48
+ description: "Not every lead becomes a customer. Those leads that still have not made a purchase 90 days later will be marked stale."
49
+ }]
50
+ }), "\n", jsx(InfoCard, {
51
+ title: "How to interpret the data",
52
+ description: "Each tab answers a different question about your marketing",
53
+ icon: Users,
54
+ variant: "highlighted",
55
+ children: jsxs("div", {
56
+ className: "space-y-4 text-sm",
57
+ children: [jsxs("div", {
58
+ className: "flex items-start gap-3",
59
+ children: [jsx("div", {
60
+ className: "w-2 h-2 rounded-full bg-blue-500 mt-2 flex-shrink-0"
61
+ }), jsxs("div", {
62
+ children: [jsx("h5", {
63
+ className: "font-medium",
64
+ children: "The Leads tab gives you earlier, faster feedback"
65
+ }), jsx("p", {
66
+ className: "text-muted-foreground",
67
+ children: jsx(_components.p, {
68
+ children: "Not every lead converts right away — some take days, weeks, or longer. If you only watched transactions, you would be waiting a long time to know whether a campaign is generating interest. The Leads tab lets you see which marketing efforts are bringing in the most opportunities now, so you can adjust your strategy without waiting for the full sales cycle to play out."
69
+ })
70
+ })]
71
+ })]
72
+ }), jsxs("div", {
73
+ className: "flex items-start gap-3",
74
+ children: [jsx("div", {
75
+ className: "w-2 h-2 rounded-full bg-blue-500 mt-2 flex-shrink-0"
76
+ }), jsxs("div", {
77
+ children: [jsx("h5", {
78
+ className: "font-medium",
79
+ children: "The Transactions tab tells you what actually drove revenue"
80
+ }), jsx("p", {
81
+ className: "text-muted-foreground",
82
+ children: jsx(_components.p, {
83
+ children: "Transactions are the source of truth for revenue attribution. Each row in the Transactions tab is a real sale that you can trace back to the specific campaign, channel, or source that originated it. This is where you measure ROAS and understand the actual financial return on your ad spend."
84
+ })
85
+ })]
86
+ })]
87
+ }), jsxs("div", {
88
+ className: "flex items-start gap-3",
89
+ children: [jsx("div", {
90
+ className: "w-2 h-2 rounded-full bg-blue-500 mt-2 flex-shrink-0"
91
+ }), jsxs("div", {
92
+ children: [jsx("h5", {
93
+ className: "font-medium",
94
+ children: "Read them together to find where your funnel is leaking"
95
+ }), jsx("p", {
96
+ className: "text-muted-foreground",
97
+ children: jsx(_components.p, {
98
+ children: "A channel generating many leads but few transactions means interest is there but something is breaking down — pricing, follow-up speed, or lead quality. A channel with strong transactions but few leads means it is converting efficiently and may be worth more budget. Comparing the two tabs side by side reveals where to focus your attention."
99
+ })
100
+ })]
101
+ })]
102
+ })]
103
+ })
104
+ }), "\n", jsx(KeyPointsList, {
105
+ title: "Important to know",
106
+ points: [{
107
+ text: "A single customer can appear in both tabs — first as a lead when they submit a form, then as a transaction when the sale is recorded"
108
+ }, {
109
+ text: "Lead counts and transaction counts will not match — not every lead converts, and not every transaction started with an identified lead"
110
+ }, {
111
+ text: "Both tabs support the same date range filtering and attribution logic, so you can compare the same time period across both"
112
+ }],
113
+ variant: "highlighted"
114
+ })]
115
+ });
116
+ }
117
+ function MDXContent(props = {}) {
118
+ const { wrapper: MDXLayout } = props.components || {};
119
+ return MDXLayout ? jsx(MDXLayout, {
120
+ ...props,
121
+ children: jsx(_createMdxContent, {
122
+ ...props
123
+ })
124
+ }) : _createMdxContent(props);
125
+ }
126
+ export {
127
+ MDXContent as default
128
+ };
@@ -0,0 +1,47 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { g as ChartNoAxesColumn, K as KeyPointsList } from "./index.js";
3
+ import "react";
4
+ import { I as InfoCard } from "./index2.js";
5
+ function _createMdxContent(props) {
6
+ return jsxs(Fragment, {
7
+ children: [jsx(InfoCard, {
8
+ title: 'Why "Measured" Is Always Less Than Total',
9
+ description: "Measured conversions and measured revenue only include purchases we can trace back to a marketing touchpoint",
10
+ icon: ChartNoAxesColumn,
11
+ variant: "highlighted",
12
+ intro: "We can only attribute a purchase if we can answer two questions: who is this customer, and how did they find you? If either answer is missing, the purchase cannot be measured.",
13
+ items: [{
14
+ title: "We could not identify the customer",
15
+ description: "If the buyer never visited your website or was never identified by filling out a form or placing a trackable phone call, we have no visitor record to match the purchase to."
16
+ }, {
17
+ title: "There was no marketing touchpoint in the 90-day window",
18
+ description: "Even if we know who the customer is, if their last marketing interaction was more than 90 days ago, we cannot attribute the purchase."
19
+ }, {
20
+ title: "The snippet was not installed or fired correctly",
21
+ description: "A missing or incorrectly installed snippet means visit and purchase data is not being captured at all."
22
+ }]
23
+ }), "\n", jsx(KeyPointsList, {
24
+ title: "What this means for you",
25
+ points: [{
26
+ text: "Do not compare measured revenue directly to your total revenue — they are measuring different things and the gap is expected"
27
+ }, {
28
+ text: "A higher measured revenue percentage (closer to your total) means better tracking coverage — improve it by ensuring the snippet is installed site-wide, improving your landing pages to help capture lead information, and setting up a call tracking tool if your business receives a high volume of calls"
29
+ }, {
30
+ text: "Use measured revenue to evaluate relative campaign performance: even if it is not your full revenue, the proportions between campaigns are still accurate"
31
+ }],
32
+ variant: "highlighted"
33
+ })]
34
+ });
35
+ }
36
+ function MDXContent(props = {}) {
37
+ const { wrapper: MDXLayout } = props.components || {};
38
+ return MDXLayout ? jsx(MDXLayout, {
39
+ ...props,
40
+ children: jsx(_createMdxContent, {
41
+ ...props
42
+ })
43
+ }) : _createMdxContent();
44
+ }
45
+ export {
46
+ MDXContent as default
47
+ };
@@ -0,0 +1,67 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { F as FeatureHighlights, T as TrendingUp, g as ChartNoAxesColumn, K as KeyPointsList } from "./index.js";
3
+ import "react";
4
+ import { I as InfoCard } from "./index2.js";
5
+ import { S as ShoppingCart } from "./shopping-cart.js";
6
+ import { D as DollarSign } from "./dollar-sign.js";
7
+ function _createMdxContent(props) {
8
+ return jsxs(Fragment, {
9
+ children: [jsx(FeatureHighlights, {
10
+ cardTitle: "Four Headline Metrics",
11
+ cardDescription: "The top of your dashboard shows the four numbers that give you the fastest read on how your advertising is performing.",
12
+ cardIcon: ChartNoAxesColumn,
13
+ columns: 2,
14
+ highlights: [{
15
+ icon: ShoppingCart,
16
+ title: "Measured Conversions",
17
+ description: "Purchases we traced back to a marketing touchpoint in the 90-day attribution window"
18
+ }, {
19
+ icon: DollarSign,
20
+ title: "Ad Spend",
21
+ description: "Total amount spent on ads across all connected platforms in the selected date range"
22
+ }, {
23
+ icon: TrendingUp,
24
+ title: "Measured Revenue",
25
+ description: "Revenue from purchases we could attribute to your marketing efforts"
26
+ }, {
27
+ icon: ChartNoAxesColumn,
28
+ title: "ROAS",
29
+ description: "Measured Revenue divided by Ad Spend — your return on every dollar spent"
30
+ }]
31
+ }), "\n", jsx(InfoCard, {
32
+ title: "What the two charts show",
33
+ description: "Trend and breakdown views below the headline metrics",
34
+ icon: ChartNoAxesColumn,
35
+ variant: "highlighted",
36
+ items: [{
37
+ title: "Traffic Funnel",
38
+ description: "Shows the journey from impressions to clicks to purchases, representing at the top level how effectively ads served are leading to dollars spent."
39
+ }, {
40
+ title: "Revenue Over Time",
41
+ description: "Shows measured revenue and ad spend side by side over the selected date range. Look for periods where revenue rises without a matching increase in spend — that is where your campaigns are most efficient."
42
+ }]
43
+ }), "\n", jsx(KeyPointsList, {
44
+ title: "What 'measured' means",
45
+ points: [{
46
+ text: '"Measured" always means we could trace the purchase back to a marketing touchpoint — it is not your total business revenue'
47
+ }, {
48
+ text: "Purchases without a matching marketing touchpoint in the 90-day window show as Unknown and are still counted in transactions but cannot be attributed to a channel"
49
+ }, {
50
+ text: "Compare your measured revenue to your total revenue to understand what percentage of your sales are being tracked and attributed"
51
+ }],
52
+ variant: "highlighted"
53
+ })]
54
+ });
55
+ }
56
+ function MDXContent(props = {}) {
57
+ const { wrapper: MDXLayout } = props.components || {};
58
+ return MDXLayout ? jsx(MDXLayout, {
59
+ ...props,
60
+ children: jsx(_createMdxContent, {
61
+ ...props
62
+ })
63
+ }) : _createMdxContent();
64
+ }
65
+ export {
66
+ MDXContent as default
67
+ };