Files
2026-05-15 09:28:11 +02:00

1182 lines
45 KiB
HTML

<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Raport Kwiecień 2026 &mdash; Ibra Makeup</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<style>
:root {
--primary: #0d8b8b;
--primary-dark: #065a5a;
--primary-light: #e8f5f5;
--green: #27ae60;
--red: #e74c3c;
--gray: #6c757d;
--light-gray: #f8f9fa;
--border: #e9ecef;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
color: #333;
background: #f5f5f5;
line-height: 1.6;
}
.hero {
background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 60%, #10a5a5 100%);
color: white;
padding: 60px 40px;
position: relative;
overflow: hidden;
}
.hero::before {
content: '';
position: absolute;
top: 0; right: 0;
width: 50%;
height: 100%;
background: url("data:image/svg+xml,%3Csvg width='400' height='400' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='grid' width='40' height='40' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='20' cy='20' r='1.5' fill='rgba(255,255,255,0.15)'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='400' height='400' fill='url(%23grid)'/%3E%3Cline x1='20' y1='60' x2='100' y2='20' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cline x1='100' y1='20' x2='180' y2='80' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cline x1='180' y1='80' x2='260' y2='40' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cline x1='260' y1='40' x2='340' y2='100' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cline x1='60' y1='140' x2='140' y2='120' stroke='rgba(255,255,255,0.06)' stroke-width='1'/%3E%3Cline x1='140' y1='120' x2='220' y2='180' stroke='rgba(255,255,255,0.06)' stroke-width='1'/%3E%3Cline x1='220' y1='180' x2='300' y2='140' stroke='rgba(255,255,255,0.06)' stroke-width='1'/%3E%3Cline x1='300' y1='140' x2='380' y2='200' stroke='rgba(255,255,255,0.06)' stroke-width='1'/%3E%3C/svg%3E") repeat;
opacity: 0.7;
}
.hero-content {
max-width: 1400px;
margin: 0 auto;
position: relative;
z-index: 1;
}
.logo {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 50px;
}
.logo svg {
height: 40px;
}
.logo-text {
font-size: 22px;
font-weight: 700;
letter-spacing: 3px;
text-transform: uppercase;
}
.logo-subtitle {
font-size: 11px;
letter-spacing: 2px;
opacity: 0.85;
text-transform: lowercase;
}
.hero h1 {
font-size: 42px;
font-weight: 700;
line-height: 1.2;
margin-bottom: 16px;
}
.hero .meta {
font-size: 18px;
opacity: 0.9;
}
.container {
max-width: 1400px;
margin: 0 auto;
padding: 0 20px;
}
.report-section {
background: white;
border-radius: 12px;
padding: 32px;
margin: 24px auto;
max-width: 1400px;
box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
.section-title {
color: var(--primary-dark);
font-size: 24px;
font-weight: 700;
margin-bottom: 24px;
padding-bottom: 12px;
border-bottom: 3px solid var(--primary);
}
.kpi-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
gap: 16px;
margin-bottom: 32px;
}
.kpi-card {
background: var(--light-gray);
border-radius: 10px;
padding: 20px;
text-align: center;
border: 1px solid var(--border);
}
.kpi-label {
font-size: 12px;
color: var(--primary);
text-transform: uppercase;
font-weight: 600;
letter-spacing: 0.5px;
margin-bottom: 8px;
}
.kpi-value {
font-size: 28px;
font-weight: 700;
color: #2c3e50;
white-space: nowrap;
}
.kpi-unit {
font-size: 14px;
font-weight: 400;
color: var(--gray);
}
.kpi-change {
font-size: 13px;
margin-top: 6px;
font-weight: 500;
}
.chart-container {
margin: 24px 0;
}
.chart-container h3 {
color: var(--primary-dark);
margin-bottom: 12px;
font-size: 16px;
}
.chart-container canvas {
max-height: 300px;
}
.data-table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
}
.data-table thead {
background: var(--primary);
color: white;
}
.data-table th {
padding: 10px 12px;
text-align: left;
font-weight: 600;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.data-table td {
padding: 10px 12px;
border-bottom: 1px solid var(--border);
}
.data-table tbody tr:hover {
background: var(--primary-light);
}
.data-table .num {
text-align: right;
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.badge {
display: inline-block;
padding: 2px 8px;
border-radius: 4px;
font-size: 11px;
font-weight: 600;
}
.badge-search { background: #dbeafe; color: #1e40af; }
.badge-performance_max { background: #fef3c7; color: #92400e; }
.badge-shopping { background: #d1fae5; color: #065f46; }
.badge-display { background: #ede9fe; color: #5b21b6; }
.badge-demand_gen { background: #fce7f3; color: #9d174d; }
.summary-box {
background: var(--primary-light);
border-left: 4px solid var(--primary);
padding: 24px;
border-radius: 0 10px 10px 0;
font-size: 15px;
line-height: 1.8;
}
.two-col {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
margin-top: 24px;
}
.bar {
height: 8px;
background: var(--primary);
border-radius: 4px;
min-width: 4px;
}
.recommendations-list {
display: flex;
flex-direction: column;
gap: 16px;
}
.rec-item {
display: flex;
gap: 16px;
padding: 16px;
background: var(--light-gray);
border-radius: 8px;
border-left: 4px solid var(--primary);
}
.rec-icon {
font-size: 20px;
flex-shrink: 0;
margin-top: 2px;
}
.rec-item p {
margin-top: 4px;
color: var(--gray);
font-size: 14px;
}
.questions-box {
background: linear-gradient(135deg, #fff8e1 0%, #fff3cd 100%);
border-left: 4px solid #f59e0b;
border-radius: 10px;
padding: 24px 28px;
margin-top: 16px;
}
.questions-box h3 {
margin: 0 0 8px 0;
color: #92400e;
font-size: 18px;
}
.questions-box .intro {
color: #78350f;
font-size: 14px;
margin-bottom: 16px;
}
.questions-list {
display: flex;
flex-direction: column;
gap: 14px;
}
.q-item {
display: flex;
gap: 14px;
padding: 14px 16px;
background: rgba(255,255,255,0.7);
border-radius: 8px;
}
.q-num {
flex-shrink: 0;
width: 28px;
height: 28px;
border-radius: 50%;
background: #f59e0b;
color: white;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 14px;
}
.q-item strong { color: #92400e; display: block; margin-bottom: 4px; }
.q-item p { margin: 0; color: #57534e; font-size: 14px; line-height: 1.6; }
.footer {
text-align: center;
padding: 32px;
color: var(--gray);
font-size: 13px;
}
.footer a {
color: var(--primary);
text-decoration: none;
}
@media (max-width: 768px) {
.hero { padding: 40px 20px; }
.hero h1 { font-size: 28px; }
.kpi-grid { grid-template-columns: repeat(2, 1fr); }
.two-col { grid-template-columns: 1fr; }
.report-section { padding: 20px; margin: 12px; }
}
@media print {
body { background: white; }
.report-section { box-shadow: none; page-break-inside: avoid; }
.hero { padding: 30px; }
}
</style>
</head>
<body>
<!-- HERO / TITLE -->
<header class="hero">
<div class="hero-content">
<div class="logo">
<img src="https://www.project-pro.pl/upload/filemanager/Project-Design/logos/project-pro/logo-white.svg" alt="Project-Pro" style="height: 40px;">
</div>
<h1>Raport z działań marketingowych</h1>
<div class="meta">Ibra Makeup &mdash; Kwiecień 2026</div>
</div>
</header>
<!-- RECOMMENDATIONS -->
<section class="report-section" id="recommendations">
<h2 class="section-title">Wnioski i rekomendacje</h2>
<div class="recommendations-list">
<div class="rec-item"><span class="rec-icon">&#9989;</span><div><strong>Google Ads utrzymuje bardzo dobrą rentowność</strong><p>Konto wygenerowało 641,8 konwersji przy koszcie 6705,35 PLN i ROAS 10,84. Utrzymujemy aktywne kampanie sprzedażowe, a dalsze zwiększanie budżetu prowadzimy sekwencyjnie, przede wszystkim w kampaniach z ROAS powyżej średniej konta.</p></div></div><div class="rec-item"><span class="rec-icon">&#128200;</span><div><strong>Więcej konwersji przy prawie stabilnym koszcie pozyskania</strong><p>W porównaniu miesiąc do miesiąca konwersje wzrosły o 7,9%, koszt o 8,2%, a CPA tylko o 0,4%. Skala rosła bez widocznego pogorszenia kosztu pozyskania, dlatego nie tniemy budżetu całościowo. Pracujemy na miksie kampanii i przesuwamy uwagę na te segmenty, które utrzymują rentowność.</p></div></div><div class="rec-item"><span class="rec-icon">&#128269;</span><div><strong>Brand i PMax niosą główny wynik</strong><p>Największą część kosztu i wartości konwersji generują [Search] brand oraz [PMax] products (catch-all). Obie kampanie mają ROAS około 12,9, dlatego zostają główne w strukturze. Zmiany celów ROAS lub budżetów wprowadzamy stopniowo i kontrolujemy wolumen po każdej zmianie.</p></div></div><div class="rec-item"><span class="rec-icon">&#9888;</span><div><strong>Kampanie z niskim ROAS wymagają osobnej decyzji</strong><p>[DG] YouTube Shorts i wybrane kampanie PLA_CL1 mają wyraźnie niższy ROAS niż średnia konta. Nie wyłączamy ich automatycznie tylko na podstawie tego raportu. Rozdzielamy ich role na wsparcie lejka i realną sprzedaż, a przy celu czystej efektywności ograniczamy lub zawężamy je w pierwszej kolejności.</p></div></div><div class="rec-item"><span class="rec-icon">&#128176;</span><div><strong>Sprzedaż sklepu jest mocniejsza w danych z arkusza</strong><p>Arkusz sprzedażowy pokazuje 1711 transakcji i 187795,28 PLN przychodu w kwietniu. Średnia wartość koszyka wynosi 109,76 PLN, dlatego w komunikacji i kampaniach wzmacniamy produkty oraz zestawy, które podnoszą wartość zamówienia, zamiast skupiać się wyłącznie na liczbie transakcji.</p></div></div><div class="rec-item"><span class="rec-icon">&#10148;</span><div><strong>Rekomendowany następny krok</strong><p>Utrzymujemy główny kierunek konta, a optymalizacje prowadzimy punktowo: kontrolujemy kampanie o niskim ROAS, analizujemy udział brandu w wyniku i porównujemy PMax z PLA pod kątem produktów, które można efektywniej skalować. Zmiany budżetów i celów Smart Bidding wdrażamy pojedynczo, z oceną po kolejnej paczce danych.</p></div></div>
</div>
</section>
<!-- GA4 SECTION -->
<section class="report-section" id="ga4">
<h2 class="section-title">Dane z Google Analytics</h2>
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">Sesje</div>
<div class="kpi-value">28 104<span class="kpi-unit"></span></div>
<div class="kpi-change" style="color: #e74c3c">
&#9660; -13.6% vs Marzec
</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Użytkownicy</div>
<div class="kpi-value">20 698<span class="kpi-unit"></span></div>
<div class="kpi-change" style="color: #e74c3c">
&#9660; -13.8% vs Marzec
</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Nowi użytkownicy</div>
<div class="kpi-value">18 283<span class="kpi-unit"></span></div>
<div class="kpi-change" style="color: #e74c3c">
&#9660; -15.1% vs Marzec
</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Odsłon</div>
<div class="kpi-value">90 611<span class="kpi-unit"></span></div>
<div class="kpi-change" style="color: #e74c3c">
&#9660; -4.6% vs Marzec
</div>
</div></div>
<div class="chart-container">
<h3>Sesje dziennie</h3>
<canvas id="ga4DailyChart"></canvas>
</div>
<div class="two-col">
<div>
<h3>Źródła ruchu</h3>
<table class="data-table">
<thead><tr><th>Źródło / Medium</th><th>Sesje</th><th>Udział</th><th></th></tr></thead>
<tbody>
<tr>
<td>facebook / paid</td>
<td class="num">13 354</td>
<td class="num">49.1%</td>
<td><div class="bar" style="width: 98.2%"></div></td>
</tr>
<tr>
<td>google / cpc</td>
<td class="num">4 020</td>
<td class="num">14.8%</td>
<td><div class="bar" style="width: 29.6%"></div></td>
</tr>
<tr>
<td>google / organic</td>
<td class="num">3 779</td>
<td class="num">13.9%</td>
<td><div class="bar" style="width: 27.8%"></div></td>
</tr>
<tr>
<td>(direct) / (none)</td>
<td class="num">3 017</td>
<td class="num">11.1%</td>
<td><div class="bar" style="width: 22.2%"></div></td>
</tr>
<tr>
<td>ig / social</td>
<td class="num">848</td>
<td class="num">3.1%</td>
<td><div class="bar" style="width: 6.2%"></div></td>
</tr>
<tr>
<td>m.facebook.com / referral</td>
<td class="num">636</td>
<td class="num">2.3%</td>
<td><div class="bar" style="width: 4.6%"></div></td>
</tr>
<tr>
<td>l.facebook.com / referral</td>
<td class="num">550</td>
<td class="num">2.0%</td>
<td><div class="bar" style="width: 4.0%"></div></td>
</tr>
<tr>
<td>l.instagram.com / referral</td>
<td class="num">425</td>
<td class="num">1.6%</td>
<td><div class="bar" style="width: 3.2%"></div></td>
</tr>
<tr>
<td>(not set)</td>
<td class="num">314</td>
<td class="num">1.2%</td>
<td><div class="bar" style="width: 2.4%"></div></td>
</tr>
<tr>
<td>lm.facebook.com / referral</td>
<td class="num">247</td>
<td class="num">0.9%</td>
<td><div class="bar" style="width: 1.8%"></div></td>
</tr></tbody>
</table>
</div>
<div>
<h3>Urządzenia</h3>
<table class="data-table">
<thead><tr><th>Urządzenie</th><th>Sesje</th><th>Udział</th></tr></thead>
<tbody>
<tr>
<td>Telefon</td>
<td class="num">25 343</td>
<td class="num">93.2%</td>
</tr>
<tr>
<td>Komputer</td>
<td class="num">2 687</td>
<td class="num">9.9%</td>
</tr>
<tr>
<td>Tablet</td>
<td class="num">36</td>
<td class="num">0.1%</td>
</tr></tbody>
</table>
</div>
</div>
</section>
<!-- E-COMMERCE -->
<section class="report-section" id="ecommerce">
<h2 class="section-title">E-commerce &mdash; Sprzedaż</h2>
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">Transakcje</div>
<div class="kpi-value">1 711<span class="kpi-unit"></span></div>
<div class="kpi-change" style="color: #95a5a6">&nbsp;</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Przychód</div>
<div class="kpi-value">187 795.28<span class="kpi-unit"> PLN</span></div>
<div class="kpi-change" style="color: #95a5a6">&nbsp;</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Śr. wartość zamówienia</div>
<div class="kpi-value">109.76<span class="kpi-unit"> PLN</span></div>
<div class="kpi-change" style="color: #95a5a6">&nbsp;</div>
</div></div>
<div class="chart-container">
<h3>Przychody i transakcje dziennie</h3>
<canvas id="ecomDailyChart"></canvas>
</div>
<div class="chart-container">
<h3>Historia sprzedaży (miesięcznie)</h3>
<canvas id="salesHistoryChart"></canvas>
</div>
<p style="color:#5a6c7d;margin:8px 0 12px;font-size:13px;">
Ta tabela pochodzi z GA4 i pokazuje przychód według source / medium.
W sekcji Google Ads pokazujemy wartość konwersji z Google Ads, liczoną według atrybucji i okna konwersji Google Ads.
</p>
<h3 style="margin-top: 24px; color: var(--primary-dark); font-size: 16px;">Przychody wg źródeł ruchu</h3>
<table class="data-table" style="margin-top: 12px;">
<thead>
<tr>
<th>Źródło / Medium</th>
<th>Przychód</th>
<th>Transakcje</th>
<th>Udział</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>google / cpc</td>
<td class="num">39 344.26 PLN</td>
<td class="num">345</td>
<td class="num">21.0%</td>
<td><div class="bar" style="width: 42.0%"></div></td>
</tr>
<tr>
<td>google / organic</td>
<td class="num">33 321.73 PLN</td>
<td class="num">263</td>
<td class="num">17.7%</td>
<td><div class="bar" style="width: 35.4%"></div></td>
</tr>
<tr>
<td>facebook / paid</td>
<td class="num">31 135.90 PLN</td>
<td class="num">456</td>
<td class="num">16.6%</td>
<td><div class="bar" style="width: 33.2%"></div></td>
</tr>
<tr>
<td>(direct) / (none)</td>
<td class="num">23 268.81 PLN</td>
<td class="num">173</td>
<td class="num">12.4%</td>
<td><div class="bar" style="width: 24.8%"></div></td>
</tr>
<tr>
<td>ig / social</td>
<td class="num">4 350.16 PLN</td>
<td class="num">37</td>
<td class="num">2.3%</td>
<td><div class="bar" style="width: 4.6%"></div></td>
</tr>
<tr>
<td>(not set)</td>
<td class="num">2 766.38 PLN</td>
<td class="num">24</td>
<td class="num">1.5%</td>
<td><div class="bar" style="width: 3.0%"></div></td>
</tr>
<tr>
<td>ibra-makeup.pl / referral</td>
<td class="num">1 526.83 PLN</td>
<td class="num">3</td>
<td class="num">0.8%</td>
<td><div class="bar" style="width: 1.6%"></div></td>
</tr>
<tr>
<td>l.facebook.com / referral</td>
<td class="num">1 519.87 PLN</td>
<td class="num">28</td>
<td class="num">0.8%</td>
<td><div class="bar" style="width: 1.6%"></div></td>
</tr>
<tr>
<td>m.facebook.com / referral</td>
<td class="num">1 364.05 PLN</td>
<td class="num">26</td>
<td class="num">0.7%</td>
<td><div class="bar" style="width: 1.4%"></div></td>
</tr>
<tr>
<td>shopify_email / email</td>
<td class="num">1 031.58 PLN</td>
<td class="num">10</td>
<td class="num">0.5%</td>
<td><div class="bar" style="width: 1.0%"></div></td>
</tr></tbody>
</table>
<h3 style="margin-top: 24px; color: var(--primary-dark); font-size: 16px;">Top 10 produktów</h3>
<table class="data-table" style="margin-top: 12px;">
<thead>
<tr>
<th>#</th>
<th>Produkt</th>
<th>Ilość</th>
<th>Przychód</th>
</tr>
</thead>
<tbody>
<tr>
<td class="num">1</td>
<td>Wygładzający Puder Transparentny No More Pore Pro Makeup Academy IBRA Makeup</td>
<td class="num">486</td>
<td class="num">18 918.90 PLN</td>
</tr>
<tr>
<td class="num">2</td>
<td>Kępki rzęs Bride Style MIX IBRA Makeup</td>
<td class="num">468</td>
<td class="num">5 888.83 PLN</td>
</tr>
<tr>
<td class="num">3</td>
<td>Zestaw pędzli do makijażu White IBRA Makeup</td>
<td class="num">53</td>
<td class="num">5 035.00 PLN</td>
</tr>
<tr>
<td class="num">4</td>
<td>Kępki rzęs Bride Style 10mm IBRA Makeup</td>
<td class="num">312</td>
<td class="num">3 750.33 PLN</td>
</tr>
<tr>
<td class="num">5</td>
<td>Makeup Blender Sponge marmurkowa gąbka do makijażu IBRA Makeup</td>
<td class="num">230</td>
<td class="num">3 556.32 PLN</td>
</tr>
<tr>
<td class="num">6</td>
<td>Nawilżający puder pod oczy Under Eye Hydra Powder IBRA Makeup</td>
<td class="num">106</td>
<td class="num">3 240.59 PLN</td>
</tr>
<tr>
<td class="num">7</td>
<td>Kępki rzęs Bride Style 12mm IBRA Makeup</td>
<td class="num">258</td>
<td class="num">3 146.88 PLN</td>
</tr>
<tr>
<td class="num">8</td>
<td>Zestaw pędzli do makijażu Fresh IBRA Makeup</td>
<td class="num">41</td>
<td class="num">2 928.58 PLN</td>
</tr>
<tr>
<td class="num">9</td>
<td>Cień do powiek Brown Sugar IBRA Makeup</td>
<td class="num">102</td>
<td class="num">2 653.19 PLN</td>
</tr>
<tr>
<td class="num">10</td>
<td>Makeup Blender sponge różowa gąbka do makijażu IBRA Makeup</td>
<td class="num">139</td>
<td class="num">2 145.10 PLN</td>
</tr></tbody>
</table>
</section>
<!-- PRODUCT OPTIMIZATIONS -->
<!-- TOP ADS PRODUCTS -->
<!-- YEAR OVER YEAR -->
<!-- GOOGLE ADS KPIs -->
<section class="report-section" id="ads-kpi">
<h2 class="section-title">Google Ads &mdash; Podsumowanie</h2>
<div class="kpi-grid">
<div class="kpi-card">
<div class="kpi-label">Wyświetlenia</div>
<div class="kpi-value">166 918<span class="kpi-unit"></span></div>
<div class="kpi-change" style="color: #e74c3c">
&#9660; -5.5% vs Marzec
</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Kliknięcia</div>
<div class="kpi-value">4 339<span class="kpi-unit"></span></div>
<div class="kpi-change" style="color: #27ae60">
&#9650; +1.7% vs Marzec
</div>
</div>
<div class="kpi-card">
<div class="kpi-label">CTR</div>
<div class="kpi-value">2.6<span class="kpi-unit">%</span></div>
<div class="kpi-change" style="color: #27ae60">
&#9650; +7.9% vs Marzec
</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Konwersje</div>
<div class="kpi-value">641<span class="kpi-unit"></span></div>
<div class="kpi-change" style="color: #27ae60">
&#9650; +7.9% vs Marzec
</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Wartość konwersji</div>
<div class="kpi-value">72 679.40<span class="kpi-unit"> PLN</span></div>
<div class="kpi-change" style="color: #27ae60">
&#9650; +9.3% vs Marzec
</div>
</div>
<div class="kpi-card">
<div class="kpi-label">Koszt</div>
<div class="kpi-value">6705.35<span class="kpi-unit"> PLN</span></div>
<div class="kpi-change" style="color: #e74c3c">
&#9650; +8.2% vs Marzec
</div>
</div>
<div class="kpi-card">
<div class="kpi-label">ROAS</div>
<div class="kpi-value">10.84<span class="kpi-unit">x</span></div>
<div class="kpi-change" style="color: #27ae60">
&#9650; +1.0% vs Marzec
</div>
</div></div>
</section>
<!-- DAILY CHART -->
<section class="report-section" id="ads-chart">
<h2 class="section-title">Google Ads &mdash; Aktywność dzienna</h2>
<div class="chart-container">
<canvas id="dailyClicksChart"></canvas>
</div>
</section>
<!-- CAMPAIGNS TABLE -->
<section class="report-section" id="campaigns">
<h2 class="section-title">Kampanie</h2>
<table class="data-table">
<thead>
<tr>
<th>Kampania</th>
<th>Typ</th>
<th>Wyświetlenia</th>
<th>Kliknięcia</th>
<th>CTR</th>
<th>Konwersje</th>
<th>Wartość konwersji</th>
<th>Koszt</th>
<th>CPA</th>
</tr>
</thead>
<tbody>
<tr>
<td>[DSA] produkty</td>
<td><span class="badge badge-search">SEARCH</span></td>
<td class="num">1 898</td>
<td class="num">61</td>
<td class="num">3.2%</td>
<td class="num">1</td>
<td class="num">41.72 PLN</td>
<td class="num">105.42 PLN</td>
<td class="num">105.42 PLN</td>
</tr>
<tr>
<td>[Search] brand</td>
<td><span class="badge badge-search">SEARCH</span></td>
<td class="num">11 764</td>
<td class="num">1 927</td>
<td class="num">16.4%</td>
<td class="num">298</td>
<td class="num">34 878.62 PLN</td>
<td class="num">2712.17 PLN</td>
<td class="num">9.10 PLN</td>
</tr>
<tr>
<td>[PMax] products (catch-all)</td>
<td><span class="badge badge-performance_max">PERFORMANCE_MAX</span></td>
<td class="num">92 095</td>
<td class="num">1 724</td>
<td class="num">1.9%</td>
<td class="num">255</td>
<td class="num">29 204.43 PLN</td>
<td class="num">2263.02 PLN</td>
<td class="num">8.87 PLN</td>
</tr>
<tr>
<td>[GDN] porzucone koszyki</td>
<td><span class="badge badge-display">DISPLAY</span></td>
<td class="num">29 213</td>
<td class="num">96</td>
<td class="num">0.3%</td>
<td class="num">6</td>
<td class="num">310.57 PLN</td>
<td class="num">304.26 PLN</td>
<td class="num">52.46 PLN</td>
</tr>
<tr>
<td>[PLA] produkty (bestsellers)</td>
<td><span class="badge badge-shopping">SHOPPING</span></td>
<td class="num">14 721</td>
<td class="num">348</td>
<td class="num">2.4%</td>
<td class="num">70</td>
<td class="num">7 193.01 PLN</td>
<td class="num">607.74 PLN</td>
<td class="num">8.62 PLN</td>
</tr>
<tr>
<td>[DG] YouTube Shorts</td>
<td><span class="badge badge-demand_gen">DEMAND_GEN</span></td>
<td class="num">16 318</td>
<td class="num">139</td>
<td class="num">0.8%</td>
<td class="num">7</td>
<td class="num">725.68 PLN</td>
<td class="num">502.01 PLN</td>
<td class="num">68.77 PLN</td>
</tr>
<tr>
<td>[PLA_CL1] rzesy | catch_all</td>
<td><span class="badge badge-shopping">SHOPPING</span></td>
<td class="num">227</td>
<td class="num">11</td>
<td class="num">4.8%</td>
<td class="num">1</td>
<td class="num">104.30 PLN</td>
<td class="num">67.96 PLN</td>
<td class="num">67.96 PLN</td>
</tr>
<tr>
<td>[PLA_CL1] rzesy</td>
<td><span class="badge badge-shopping">SHOPPING</span></td>
<td class="num">682</td>
<td class="num">33</td>
<td class="num">4.8%</td>
<td class="num">3</td>
<td class="num">221.07 PLN</td>
<td class="num">142.77 PLN</td>
<td class="num">47.59 PLN</td>
</tr></tbody>
</table>
</section>
<!-- SEARCH TERMS -->
<section class="report-section" id="search-terms">
<h2 class="section-title">Najpopularniejsze frazy wyszukiwania</h2>
<table class="data-table">
<thead>
<tr>
<th>#</th>
<th>Fraza</th>
<th>Wyświetlenia</th>
<th>Kliknięcia</th>
<th>CTR</th>
<th>Konwersje</th>
</tr>
</thead>
<tbody>
<tr>
<td class="num">1</td>
<td>ibra</td>
<td class="num">1 809</td>
<td class="num">822</td>
<td class="num">45.4%</td>
<td class="num">188</td>
</tr>
<tr>
<td class="num">2</td>
<td>ibra makeup</td>
<td class="num">321</td>
<td class="num">189</td>
<td class="num">58.9%</td>
<td class="num">25</td>
</tr>
<tr>
<td class="num">3</td>
<td>ibra pedzle</td>
<td class="num">195</td>
<td class="num">57</td>
<td class="num">29.2%</td>
<td class="num">3</td>
</tr>
<tr>
<td class="num">4</td>
<td>puder ibra</td>
<td class="num">379</td>
<td class="num">33</td>
<td class="num">8.7%</td>
<td class="num">1</td>
</tr>
<tr>
<td class="num">5</td>
<td>ibra</td>
<td class="num">897</td>
<td class="num">33</td>
<td class="num">3.7%</td>
<td class="num">12</td>
</tr>
<tr>
<td class="num">6</td>
<td>rzesy ibra</td>
<td class="num">128</td>
<td class="num">18</td>
<td class="num">14.1%</td>
<td class="num">4</td>
</tr>
<tr>
<td class="num">7</td>
<td>gąbeczka ibra</td>
<td class="num">167</td>
<td class="num">16</td>
<td class="num">9.6%</td>
<td class="num">1</td>
</tr>
<tr>
<td class="num">8</td>
<td>ibra kosmetyki</td>
<td class="num">32</td>
<td class="num">12</td>
<td class="num">37.5%</td>
<td class="num">0</td>
</tr>
<tr>
<td class="num">9</td>
<td>ibra rzesy</td>
<td class="num">61</td>
<td class="num">12</td>
<td class="num">19.7%</td>
<td class="num">7</td>
</tr>
<tr>
<td class="num">10</td>
<td>ibra zestaw pędzli</td>
<td class="num">75</td>
<td class="num">12</td>
<td class="num">16.0%</td>
<td class="num">0</td>
</tr>
<tr>
<td class="num">11</td>
<td>ibra gąbka</td>
<td class="num">259</td>
<td class="num">12</td>
<td class="num">4.6%</td>
<td class="num">6</td>
</tr>
<tr>
<td class="num">12</td>
<td>ibra pedzle zestaw</td>
<td class="num">36</td>
<td class="num">11</td>
<td class="num">30.6%</td>
<td class="num">2</td>
</tr>
<tr>
<td class="num">13</td>
<td>pędzle ibra</td>
<td class="num">64</td>
<td class="num">11</td>
<td class="num">17.2%</td>
<td class="num">0</td>
</tr>
<tr>
<td class="num">14</td>
<td>ibra cień do powiek</td>
<td class="num">75</td>
<td class="num">10</td>
<td class="num">13.3%</td>
<td class="num">0</td>
</tr>
<tr>
<td class="num">15</td>
<td>ibra gąbka</td>
<td class="num">187</td>
<td class="num">10</td>
<td class="num">5.3%</td>
<td class="num">1</td>
</tr></tbody>
</table>
</section>
<!-- NEGATIVE KEYWORDS ADDED -->
<!-- SEMSTORM SEO -->
<!-- SEO ACTIVITIES -->
<!-- SEO LINKS -->
<!-- SUMMARY -->
<section class="report-section" id="summary">
<h2 class="section-title">Podsumowanie miesiąca</h2>
<div class="summary-box">
Przychód sklepu utrzymał się na poziomie <strong>187,795.28 PLN</strong>. Zrealizowano 1711 transakcji przy średniej wartości zamówienia 109.76 PLN. ROAS z Google Ads: <strong>10.84</strong> (każda wydana złotówka przyniosła 10.84 PLN przychodu). Ruch z reklam wzrósł o 1.7% (4339 kliknięć). Strona odnotowała 28,104 sesji i 20,698 użytkowników.
</div>
</section>
<!-- RECOMMENDATIONS moved to top -->
<!-- FOOTER -->
<div class="footer">
Raport wygenerowany przez <a href="https://www.project-pro.pl">Project-Pro</a> &mdash; marketing w wersji PRO
</div>
<script>
// Daily clicks chart
var ctx1 = document.getElementById('dailyClicksChart').getContext('2d');
new Chart(ctx1, {
type: 'line',
data: {
labels: ["04-01", "04-02", "04-03", "04-04", "04-05", "04-06", "04-07", "04-08", "04-09", "04-10", "04-11", "04-12", "04-13", "04-14", "04-15", "04-16", "04-17", "04-18", "04-19", "04-20", "04-21", "04-22", "04-23", "04-24", "04-25", "04-26", "04-27", "04-28", "04-29", "04-30"],
datasets: [{
label: 'Kliknięcia',
data: [115, 131, 104, 103, 122, 135, 143, 161, 174, 150, 166, 163, 154, 169, 150, 141, 121, 148, 168, 149, 133, 120, 118, 134, 152, 179, 195, 188, 137, 116],
borderColor: '#0d8b8b',
backgroundColor: 'rgba(13,139,139,0.1)',
fill: true,
tension: 0.3,
pointRadius: 3,
pointBackgroundColor: '#0d8b8b',
}, {
label: 'Wyświetlenia',
data: [6515, 5262, 4530, 5132, 5349, 6360, 5258, 4972, 5322, 6110, 5248, 6487, 4774, 5344, 6625, 4466, 5230, 6923, 6957, 4657, 4909, 5150, 5856, 6981, 5184, 5166, 4425, 5492, 6422, 5812],
borderColor: '#95a5a6',
backgroundColor: 'transparent',
borderDash: [5, 5],
tension: 0.3,
pointRadius: 0,
yAxisID: 'y1',
}]
},
options: {
responsive: true,
interaction: { mode: 'index', intersect: false },
scales: {
y: { beginAtZero: true, position: 'left', grid: { color: '#f0f0f0' } },
y1: { beginAtZero: true, position: 'right', grid: { display: false } },
x: { grid: { display: false }, ticks: { maxTicksLimit: 10 } }
}
}
});
var ctx3 = document.getElementById('ga4DailyChart').getContext('2d');
new Chart(ctx3, {
type: 'line',
data: {
labels: ["04-01", "04-02", "04-03", "04-04", "04-05", "04-06", "04-07", "04-08", "04-09", "04-10", "04-11", "04-12", "04-13", "04-14", "04-15", "04-16", "04-17", "04-18", "04-19", "04-20", "04-21", "04-22", "04-23", "04-24", "04-25", "04-26", "04-27", "04-28", "04-29", "04-30"],
datasets: [{
label: 'Sesje',
data: [820, 788, 593, 587, 637, 869, 865, 1084, 1176, 1369, 747, 1486, 1324, 1453, 1167, 1142, 1007, 901, 1117, 854, 891, 871, 1010, 820, 687, 894, 750, 736, 614, 583],
borderColor: '#3498db',
backgroundColor: 'rgba(52,152,219,0.1)',
fill: true,
tension: 0.3,
pointRadius: 2,
}]
},
options: {
responsive: true,
plugins: { legend: { display: false } },
scales: {
y: { beginAtZero: true, grid: { color: '#f0f0f0' } },
x: { grid: { display: false }, ticks: { maxTicksLimit: 10 } }
}
}
});
var ctxEcom = document.getElementById('ecomDailyChart').getContext('2d');
new Chart(ctxEcom, {
type: 'bar',
data: {
labels: ["04-01", "04-02", "04-03", "04-04", "04-05", "04-06", "04-07", "04-08", "04-09", "04-10", "04-11", "04-12", "04-13", "04-14", "04-15", "04-16", "04-17", "04-18", "04-19", "04-20", "04-21", "04-22", "04-23", "04-24", "04-25", "04-26", "04-27", "04-28", "04-29", "04-30"],
datasets: [{
label: 'Przychód (PLN)',
data: [4065.97, 2505.67, 2698.03, 2289.84, 2280.84, 3640.54, 4565.17, 8814.68, 6193.02, 8431.74, 4676.36, 8887.72, 9542.56, 8131.23, 6879.09, 6008.1, 4270.85, 4254.25, 5988.66, 3671.21, 3851.26, 3583.34, 3873.24, 2443.2, 3040.02, 3272.03, 4280.95, 3230.63, 4324.52, 4671.93],
backgroundColor: 'rgba(39, 174, 96, 0.6)',
borderColor: '#27ae60',
borderWidth: 1,
yAxisID: 'y',
order: 2,
}, {
label: 'Transakcje',
data: [46, 28, 24, 26, 23, 44, 51, 75, 69, 99, 48, 87, 61, 88, 72, 70, 54, 45, 58, 32, 34, 30, 38, 22, 29, 32, 39, 34, 32, 28],
type: 'line',
borderColor: '#8e44ad',
backgroundColor: 'transparent',
tension: 0.3,
pointRadius: 3,
pointBackgroundColor: '#8e44ad',
yAxisID: 'y1',
order: 1,
}]
},
options: {
responsive: true,
interaction: { mode: 'index', intersect: false },
scales: {
y: { beginAtZero: true, position: 'left', grid: { color: '#f0f0f0' },
ticks: { callback: function(v) { return v.toLocaleString('pl-PL') + ' PLN'; } } },
y1: { beginAtZero: true, position: 'right', grid: { display: false } },
x: { grid: { display: false }, ticks: { maxTicksLimit: 10 } }
}
}
});
var ctxSalesHist = document.getElementById('salesHistoryChart').getContext('2d');
new Chart(ctxSalesHist, {
type: 'bar',
data: {
labels: ["2026-04"],
datasets: [{
label: 'Przychód (PLN)',
data: [187795.28],
backgroundColor: 'rgba(39, 174, 96, 0.5)',
borderColor: '#27ae60',
borderWidth: 1,
yAxisID: 'y',
order: 2,
}, {
label: 'Zamówienia',
data: [1711],
type: 'line',
borderColor: '#8e44ad',
backgroundColor: 'transparent',
tension: 0.3,
pointRadius: 4,
pointBackgroundColor: '#8e44ad',
yAxisID: 'y1',
order: 1,
}]
},
options: {
responsive: true,
interaction: { mode: 'index', intersect: false },
scales: {
y: { beginAtZero: true, position: 'left', grid: { color: '#f0f0f0' },
ticks: { callback: function(v) { return v.toLocaleString('pl-PL') + ' PLN'; } } },
y1: { beginAtZero: true, position: 'right', grid: { display: false } },
x: { grid: { display: false } }
}
}
});
</script>
</body>
</html>