From a78a9ab829c02c9a0042b5231208ba388a714107 Mon Sep 17 00:00:00 2001 From: "Till (Cowork)" Date: Sun, 28 Jun 2026 07:16:52 +0000 Subject: [PATCH] =?UTF-8?q?Monetarisierung:=20Affiliate-Deeplinks=20(Amazo?= =?UTF-8?q?n/idealo/eBay)+Zubeh=C3=B6r-Upsell,=20Pro-Pass=20(Zeit-Tier=20E?= =?UTF-8?q?chtzeit=20vs=20~10min=20+=20Prognose-Fr=C3=BChwarnung/Watchlist?= =?UTF-8?q?/Preiswecker),=20Custom=20Multi-Artikel-Watchlist,=20Partner-Em?= =?UTF-8?q?pfehlung=20St=C3=B6ver/TGA=20(UTM,=20kein=20Lead-Verkauf),=20Da?= =?UTF-8?q?shboard=20(Chart.js)=20+=20Login-Stub?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ProductCard.astro | 4 +- src/data/accessories.json | 7 +++ src/layouts/Base.astro | 2 + src/lib/affiliate.ts | 10 ++++ src/pages/alarm.astro | 42 +++++++------- src/pages/dashboard.astro | 60 ++++++++++++++++++++ src/pages/geraete/[slug].astro | 13 ++++- src/pages/karte.astro | 8 ++- src/pages/klimaanlage-installieren.astro | 33 ++++++++++- src/pages/login.astro | 19 +++++++ src/pages/pro.astro | 70 ++++++++++++++++++++++++ 11 files changed, 244 insertions(+), 24 deletions(-) create mode 100644 src/data/accessories.json create mode 100644 src/lib/affiliate.ts create mode 100644 src/pages/dashboard.astro create mode 100644 src/pages/login.astro create mode 100644 src/pages/pro.astro diff --git a/src/components/ProductCard.astro b/src/components/ProductCard.astro index 93e9a2d..382400f 100644 --- a/src/components/ProductCard.astro +++ b/src/components/ProductCard.astro @@ -1,5 +1,6 @@ --- import { priceIntel, euro, type Product } from '../lib/pricing'; +import { idealo, REL } from '../lib/affiliate'; const { product, compact } = Astro.props as { product: Product; compact?: boolean }; const pi = priceIntel(product); const typeLabel = product.type === 'mobile_split' ? 'Mobile Split' : 'Monoblock'; @@ -17,7 +18,8 @@ const typeLabel = product.type === 'mobile_split' ? 'Mobile Split' : 'Monoblock'
Score
{product.score}/100
- Verfügbarkeit prüfen + Verfügbarkeit + Preis prüfen ↗ Details
diff --git a/src/data/accessories.json b/src/data/accessories.json new file mode 100644 index 0000000..95f1f9a --- /dev/null +++ b/src/data/accessories.json @@ -0,0 +1,7 @@ +[ + {"id":"fensterabdichtung","name":"Fensterabdichtung (Dreh-Kipp)","why":"Pflicht für Monoblock – ohne Abdichtung zieht warme Luft nach und die Kühlleistung sinkt.","for":"monoblock","q":"Fensterabdichtung mobile Klimaanlage Dreh Kipp"}, + {"id":"balkontuer-abdichtung","name":"Balkontür-Abdichtung","why":"Für Abluftschlauch an der Balkontür – hält Hitze draußen.","for":"monoblock","q":"Klimaanlage Balkontür Abdichtung Abluftschlauch"}, + {"id":"smarte-steckdose","name":"Smarte Steckdose mit Verbrauchsmessung","why":"Stromkosten im Blick behalten und per App/Timer steuern.","for":"all","q":"smarte Steckdose Verbrauchsmessung WLAN"}, + {"id":"thermo-hygrometer","name":"Thermo-/Hygrometer","why":"Temperatur und Luftfeuchte messen – richtig und effizient kühlen.","for":"all","q":"Thermometer Hygrometer innen digital"}, + {"id":"thermo-rollo","name":"Hitzeschutz-Rollo / Thermo-Verdunkelung","why":"Außen-/Thermovorhang senkt die Hitze, bevor sie reinkommt – wirkt auch ohne Gerät.","for":"all","q":"Hitzeschutz Rollo Thermo Verdunkelung Fenster"} +] diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro index 57aaa97..ae4bf4c 100644 --- a/src/layouts/Base.astro +++ b/src/layouts/Base.astro @@ -24,6 +24,8 @@ import '../styles/global.css'; Rechner Finder Alarm + Pro + Login Live-Karte diff --git a/src/lib/affiliate.ts b/src/lib/affiliate.ts new file mode 100644 index 0000000..f0c80b9 --- /dev/null +++ b/src/lib/affiliate.ts @@ -0,0 +1,10 @@ +// Affiliate-/Deeplink-Helfer. Tags sind Platzhalter (TODO: echte Partner-IDs setzen): +// Amazon PartnerNet, idealo Partner, eBay Partner Network (EPN), Awin (OBI/Hagebau/Bauhaus). +const AMZ_TAG = 'kuehlfinder-21'; // TODO PartnerNet +const EBAY_CAMPID = 'TODO_EPN'; // TODO eBay Partner Network +export const q = (s: string) => encodeURIComponent(s); +export const amazon = (term: string) => `https://www.amazon.de/s?k=${q(term)}&tag=${AMZ_TAG}`; +export const idealo = (term: string) => `https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=${q(term)}`; +export const ebay = (term: string) => `https://www.ebay.de/sch/i.html?_nkw=${q(term)}&mkcid=1&mkrid=707-53477-19255-0&campid=${EBAY_CAMPID}&toolid=10001`; +export const utm = (url: string) => url + (url.includes('?') ? '&' : '?') + 'utm_source=kuehlfinder&utm_medium=affiliate'; +export const REL = 'sponsored nofollow noopener'; diff --git a/src/pages/alarm.astro b/src/pages/alarm.astro index 03a22e1..d9cad1f 100644 --- a/src/pages/alarm.astro +++ b/src/pages/alarm.astro @@ -2,48 +2,52 @@ import Base from '../layouts/Base.astro'; import { allProducts } from '../lib/pricing'; --- - +
- Alarm & Preiswecker -

