> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Werbeerfolgskontrollen mit Referer und Subreferer

> Deep-Links mit Referer und Subreferer kennzeichnen, die Werte optional in Cookies halten und fremde Referer automatisch auf eigene Werte abbilden.

Jeder Deep-Link in Ihren Shop lässt sich mit einem Referer und einem Subreferer kennzeichnen. Damit erkennen Sie später, woher ein Besucher kam. Der Referer benennt die Quelle, der Subreferer gliedert sie weiter auf, beispielsweise in einzelne Banner bei einem Suchmaschinenanbieter.

Beide Werte wandern in die Bestelldaten und erscheinen in den Umsatzstatistiken der WEBSALE AG, aufgeschlüsselt nach Referer und darunter nach Subreferer. Von dort lassen sie sich an ein ERP-System oder ein Analysewerkzeug weitergeben.

Es gibt drei Wege, wie ein Referer in eine Sitzung kommt. Sie bauen aufeinander auf und werden in dieser Reihenfolge behandelt.

| Weg | Wann er greift |
| - | - |
| Aufrufparameter am Deep-Link | immer, überschreibt einen bereits gesetzten Wert |
| Cookie aus einem früheren Besuch | wenn kein Parameter übergeben wurde |
| automatische Ableitung aus Regeln | wenn danach immer noch kein Referer gesetzt ist |

## Referer am Deep-Link übergeben

Hängen Sie die Werte als Aufrufparameter an die URL an. Ein Referer entsteht dadurch einfach dadurch, dass Sie ihn vergeben. Sie müssen ihn nirgends vorher anlegen.

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.ihr-shop.de/?ref=Suchmaschine&subref=Banner-Fruehjahr
https://www.ihr-shop.de/<sprechender Name>?ref=Suchmaschine&subref=Banner-Fruehjahr
```

| Parameter | Bedeutung |
| - | - |
| `ref` | Referer |
| `subref` oder `subreferer` | Subreferer, beide Schreibweisen werden akzeptiert |
| `refhex` | Referer hexadezimal kodiert |
| `subrefhex` | Subreferer hexadezimal kodiert |

Die hexadezimalen Varianten greifen nur, wenn der jeweilige Klartextparameter fehlt. Sie sind dann nützlich, wenn ein Wert Zeichen enthält, die sich in einer URL schlecht transportieren lassen.

Ein Referer oder Subreferer lässt sich jederzeit durch einen erneuten Aufruf mit `ref` oder `subref` überschreiben, auch mitten in einer laufenden Sitzung. Der zuletzt übergebene Wert gewinnt.

Der Shop entfernt aus beiden Werten Zeilenumbrüche und Anführungszeichen, bevor er sie in ein Cookie schreibt. Die Werte stammen direkt aus der URL, und ohne diese Bereinigung ließen sich darüber fremde Cookie-Angaben einschleusen.

Kommt der Aufruf aus einer App und ist noch kein Referer gesetzt, trägt der Shop von sich aus den Referer `WS-APP` ein. In Ihren Statistiken erscheint dieser Wert also auch dann, wenn Sie ihn nie vergeben haben.

Wegweiser: [Shop oder Subshop aufrufen](https://dokumentation.websale.de/v8s/domains/grundlagen-domains-und-shop-aufruf.md) · [Interne Deep-Links](https://dokumentation.websale.de/v8s/domains/interne-verlinkungen.md)

Materialien: [URL-Parameter](https://dokumentation.websale.de/v8s/domains/grundlagen-domains-und-shop-aufruf.md#url-parameter)

## Den Referer im Cookie halten

Standardmäßig gilt ein Referer nur für die laufende Sitzung. Optional speichert der Shop ihn in einem Cookie und liest ihn bei einem Folgebesuch wieder aus. Damit wird auch ein Kauf Tage später noch der ursprünglichen Quelle zugerechnet.

Aktivieren Sie die Funktion in der Shopkonfiguration `shop.config` im Abschnitt `Basic`.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<Basic>
   ...
   SetRefererCookie  = yes
   RefererCookieDays = 30
   ...
</Basic>
```

