# AdSense in SingleChat

## Ziel

Im Header kann ein Google-AdSense-Banner eingeblendet werden. Die Einbindung ist bereits vorbereitet, aber nur aktiv, wenn die passenden Vite-Variablen gesetzt sind.

## Bereits im Code vorbereitet

- Header-Komponente: [HeaderAdBanner.vue](/mnt/share/torsten/Programs/SingleChat/client/src/components/HeaderAdBanner.vue)
- Einbindung in die Kopfzeilen:
  - [ChatView.vue](/mnt/share/torsten/Programs/SingleChat/client/src/views/ChatView.vue)
  - [PartnersView.vue](/mnt/share/torsten/Programs/SingleChat/client/src/views/PartnersView.vue)
  - [FeedbackView.vue](/mnt/share/torsten/Programs/SingleChat/client/src/views/FeedbackView.vue)

Aktiv wird der Banner nur mit:

- `VITE_ADSENSE_CLIENT`
- `VITE_ADSENSE_HEADER_SLOT`

## Was bei Google AdSense erledigt werden muss

### 1. AdSense-Konto und Website

In AdSense selbst:

1. Website `ypchat.net` hinzufügen
2. Eigentum/Einbindung abschließen
3. Warten, bis die Website von Google geprüft und freigegeben wurde

Ohne freigegebene Website werden in der Regel keine regulären Anzeigen ausgeliefert.

### 2. Anzeigenblock anlegen

Für den Header in AdSense einen normalen responsiven Display-Anzeigenblock anlegen.

Benötigt werden daraus:

- Publisher-ID
  Beispiel: `ca-pub-1234567890123456`
- Slot-ID des Header-Anzeigenblocks
  Beispiel: `1234567890`

### 3. `ads.txt` korrekt pflegen

AdSense erwartet in der Regel einen korrekten Eintrag in `/ads.txt`.

Für Google AdSense ist das Format typischerweise:

```txt
google.com, pub-1234567890123456, DIRECT, f08c47fec0942fa0
```

Wichtig:

- `pub-...` muss zu deinem echten AdSense-Konto passen
- die Datei muss öffentlich unter `https://ypchat.net/ads.txt` erreichbar sein
- Änderungen brauchen oft etwas Zeit, bis Google sie erkennt

Im Projekt liegt aktuell eine Datei unter [docroot/ads.txt](/mnt/share/torsten/Programs/SingleChat/docroot/ads.txt). Diese muss auf deine echte Publisher-ID geprüft und ggf. angepasst werden.

## Was im Projekt erledigt werden muss

### 1. Vite-Variablen setzen

In der Projekt-`.env` die beiden Werte ergänzen:

```env
VITE_ADSENSE_CLIENT=ca-pub-1234567890123456
VITE_ADSENSE_HEADER_SLOT=1234567890
```

Hinweis:

- `VITE_...` ist notwendig, damit die Werte im Client verfügbar sind
- ohne diese Werte bleibt der Banner automatisch unsichtbar

### 2. Frontend neu bauen

Nach Änderung der `.env`:

```bash
cd client
npm run build
```

Danach wie bisher den Build nach `docroot/dist` deployen.

### 3. Server/Deployment aktualisieren

Je nach Deploy-Prozess:

1. neuen Client-Build deployen
2. prüfen, dass `docroot/dist` aktuell ist
3. Service neu starten oder Deployment neu laden

## Prüfung nach dem Deploy

### Technisch

Prüfen:

- ist im HTML ein AdSense-Script geladen?
- erscheint im Header ein reservierter Anzeigenbereich?
- gibt es Fehler in der Browser-Konsole?

### Extern

Prüfen:

- `https://ypchat.net/ads.txt` ist erreichbar
- AdSense zeigt keinen `ads.txt`-Fehler mehr
- die Website ist in AdSense als bereit/freigegeben markiert

## Wichtige Hinweise

- Im lokalen Development erscheinen AdSense-Anzeigen oft nicht sinnvoll oder gar nicht.
- Nach dem ersten Einbau kann es dauern, bis Google echte Anzeigen ausliefert.
- Wenn Header-Anzeigen die UX zu stark stören, sollte der Banner auf Mobile ausgeblendet bleiben. Das ist im Code bereits berücksichtigt.
- Für Consent-/CMP-Themen kann je nach Land eine zusätzliche Einwilligungslösung nötig sein. Das ist aktuell nicht Teil dieser Implementierung.

## Kurz-Checkliste

1. In AdSense Website hinzufügen und freigeben lassen.
2. Header-Display-Ad-Unit anlegen.
3. Publisher-ID und Slot-ID notieren.
4. `docroot/ads.txt` auf korrekten Google-Eintrag prüfen.
5. `.env` mit `VITE_ADSENSE_CLIENT` und `VITE_ADSENSE_HEADER_SLOT` ergänzen.
6. Client neu bauen.
7. Deployen.
8. Live prüfen, ob `ads.txt` und Banner korrekt ausgeliefert werden.