Sei der Erste, wenn dein Gerät da ist – oder günstig wird

-

Zwei Wecker in einem: Verfügbarkeits-Alarm (Markt in der Nähe hat Bestand) und Preiswecker (Preis fällt unter dein Limit). Frühwarnung dank Prognose. E-Mail kostenlos, Telegram im Pro-Pass.

+ Custom-Alarm & Preiswecker +

Deine Wunschartikel im Blick – ein oder mehrere

+

Lege eine Watchlist an: Wir überwachen deine Wunschgeräte über alle Ketten, Länder, Online & eBay. Verfügbarkeits-Alarm (Markt in der Nähe hat Bestand) und Preiswecker (Preis fällt unter dein Limit) – mit Prognose-Frühwarnung. E-Mail kostenlos, Telegram & Echtzeit im Pro-Pass.

- + + +
+ {allProducts.map(p => ( + + ))} +
+
- + - +

-

Hinweis: Demo – Alarm-Backend (Listmonk-Mail + Telegram-Bot) folgt. Keine Garantie auf Preis/Bestand. Datenquelle: eigener Kühlfinder-Scraper.

+

Mehr Vorsprung mit Pro: Echtzeit statt ~10 Min, Telegram-Push, Prognose-Frühwarnung. Hinweis: Demo – Alarm-Backend (Listmonk + Telegram) folgt.