| Parameter | Bedeutung |
| - | - |
| `SetRefererCookie` | mit `yes` werden Referer und Subreferer in Cookies gespeichert |
| `RefererCookieDays` | Gültigkeitsdauer in Tagen. Ohne Angabe oder bei einem Wert von 0 oder kleiner gelten 30 Tage |

Der Shop legt dabei zwei Cookies an:

| Cookie | Inhalt |
| - | - |
| `ws_<Shop>_<Sprache>_ref` | der Referer |
| `ws_<Shop>_<Sprache>_subref` | der Subreferer |

Beide Cookies werden nur geschrieben, wenn der jeweilige Wert gefüllt ist, und sie bekommen dieselbe Gültigkeitsdauer. Ein Besucher mit Referer, aber ohne Subreferer, erhält also nur das erste Cookie.

> [!WARNING]
>
> Der Sprachcode steckt im Cookienamen. Wechselt ein Besucher die Sprache, findet der Shop das Cookie der anderen Sprache nicht und startet dort ohne Referer.

Der Referer `WSTopRank` wird immer im Cookie gespeichert, auch wenn `SetRefererCookie` nicht auf `yes` steht.

### Einwilligung

Das Referer-Cookie ist im Shop als zustimmungspflichtiger Dienst hinterlegt. Setzen Sie die Einwilligungsverwaltung produktiv ein, muss der WEBSALE-Dienst `RefererCookie` einem zugestimmten Einwilligungseintrag zugeordnet sein.

> [!WARNING]
>
> Ohne Einwilligung schreibt der Shop die beiden Cookies nicht und liest sie auch nicht aus, und zwar ohne jede Meldung. Ihre Zurechnung über mehrere Besuche fällt dann still auf die Sitzungszuordnung zurück. Wenn Werbeerfolge plötzlich schlechter aussehen als erwartet, prüfen Sie zuerst, ob dieser Dienst in einer zugestimmten Gruppe liegt.

Bitte stimmen Sie den Einsatz dieser Cookies mit Ihrem Datenschutzbeauftragten ab. Ein Cookie, das eine Werbequelle über Wochen hinweg einem Besucher zuordnet, dient der Erfolgsmessung und nicht dem Betrieb des Shops.

