Heute möchte ich euch zeigen, wie einfach man eine Facebook Landing Page mit PHP, HTML/CSS und Javascript erstellen kann. Wir mutieren zwar nicht zum Social Media Blog, diese Anleitung ist aber bestimmt sehr nützlich für einige von euch!
Hintergrund
Doch was versteht man eigentlich unter einer Facebook Landing Page? Genau genommen meint man damit einen speziellen Reiter einer Fanseite, die neuen Besuchern angezeigt werden. Man kann aber auch spezielle Landing Pages für Aktionen oder Wettbewerbe nutzen.
Normalerweise hat eine Fanseite die Standard-Reiter Pinnwand, Fotos und vielleicht noch Veranstaltungen. Weitere können durch Facebook Applikationen aus dem öffentlichen Verzeichnis hinzugefügt werden. Besonders beliebt ist die Anwendung Static FBML, mit der man bis anhin sehr viele Landing Pages umgesetzt hat. Mit ihr kann man gewöhnliches HTML in Kombination mit speziellen Facebook-Tags für Landing Pages verwenden. In der Nutzung ist man aber sehr eingeschränkt, beispielsweise bei Javascript.
In einigen Tagen, genauer gesagt am 11. März, wird es nicht mehr möglich sein, Static FBML auf seiner Fanpage zu nutzen. Stattdessen sollen eigene Applikationen – in IFrames – genutzt werden. Diese haben viele Vorteile: Man kann nun problemlos Javascript und somit auch Google Analytics einsetzen, ist im Design nicht mehr beschränkt und kann seine Seiten noch besser in Facebook integrieren.
Erste Schritte
Als Erstes muss man die Facebook Developer Applikation installieren, danach kann man seine erste Anwendung erstellen. Als Erstes gibt man den Namen ein und akzeptiert die AGB von Facebook. Der Name darf übrigens nicht an eine Facebook-eigene Anwendung wie Diskussionen oder Veranstaltungen angelehnt sein.
Da der Name öffentlich ist, sollte man etwas Sinnvolles wählen, wie z.B. WordPress Magazin oder dercooleblog.com. Danach kommt man zur eigentlichen Einstellungs-Seite der Anwendung, wo es allerhand einzustellen gibt.
Wichtig ist auf dieser ersten Einstellungsseite, dass man ein Logo (75x75px) sowie ein Icon (16x16px) hochlädt. Am besten eignen sich GIF-Bilder mit transparentem Hintergrund. Auch die Sprache schaltet man vorsichtshalber lieber auf Deutsch um, ich konnte allerdings beim Einrichten keinen Unterschied zu Englisch feststellen. Diese Einstellung dürfte wohl nur wichtig sein, wenn man seine Anwendung ins offizielle Verzeichnis stellen möchte. In unserem Fall bleibt die Anwendung jedoch privat.
Das nächste und letzte Register hat den Namen Facebook-Einbindung. Hier stellen wir ein, welche Seite im IFrame eingebunden werden soll. Zudem wird hier die Anwendungs-ID und der Anwendungs-Geheimcode angegeben, welche wir später für die Authentifizierung benötigen.
Ansonsten muss man folgendes anpassen:
- Canvas-URL – Die URL zur Applikation auf dem eigenen Server, ohne jedoch eine explizite Datei anzugeben. Beispiel: http://example.com/wp-content/facebook/
- URL des Reiters – Hier kommt dann die Datei, meistens index.php
- Canvas-Typ / Reiter-Typ – IFrame
- Name des Reiters – Kurz und bündig, maximal 16 Zeichen
Jetzt kann man die Änderungen speichern, wodurch man auf die Übersichtsseite gelangt. Dort klickt man auf die Anwendungs-Profilseite und anschliessend auf Zu meiner Seite hinzufügen. Im folgenden Menü wählt man dann die gewünschte Fanseite aus.
- Anwendungs-Profilseite öffnen
- Zu meiner Seite hinzufügen
Allerdings wird die Anwendung noch nicht standardmässig allen Nutzern angezeigt. Dazu muss man noch die entsprechende Fanseite bearbeiten und unter dem Punkt Genehmigungen verwalten den Standard-Reiter für Nicht-Fans definieren.
Der Code
Jetzt können wir uns nun der eigentlichen Applikation widmen. Dazu erstellt man im Programm seiner Wahl eine PHP Datei mit einfachem HTML-Grundgerüst – dazu reicht beispielsweise schon Dreamweaver. Als Nächstes bindet man das PHP-SDK, bestehend aus einer einzigen Datei, von Facebook ein, welches man bei GitHub herunterladen kann. Dort gibt es auch ein entsprechendes Beispiel zur Nutzung:
<?php
require './facebook.php';
$facebook = new Facebook(array( 'appId' =-> 'YOUR APP ID',
'secret' => 'YOUR API SECRET',
'cookie' => true, // enable optional cookie support
));
$session = $facebook->getSession();
$me = null;
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}
?>
Damit initialisieren wir die Klasse und laden die aktuelle Session. So erhalten wir nämlich bereits einige Basics über den aktuellen Besucher, ob er eingeloggt ist oder nicht und ob er bereits Fan der Seite ist. Da wir jedoch weitere Features wie den Like-Button und die Möglichkeit, Freunde einzuladen, nutzen wollen, benötigen wir die Daten auch in Javascript. Dazu laden wir zusätzlich noch die JS-SDK direkt nach dem öffnenden <body>-Tag:
<div id="fb-root"></div>
<script>
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/de_DE/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
Jetzt muss man – gleich im Anschluss – nur noch alle Javascript-Funktionen initialisieren, die Session-Daten haben wir dabei schon aus dem PHP-Teil.
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<?php echo $facebook->getAppId(); ?>',
session : <?php echo json_encode($session); ?>,
status : true,
cookie : true,
xfbml : true
});
}
</script>
Danach kommt das eigentliche Layout, wo man sich nach Lust und Laune austoben kann. Zum Beispiel kann die Landing Page an Facebook angelehnt oder so kunterbunt wie die Website sein. Einzige Limitierung ist die Breite von 520 Pixel. Die Höhe sollte variabel sein, wie wir das vorhin in den Einstellungen definiert haben. Dazu bedarf es allerdings noch einer Zeile Code…
Auto-Resize
Wir haben in den Anwendungs-Einstellungen angegeben, dass die IFrame-Grösse automatisch angepasst werden soll, schliesslich will man ja keine Scrollbalken, welche das mit 520 Pixel schon schmale Layout je nach Browser nochmals um einige Pixel reduzieren würden. Zusätzlich zu dieser Einstellung muss man aber noch in der selben window.fbAsyncInit Funktion folgende Zeile einfügen:
FB.Canvas.setAutoResize();
Hat man allerdings ein jQuery-Slider oder -Accordion, so verändert sich ja immer die Grösse des IFrames. FB.Canvas.setAutoResize() ist deshalb nur für die Initialisierung des Tabs sinnvoll. Anschließende Vergrösserungen sollten besser manuell mit FB.Canvas.setSize() durchgeführt werden. Ein Beispiel:
$('#xyz').click(function () {
$('#xyzdiv').hide();
var newHeight = $(document).height() + 170;
FB.Canvas.setSize({ width: 520, height: newHeight });
$('#newtext').slideDown(500, function () {
});
});
Events
Facebooks Javascript-SDK erlaubt es, sich in bestimmte Events einzuklinken. Auf diesem Weg kann man die Applikation bei Login/Logout oder bei einem Gefällt mir neu laden. Mit Hilfe des GET-Parameters app_data kann man beim Reload bestimmte Werte an die Applikation übergeben, z.B. um eine Nachricht für den neuen Fan anzuzeigen.
Folgende Schnipsel kommen ebenfalls in die Init-Funktion:
// Gewöhnlicher Reload nach Login, um Nutzer-Daten zu erhalten
FB.Event.subscribe('auth.login', function() {
window.location.reload();
});
// Location anpassen, für Mitgabe von app_data Parameter
FB.Event.subscribe('edge.create', function (response) {
setTimeout(function () {
window.parent.location.href = 'http://www.facebook.com/meinefanpage&sk=app_123456&app_data=neuerfan';
}, 1000);
});
Teilen
Ein weiterer Vorteil einer eigenen Anwendung gegenüber Static FBML ist die Möglichkeit, dass man dem User Dialoge anzeigen kann. So lassen sich unter anderem Nachrichten an seine Pinnwand posten, wie dieses Beispiel zeigt:
$('#share').click(function () {
FB.ui({
method: 'feed',
name: 'Werde Fan von XY',
message: 'Klicke Gefällt mir! Diese Nachricht kann man übrigens ändern!',
caption: 'Die beste Seite',
description: 'Werde Fan auf Facebook und unterstütze damit XY!',
link: 'http://www.facebook.com/meinefanpage&sk=app_123456',
picture: 'http://example.com/wp-content/facebook/images/100x100px.png' // Auch ein Bild kann angezeigt werden, 100x100 Pixel
});
});
Hier kommt für den Element-Selektor $('#share') jQuery zum Einsatz. Dieser ganze Code-Block sollte am besten in einem $(document).ready(function () { ... }); untergebracht werden, damit sichergestellt ist, dass die Facebook-SDK vollständig geladen ist. Am Ende sieht das dann ungefähr so aus:
Fazit
Schlussendlich könnte die Landing Page so aussehen wie die des WordPress Magazins, auch wenn unsere noch etwas minimalistisch daherkommt. An dieser Stelle seid ihr gefragt! Erstellt eure eigene Landing Page anhand dieses Beispiels und liest weiterführende Dokumentationen von Facebook:
- Signed Request
- Social Plugins (Gefällt mir Buttons, etc.)
- Graph API
- Javascript SDK Übersicht
- Facebook OAuth Implementierung