diff --git a/src/pages/dashboard.astro b/src/pages/dashboard.astro new file mode 100644 index 0000000..1b37554 --- /dev/null +++ b/src/pages/dashboard.astro @@ -0,0 +1,60 @@ +--- +import Base from '../layouts/Base.astro'; +import { allProducts } from '../lib/pricing'; +const watch = allProducts.filter(p=>p.tier==='A').slice(0,3).map(p=>({slug:p.slug,name:p.name,uvp:p.uvp})); +--- + +
+
+
Kontrollzentrum · Demo

Willkommen zurück

+ Konto / Logout +
+

Das sehen Pro-Nutzer in Echtzeit. Demo-Verläufe – mit Live-Crawler werden es echte Systemdaten.

+ +
+
Watchlist3
+
aktuell verfügbar1
+
Ø Prognose 7 Tg.38%
+
Preis-Alerts offen2
+
+ +
+

Preisverlauf (30 Tage)

+

Verfügbare Märkte (Trend)

+
+ +
+

Deine Watchlist

+ +
ModellStatusbester PreisPrognose
+
+

Hinweis: Demo-Daten. Mit Login + Live-Crawler echte, personalisierte Verläufe. Quellen: eigener Scraper, Open-Meteo.

+
+ + + + diff --git a/src/pages/geraete/[slug].astro b/src/pages/geraete/[slug].astro index e7a6d8a..1ec3e3c 100644 --- a/src/pages/geraete/[slug].astro +++ b/src/pages/geraete/[slug].astro @@ -1,12 +1,15 @@ --- import Base from '../../layouts/Base.astro'; import { allProducts, getProduct, priceIntel, euro } from '../../lib/pricing'; +import { amazon, idealo, ebay, REL } from '../../lib/affiliate'; +import accessories from '../../data/accessories.json'; export function getStaticPaths(){ return allProducts.map(p => ({ params: { slug: p.slug } })); } const { slug } = Astro.params; const product = getProduct(slug!)!; const pi = priceIntel(product); const typeLabel = product.type === 'mobile_split' ? 'Mobile Split-Klimaanlage' : 'Monoblock mit Abluftschlauch'; const alternatives = allProducts.filter(p => p.id!==product.id && p.type===product.type).slice(0,3); +const accs = (accessories as any[]).filter(a => a.for==='all' || a.for===product.type); const jsonld = {'@context':'https://schema.org','@type':'Product',name:product.name,brand:product.brand,category:'Mobile Klimaanlage', offers:{'@type':'AggregateOffer',priceCurrency:'EUR',lowPrice:pi.lowestLegit,highPrice:product.uvp}}; --- @@ -26,8 +29,12 @@ const jsonld = {'@context':'https://schema.org','@type':'Product',name:product.n
Auf der Karte suchen - Alarm setzen + idealo ↗ + Amazon ↗ + eBay ↗ + Alarm
+

Affiliate-Links – Preis bleibt für dich gleich. Warum?

{product.type==='monoblock' &&

Wichtig: Monoblock-Geräte brauchen eine gute Fensterabdichtung. Ohne Abdichtung wird ständig warme Luft nachgezogen.

} {product.type==='mobile_split' &&

Wichtig: Das Außengerät sicher und rücksichtsvoll platzieren – Fensterbank/Balkon, Nachbarn, Mietvertrag prüfen.

} @@ -39,6 +46,10 @@ const jsonld = {'@context':'https://schema.org','@type':'Product',name:product.n

Stärken

Schwächen

+

Das brauchst du zusätzlich

+
+ {accs.map(a =>
{a.name}

{a.why}

Zubehör finden ↗
)} +

Alternativen

{alternatives.map(a => {a.name}
{a.badge}
)} diff --git a/src/pages/karte.astro b/src/pages/karte.astro index 735988f..46870da 100644 --- a/src/pages/karte.astro +++ b/src/pages/karte.astro @@ -17,6 +17,10 @@ const jsonld={'@context':'https://schema.org','@type':'WebApplication',name:'Kü
Aktualisiert
lädt …
+
+ + Kostenlos siehst du Live-Daten ~10 Min zeitversetzt. Mit Pro in Echtzeit + Push → +
Märkte
mit Klimagerät
@@ -85,7 +89,9 @@ const jsonld={'@context':'https://schema.org','@type':'WebApplication',name:'Kü .mon-hero h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:.5rem 0 .3rem} .mon-hero .lead{max-width:48rem;color:var(--ink-2);font-size:1.05rem} .upd{min-width:140px;text-align:center}.upd-t{font-size:1.5rem;font-weight:600;color:var(--petrol-deep)} - .stats{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;margin-top:1.1rem} + .delaybar{display:flex;align-items:center;gap:.5rem;background:var(--warm-bg);border:1px solid var(--line);border-left:4px solid var(--warm);border-radius:10px;padding:.55rem .8rem;margin-top:1rem;font-size:.9rem} + .delaybar a{font-weight:600} + .stats{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;margin-top:.8rem} .stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem;display:flex;flex-direction:column;gap:.1rem;box-shadow:var(--shadow-card)} .stat b{font-size:1.4rem;line-height:1.1}.stat.ok b{color:var(--ok-dot)}.stat.warn b{color:var(--danger)} .mon-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:1rem;margin-top:1.2rem;align-items:start} diff --git a/src/pages/klimaanlage-installieren.astro b/src/pages/klimaanlage-installieren.astro index bb27615..ed0ceb1 100644 --- a/src/pages/klimaanlage-installieren.astro +++ b/src/pages/klimaanlage-installieren.astro @@ -42,16 +42,45 @@ const jsonld={'@context':'https://schema.org','@type':'FAQPage',mainEntity:[

Tipp zum Timing

Mitten in der Hitzewelle sind SHK-Betriebe ausgebucht und Geräte knapp. Wer kann, holt jetzt Angebote ein und lässt außerhalb der Hochsaison installieren – oft günstiger und schneller. Für die akute Notlage hilft der Verfügbarkeits-Monitor oder die Hitze-Soforthilfe.

-
+
+

Fachbetrieb finden – unsere Empfehlung

+

Feste Anlagen dürfen nur zertifizierte Betriebe einbauen. In unseren Regionen empfehlen wir direkt:

+ +
+

Außerhalb der Region: zertifizierten SHK-Fachbetrieb vor Ort wählen, mehrere Angebote einholen. Empfehlungen sind HD-Partner, keine bezahlte Platzierung.

+
+

Kurz gesagt

Mobiles Gerät = schnelle Brücke. Fest installiert = die ruhige, effiziente Dauerlösung. Beides hat seine Berechtigung – Panikkauf zum Wucherpreis nicht.

Quellen: ADAC, Blauarbeit Ratgeber, HeizCenter. Preise sind Richtwerte – mehrere Angebote einholen. Keine Rechtsberatung.

+ +.cmp td:first-child{color:var(--slate);font-weight:500} +.partners{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:.4rem 0 .8rem} +.pcard{display:flex;flex-direction:column;gap:.1rem;border:1px solid var(--line);border-radius:12px;padding:.8rem .9rem;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .08s} +.pcard:hover{border-color:var(--petrol);transform:translateY(-2px)}.pcard.hot{border-color:var(--ok-dot);background:var(--ok-bg)} +.pcard .go{color:var(--petrol-deep);font-weight:600;font-size:.85rem;margin-top:.2rem} +.plzcheck{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap}.plzcheck input{padding:.55rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-family:var(--font-body)} +@media(max-width:560px){.partners{grid-template-columns:1fr}} +.shk{display:grid;gap:.7rem}.shk .row2{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.shk input,.shk select{width:100%;padding:.6rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);font-family:var(--font-body)}.shk .chk{display:flex;gap:.5rem;align-items:center;font-size:.88rem}.shk .chk input{width:auto}@media(max-width:560px){.shk .row2{grid-template-columns:1fr}} diff --git a/src/pages/login.astro b/src/pages/login.astro new file mode 100644 index 0000000..f0d9317 --- /dev/null +++ b/src/pages/login.astro @@ -0,0 +1,19 @@ +--- +import Base from '../layouts/Base.astro'; +--- + +
+ Konto +

Anmelden

+

Passwortlos per Magic-Link: Wir senden dir einen Login-Link per E-Mail. So bekommst du dein Kontrollzentrum mit Watchlist, Alerts und Verläufen.

+
+ + +

+

Noch ohne Konto? Der Link legt automatisch eins an. Demo – Auth (Magic-Link/Authentik) folgt.

+
+

Demo-Dashboard ansehen →

+
+ + + diff --git a/src/pages/pro.astro b/src/pages/pro.astro new file mode 100644 index 0000000..f0826e8 --- /dev/null +++ b/src/pages/pro.astro @@ -0,0 +1,70 @@ +--- +import Base from '../layouts/Base.astro'; +const jsonld={'@context':'https://schema.org','@type':'FAQPage',mainEntity:[ + {'@type':'Question',name:'Was kostet Kühlfinder?',acceptedAnswer:{'@type':'Answer',text:'Die Karte, Tabelle, Prognose und ein E-Mail-Alarm sind kostenlos. Der Pro-Pass für die Saison kostet einmalig 4,90 € (kein Abo) und schaltet unbegrenzte Alerts, Telegram, Prognose-Frühwarnung und Preiswecker frei.'}}, + {'@type':'Question',name:'Gibt es ein Abo?',acceptedAnswer:{'@type':'Answer',text:'Nein. Der Pro-Pass ist eine Einmalzahlung für die Saison, keine automatische Verlängerung.'}}]}; +--- + +
+ Pricing +

Verfügbarkeit zuerst sehen. In Echtzeit.

+

Bei Knappheit zählt jede Minute. Pro sieht neue Verfügbarkeiten und Alerts in Echtzeit – kostenlose Nutzer sehen dieselben Live-Daten ca. 10 Minuten zeitversetzt. In einem Wettlauf um die letzte PortaSplit entscheidet genau dieser Vorsprung.

+
~10 MinFree: Live-Daten zeitversetzt
vs
EchtzeitPro: sofort + Push
+ +
+
+

Free

0 €
+
    +
  • ✓ Live-Karte & Tabelle (alle Länder)
  • +
  • ✓ Live-Daten ~10 Min zeitversetzt
  • +
  • ✓ Verfügbarkeits-Prognose (Anzeige)
  • +
  • ✓ Preis-Check & Wucher-Warnung
  • +
  • ✓ Klima-Rechner & Finder
  • +
  • ✓ 1 E-Mail-Alarm
  • +
+ Kostenlos nutzen +
+ +
+ +
+

Mehr als ein simpler Tracker

+

Zeitvorsprung allein kann jeder. Pro geht weiter:

+
    +
  • Prognose-Frühwarnung: Alarm, bevor ein Markt typischerweise nachlegt – nicht erst, wenn es schon da (und gleich wieder weg) ist.
  • +
  • Custom-Watchlist: ein oder mehrere Wunschartikel, überwacht über alle Ketten, 6 Länder, Online & eBay.
  • +
  • Preiswecker + Wucher-Schutz: kauf nie überteuert.
  • +
+
+
+

Wie sich Kühlfinder finanziert – transparent

+

Die kostenlose Suche finanziert sich über Affiliate-Links (Amazon, idealo, eBay, Baumärkte): Kaufst du über unsere „Kaufen/Preis prüfen"-Buttons, erhalten wir ggf. eine Provision – für dich ändert sich der Preis nicht. Empfehlungen hängen nie von der Provision ab. Mehr: Transparenz.

+
+
+ +