Referenz: [Abschnitt Basic](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/grundlagen-und-technik.md#basic)

Materialien: [Verwendete Cookies](https://dokumentation.websale.de/v8s/referenz/verwendete-cookies.md)

Wegweiser: Einwilligungsverwaltung

## Referer automatisch ableiten

Nicht jeder Besucher kommt über einen Link, den Sie selbst gebaut haben. Wer aus einer Suchmaschine kommt, bringt keinen `ref`-Parameter mit, sondern nur den HTTP-Referer seines Browsers. Über Ableitungsregeln machen Sie daraus einen eigenen, sprechenden Referer, damit dieser Verkehr in Ihren Statistiken nicht namenlos bleibt.

![Referrer](https://mintcdn.com/websaleag-44ee7ea6/UyjGmXApgB40YKCW/images/referrer.jpg?fit=max\&auto=format\&n=UyjGmXApgB40YKCW\&q=85\&s=da29d3c3df03b2ae1294b26399ff7622)

Die Ableitung läuft erst, nachdem Aufrufparameter und Cookies ausgewertet wurden, und nur dann, wenn danach immer noch kein Referer gesetzt ist. Ein von Ihnen vergebener Referer wird also nie von einer Regel überschrieben.

### Die Regeln konfigurieren

Die Regeln stehen in der `shop.config` im Abschnitt `RefererDerivation`. Eine Regel prüft eine Bedingung und setzt im Trefferfall einen Referer. Optional verweist sie auf ein Regelwerk, das zusätzlich den Subreferer bestimmt.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<RefererDerivation>
   <+RefererRule>
      Source               = HTTPReferer
      Type                 = Contains
      Value                = bing
      SetReferer           = Microsoft Bing
      UseSubRefererRuleSet = def
   </+RefererRule>

   <+SubRefererRuleSet>
      ID                = def
      DefaultSubReferer = BRAND-DEFAULT
      <+SubRefererRule>
         Source        = Path
         Type          = ExactMatch
         Value         = /mein-shop
         SetSubReferer = BRAND Mein-Shop
      </+SubRefererRule>
   </+SubRefererRuleSet>
</RefererDerivation>
```

Dieses Beispiel bewirkt Folgendes:

| Schritt | Parameter | Wirkung |
| - | - | - |
| 1 | `Source = HTTPReferer` | Geprüft wird der vom Browser übergebene HTTP-Referer |
| 2 | `Type = Contains`, `Value = bing` | Enthält er die Zeichenfolge `bing`? |
| 3 | `SetReferer = Microsoft Bing` | Wenn ja, wird der Referer auf diesen Wert gesetzt |
| 4 | `UseSubRefererRuleSet = def` | Anschließend läuft das Subreferer-Regelwerk mit der ID `def` |
| 5 | `Source = Path`, `Type = ExactMatch`, `Value = /mein-shop` | Darin wird geprüft, ob der aufgerufene Pfad genau `/mein-shop` lautet |
| 6 | `SetSubReferer = BRAND Mein-Shop` | Wenn ja, wird der Subreferer auf diesen Wert gesetzt |
| 7 | `DefaultSubReferer = BRAND-DEFAULT` | Wenn keine Subreferer-Regel greift, gilt dieser Wert |

### Die möglichen Werte

Für `Source` und `Type` gibt es jeweils genau zwei Werte, sowohl in `+RefererRule` als auch in `+SubRefererRule`.

| Parameter | Wert | Bedeutung |
| - | - | - |
| `Source` | `HTTPReferer` | der vom Browser übergebene HTTP-Referer |
| `Source` | `Path` | der aufgerufene Pfad |
| `Type` | `Contains` | der Wert kommt in der Quelle vor |
| `Type` | `ExactMatch` | die Quelle stimmt genau mit dem Wert überein |

Auch eine Subreferer-Regel darf `HTTPReferer` als Quelle verwenden. Sie sind nicht auf den Pfad festgelegt, nur weil das Beispiel ihn zeigt.

> [!WARNING]
>
> Schreiben Sie `Contains` und `ExactMatch` genau so. Ein Tippfehler im Wert führt nicht zu einer Fehlermeldung, sondern dazu, dass die Regel nicht greift.

`DefaultSubReferer` ist der Grund, warum ein Regelwerk auch dann nützlich ist, wenn keine seiner Regeln zutrifft. Ohne diesen Wert bliebe der Subreferer leer, und der gesamte abgeleitete Verkehr liefe in der Statistik unter einem einzigen Referer ohne weitere Aufschlüsselung.

Referenz: [Abschnitt RefererDerivation](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/grundlagen-und-technik.md#refererderivation)

## Verwandte Themen

* Wegweiser: Shop oder Subshop aufrufen
* Wegweiser: Interne Deep-Links
* Materialien: Verwendete Cookies


## Related topics

- [CHECK- (URL- und Cookie-Daten)](https://dokumentation.websale.de/v8s/referenz/tags/check.md)
- [Verwendete Cookies](https://dokumentation.websale.de/v8s/referenz/verwendete-cookies.md)
- [URL-Parameter](https://dokumentation.websale.de/v8s/referenz/url-parameter.md)
- [Templates und Tags für Produktempfehlung](https://dokumentation.websale.de/v8s/produktweiterempfehlung/templates-und-tags-fuer-produktempfehlung.md)
- [Grundlagen und Technik](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/grundlagen-und-technik.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.