Geil, echt gute Arbeit Pascal! Respekt! Habe da sogar schon einige Ideen, wie man sowas sehr gut Geschäftlich einsetzen kann und auf Facebook Dinge anzeigt, die man normal auf Seiten nur verewigen kann.
Außerdem, mehr solcher Tuts… Social-Media gehört schlussendlich mit zum Marketing und somit auch zu WP, was man ja eigentlich benutzt, um seine Seiten ja nicht irgendwo verdümpeln zu lassen ;-)
Problem ist natürlich immer noch das die iframes im ausgeloggten Zustand nicht angezeigt werden. Mal sehen wie das ab 11. März aussieht.
Tollen Beitrag, da hast du dich sehr viel mühe geleistet aber…
Es geht noch leichter: http://www.facebook.com/apps/application.php?id=197936773558886
Was haltest du davon?
Coole App !!!
Danke holosh! Der app ist jetzt noch besser, mit sehr detailierte dokumentation, jeder der es sucht, findet es unter “iframewrapper” in Facebook oder hier: http://www.iframewrapper.com. Es ist überigens gratis.
Danke!
Hendrik Maat
[...] Der erste Text erläutert ausführlich, wie man eine Facebook-App anlegt, die dann letztendlich als Reiter (wie nennt man das denn eigentlich seit der Layout-Umstellung der Pages?) auf der eigenen Page auftauchen soll. Aber es geht noch weiter – und zwar mit dem Code. Bis zum Ende konnte ich mich noch nicht vorarbeiten, aber dieser Artikel hilft mir wirklich sehr viel weiter. Zum Blogeintrag » [...]
Super Anleitung, habe ich so ausprobiert.
Habe noch ne Frage. Wie bekommt man es hin, das automatisch die neu erstellte Anwendung erscheint und nicht die Pinnwand? Bei FBML gab es eine Checkbox mit “Als Startseite verwenden”, habe ich gelesen. Bei der App kann man lt. Anwendung anscheinend die Wilkommensseite verschieben. Vielleicht wird dort auch die Anzeige der Landingpage verwaltet?
Oliver Heyer
In den Seiten-Einstellungen unter “Genehmigungen verwalten” kann man den Standard-Reiter für Nicht-Fans ändern. Auch die Reihenfolge der Reiter kann man ändern. Einfach unter der Navigation auf “Bearbeiten” klicken, danach kann man alle Reiter ausser der Pinnwand und “Info” verschieben.
Hallo, ich hab noch ein “kleines Problemchen”. Ich bekomme immer einen parse error in line 6? Ich finde da keinen Fehler! die facebook.php ist im gleichen Verzeichnis. Kann es mir der id und dem secret zusammenhängen? Kannst du nochmal helfen? Werde noch ganz wuselig, da ich keine Fehler entdecken kann.
‘meine id’,
‘secret’ => ‘mein secret’,
‘cookie’ => true,
));
$session = $facebook->getSession();
$me = null;
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api(‘/me’);
} catch (FacebookApiException $e) {
error_log($e);
}
}
?>
Ups das mit dem kompletten Code geht wohl so nicht. Ich könnte dir auch den code per email senden.
Hallo Oliver
Versuchs am besten übers Kontaktformular mit dem kompletten Code sowie der genauen Fehlermeldung :)
So hier der Code. Ich habe auf die korrekte Öffnung bei php verzichtet. Beim letzten mal wurde hier der Code nicht übernommen.
Fehlermeldung:
Parse error: parse error, expecting `’)” in /mnt/web1/31/94/5687094/htdocs/oliver/iframe/index.php on line 6
php
require ‘facebook.php’;
$facebook = new Facebook(array(
‘appId’ = ’000′,
‘secret’ = ’000′,
‘cookie’ = true,
));
$session = $facebook->getSession();
$me = null;
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api(‘/me’);
} catch (FacebookApiException $e) {
error_log($e);
}
}
Entferne mal das Komma nach ‘cookie’ = true,
..das eigentlich Lustige an dieser Anleitung ist, das die Erstellung einer Facebook-Landing Page noch nicht einmal der mega Aufwand ist.. ich kann leider kein PHP, hab früher mal Websites in HTML erstellt) und selbst ich verstehe den geposteten Code.. wenn man in Hamburg Anfragen rausschickt, was es kosten würde eine Landingpage für unser Charity Projekt machen zu lassen, werden hier Preise aufgerufen von 2500€ aufwärts.. für eine Landing Page! Facebook Apps werden mit 20.000€ aufwärts beziffert.. die haben doch alle den Schuss nicht mehr gehört! danke Pascal für die Einblicke in den Aufwand!
@Pascal
Sehr schöner Beitrag auch wenn für meinen Geschmack noch folgender Zusatz fehlt: Jeder kann dieses “app” auf seine Seite einbinden ohne das man das mitbekommt.
Deswegen solltest du vielleicht noch den Hinweis einbauen, das man anhand der von Facebook per signed_request übergebenen Daten(page id) das leicht verhindern kann.
@Helena
Das ist ein Einblick….Ich hoffe du gehst nicht auch zu einem Friseur und verurteilst ihn ebenfalls, nach deinem “Einblick” in seine Arbeit ;)
Auch das kannst du sicherlich “günstiger” vom Nachbarn haben.
Beachte bitte auch das hier keine Sicherheits- oder Verfügbarkeitsrelevanten Themen angesprochen werden die für größere Projekte/Firmen wichtig sind.
Bsp. (unsortiert)
Applikationsschutz, Verzeichnisschutz, Verfügbarkeit, Fehlerbehandlung, Registrierung, Usertracking usw.
Und vergiss bitte nicht die Designer der Apps ;)
Hallo Chris
Macht wohl in den meisten Fällen kein Sinn, die Seite eines anderen einzubinden. Ausserdem sollte man sich dessen sowieso bewusst sein, wenn man ja eh den Quelltext lesen kann.
Wie genau kann man verhindern, dass jeder das App nutzen kann?
Indem man die App nicht ins öffentliche Verzeichnis stellt.
Hallo Pascal
Wirklich sehr beindruckend! Ich habe nur ein kleines Problem:
Ich kann zwar die Anwendung auf die Seite anwenden- jedoch erscheint diese nicht.
Auch nicht unter der “Genehmigungen verwalten”. Komisch.
Vielen Dank für deine Hilfe!
Dimitri
Die Anwendung sollte unter dem Menüpunkt “Anwendungen” im Adminbereich der Seite verfügbar sein. Eventuell musst du noch den Reiter hinzufügen, dazu einfach auf “Bearbeiten” klicken.
Sollte das Register sichtbar sein, die Seite aber einfach leer: Hast du SSL auf Facebook aktiviert?
Hey, eines der wenigen Tutorials, das mal wirklich zeigt, wie man eine App auf Facebook AKTUELL aufsetzt.
Allerdings spuckt er mir direkt einen error aus :(
Parse error: syntax error, unexpected ‘=’, expecting ‘)’ in /var/www/vhosts/XXXXXXXXXXX/httpdocs/clients/test/test.php on line 4
Weiß jemand Rat?
Dem wäre ich sehr verbunden,
Grüße,
Raoul
Sorry, hat sich bereits erledigt.
Jedoch der nächste Error :(
Fatal error: Call to undefined method Facebook::getSession() in /var/www/vhosts/XXXXXXXXXXX/httpdocs/clients/test/test.php on line 10
Bin ratlos..
Habe gerade nochmals auf die aktuellste Datei geworfen. Jetzt wird noch eine Zusatzklasse benötigt, welche in der Datei base_facebook.php ist. Diese muss man auch herunterladen. Die Methode zum Abrufen der Session lautet nun nicht mehr getSession(), sondern getPersistentData().
Ich hoffe, ich konnte helfen ;)
[...] benötigen wir einen Facebook Applikation, wie das funktioniert wird hier gezeigt. Wenn diese erstellt wurde benötigen wir die App-ID sowie den [...]
Danke für die tolle Anleitung – du beschreibst ja wie man das Ganze auf seiner Pinnwand teilen kann – gibt es die Möglichkeit das Ganze zusätzlich noch auf der Fanpage Pinnwand auf der das App läuft zu posten?
danke
Ich weiss zwar nicht, was das nützt, denn man kann ja auch einfach auf den Pinnwand-Reiter wechseln und das dort posten.
Sollte jedoch möglich sein, müsste man aber in der Doku nachschauen…
Hallo Pascal,
Kompliment für den Artikel! Der ist echt super geschrieben und richtig gut erklärt.
Ich habe mit HTML eine Landing page erstellt und per iframe eingebunden. Jetzt würde ich gerne folgendes machen: Wenn man bei Facebook auf Like klickt, soll man direkt auf die Pinnwand umgeleitet werden.
Ich habe schon sehr viel gefrickelt, aber es läuft leider immer noch nicht.
Weißt du, wie das geht?
Im Moment sieht es so aus:
FB.init({
appId : ‘xxxxxxxxxxxxxx’,
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Event.subscribe(‘edge.create’, function(response)
{
window.location = “http://www.facebook.com/smarttech.de?sk=wall”;
});
Schon mal ganz herzlichen Dank.
Versuchs mal wie im Beispiel oben, mit window.parent.location.href
Nur mit window.location würdest du ja nur die Adresse des IFrames ändern, aber das geht ja nicht.
Hallo Pascal,
die Anleitung ist wirklich gut.
Die eingerosteten Gehirnzellen lösen sich schon langsam. ;-)
Ich bekomme aber auch eine Fehlermeldung und bin etwas ratlos:
Warning: session_start():Cannot send session cookie – headers already sent by
(…/facebook.php) on line 37
Warning: session_start():Cannot send cache limiter – headers already sent
(…/facebook.php) on line 37
Fatal error; Call to protected method Facebook::getPersistentData() from context “…/xxx.php on line 10
10:$session = $facebook->getPersistentData();
Hängt das mit dem Update des JavaScriptSDK vom 21.07. zusammen ?
Was könnte das sein ?
Vielen Dank
Ich habe jetzt den Code nicht mehr angeschaut, aber es müsste theoretisch so gehen:
$facebook->getPersistenData() aus dem JS-Teil entfernen und bei beiden SDKs im Init ‘cookie’ auf true setzen. Dann sollte es eigentlich klappen.
Das Problem ist, dass das SDK stark weiterentwickelt wurde und scheinbar kein Session-Objekt mehr von PHP zu Javascript übertragen werden kann.
Hi Pascal, bei meiner Landingpage werden ein horizontaler und vertikaler Scrollbalken angezeigt obwohl die größe der iFrame Landingpage genau angepasst wurde. Hast du eventuell eine Idee woran das liegen könnte? Gruß Florian
Ich kann die App gar nicht als Standartreiter festlegen :S
Die o.g. Verrenkung bei dem Einsatz von jQuery-Slider oder -Accordion bedarf es nicht.
Der Einsatz nachfolgender Funktion ist dafür geeignet.
function sizeChangeCallback() {
FB.Canvas.setSize();
}
Hallo,
ich habe jetzt eine Landingpage für meine Fanpage mit iframewrapper erstellt. Standardmäßig wird die Pinwand angezeigt, nicht die Landingpage. Wie kann ich das ändern. Unter “Genehmigungen verwalten” finde ich keine Möglichkeit.
Vielen Dank!
Wenn ich auf “Seite bearbeiten” klicke und dann auf “Genehmigungen verwalten” gibt es nach dem ersten Trennstrich die Option “Pinnwand-Reiter zeigt:” und gleich danach “Standard-Reiter:”, wo ich die Anwendung auswählen kann.
Bei mir leider nicht. Könnte das damit zu tun haben, dass meine Seite als “Gemeinschaftsseite” angemeldet ist?
hi,
ich bin am verzweifeln :-/. Seit mehreren tagen versuche ich schon die Webseite(iframe) als Startseite einzubinden. Sie bleibt aber unter dem definierten Tab an der stelle stehen. ich kann es auch nicht an andere stelle verschieben. habe den Standard-Reiter auf den namen(in diesem fall JOBs) gesetzt. trotzdem wird immer bei aufruf die pinnwand gezeigt.
*sniff*
Gruss peter
Hallo Peter
Der Standard-Reiter wird nur Leuten angezeigt, die noch nicht Fan sind. Ansonsten sieht man die Pinnwand. Das steht auch im Artikel :)
bekomme jetzt langsam ein ganz grosses fragezeichen. also :-)
eigentlich wollteich die mit iframe customize seite auf die hauptseite als landingpage bringen. dache das customizing geht nur auf der “FAN” seite. jetzt sehe ich aber z.b. bei coca cola das die auch eine custom seite habe namens “Home” auf der man landet. hast du vielleicht einen link oder infos der dieses custom. beschreibt?
ich glaube das problem vieler liegt am grundverständnis, wenn sie ihre FB seiten ändern wollen.
Gruss peter
Hallo Pascal,
coole Anleitung und ich hätte nicht gedacht, dass es gar nicht so schwierig ist, seine eigene App zu bauen. An solchen Anleitungen mangelt es im Internet – sicherlich wirst Du mit solchen oder ähnlichen noch viele hungrige Leser beeindrucken können.
Ich bin den “bequemeren” Weg gegangen und habe auf ein bereits bestehendes App zurückgegriffen (Static HTML / Iframe Apps) und dazu eine Videoanleitung erstellt. Vielleicht ist dies ebenfalls für Deine Leser interessant, die nicht eine eigene App installieren wollen.
Facebook Landingpage erstellen mit Static HTML/Iframe
Weiterhin gute Arbeit und viele Grüße,
Sebastian
Hey, gutes Tutorial!
Ich hab mal eine Frage zu den Apps… es gibt ja jede Menge Seiten bei denen man erst die Seite liken muss um bestimmte Inhalte zu sehen. Wie macht man das? Ich weiß das hat was mit Genehmigungen und Standardreiter zu tun… aber wie genau mach ich das jetzt?
Thx
Schau dir mal die Doku zu Signed Request an. Mit den dadurch erhaltenen Daten sieht man nämlich, ob ein User bereits Fan ist oder nicht. Im PHP-SDK ist das schon integriert, du musst es also nicht selber noch entschlüsseln.
[...] programmers who are into it for you? I found a page on which the programming is well explained: http://wp-magazin.ch/blog/facebook-iframe-landing-page-anwendung-4279/ To get the iframe tab visits to this page: [...]
Hallo Pascal,
kann es sein,dass es zulässig ist, in den iframe ein tracking-code einzufügen, der bei Aufruf der Fanseite mit der Homepage verbunden ist und sich somit an Hand der ip nachverfolgen lässt, wer und wieviele die Fanseite aufgerufen haben?
Gruß andy
Machs nicht kompliziert: Ja, man kann Tools wie Google Analytics nutzen. In DE sollte man da aber einen Disclaimer hinsetzen, damit nicht einer ne Abmahnung schickt.