Plugin für Affiliate und CTA

Legen Sie mit Hilfe der Benutzerfelder ein Kennzeichen zu jedem Bludit Beitrag an, ob dieser eine Werbung oder einen Affiliate anzeigen soll oder nicht

Inhalt

Affiliate CTA Plugin mit Custom Fields

Affiliate in CMS ist wichtiger den je geworden, denn das reale Leben verlagert sich mehr und mehr ins Internet - das tun natürlich auch die vielen Unternehmen jetzt erst recht. In diesem Beitrag wähle ich einen bewußt einfachen Ansatz, um auch Einsteigern die Entwicklung solcher kleinen Plugins zu ermöglichen.

Funktionsweise von CTA oder Affiliate

Affiliate-Links sind im wesentlichen Produktempfehlungen die aus dem Content heraus passen können. Diese werden (meist) im Kopfbereich von Webseiten prominent angezeigt. CTA (Call to Action) ist etwas ganz ähnliches. Durch eine Bannereinblendung soll der Leser zu einer Aktion aufgefordert werden - zum Beispiel den Download eines Produktes auslösen. Durch ein Provisionssystem erhält der Webseitenbetreiber einen kleinen Betrag als Dank, wenn der Leser beispielsweise bei Amazon über diesen Link bestellt - für den Besteller ist dies natürlich vollkommen kostenlos.

CTA Affiliate je Beitrag

Damit Sie die Möglichkeit haben für jeden einzelnen Beitrag festzulegen ob er CTA/Affiliate zeigen soll oder nicht, benötigen Sie einen Schalter - also eine kleine Checkbox dessen Wert mit im Beitrag gespeichert wird. Dies lässt sich sehr gut über die so genannten Custom Fields in Bludit lösen.

Bludit CustomFields

Melden Sie sich im Bludit als Admin an und gehen in die Einstellungen unter der Rubrik Allgemein, dort finden Sie die Option Benutzerdefinierte Felder. In dem Eingabefeld sollte nichts bis auf:

[]

Code

enthalten sein. Sie benötigen dort also eine kleine Variable die ein Boolean (An/Aus) speichert. Geben Sie folgendes dort ein (die eckigen Klammern löschen Sie bitte):

{
    "ctaEnabled": {
        "type": "bool",
        "label": "CTA-Aktiv",
        "position": "top"
    }
}

Code

speichern Sie die Eingaben ab und wenn Sie nun einen Beitrag editieren, sehen über jedem Beitrag fortan das Feld CTA-AKTIV gefolgt von einer Checkbox.

Bludit Checkbox an Beitrag oben links: Checkbox die durch das Bludit CustomField erzeugt wird

Diese Information werden Sie in den folgenden Teilen in Ihr Template einabauen, um die Einblendung von Affiliate und CTA Bannern für einzelne angezeigte Beiträge Ein- oder Ausschalten zu können - denn nicht jeder Beitrag soll auch unbedingt Werbung anzeigen.

In wenigen Tagen folgt der zweite Teil des kleinen Workshops - Sie werden dann ein eigenes Plugin erzeugen und ein wenig Prgrammzeilen hinterlegen. Der Beitrag ist bereits vorbereitet und das Beispiel-Plugin fertig.

Das CTA, Affiliate Plugin

Im zweiten Teil der Reihe werden Sie das eigentliche PHP-Plugin für Bludit schreiben, welches die Affiliate-Links in die einzelnen Webseiten einbinden soll.

Affiliate Plugin Das Affiliate Plugin für Bludit CMS in Aktion

Die Position des Plugins wird über die einzelnen Templates für die Startseite oder der Beitragsseite bestimmt und wird dort fest vorgegeben. Eine dynamische Einblendung an beleibigen Stellen im Text ist mit dieser Variante nicht möglich.

plugin.php

Am besten gehen Sie so vor, das Sie sich ein bestehendes Plugin kopieren und erstellen dann einen neuen Ordner und legen dort die PHP-Datei an oder bennen sie um, beispielsweise so:

...\bl-plugins\affiliate\plugin.php

Code

In der PHP Datei tragen Sie den folgenden Programmcode ein oder kopieren den folgenden Inhalt:

001  <?php
002
003  class pluginAffiliate extends Plugin {
004
005  public function pageEnd()
006  {
007    global $L;
008
009    $rnd = rand($L->get('start'), $L->get('end'));
010
011    //$html .= '<hr class="mt-5">';
012    $html .= '<div class="row">';
013    $html .= '<div class="col-sm-2 mb-3">';
014    $html .= '<img src="'.$L->get('cta-pict-'.$rnd).'" class="img-fluid" />';
015    $html .= '</div>';
016    $html .= '<div class="col-sm">';
017    $html .= '<p><strong>'.$L->get('cta-titl-'.$rnd).'</strong> - '.$L->get('cta-desc-'.$rnd).' <sup>'.$L->get('cta-note-'.$rnd).'</sup></p>';
018    $html .= '<a href="'.$L->get('cta-link-'.$rnd).'" class="btn btn-danger">'.$L->get('cta-butt-'.$rnd).'</a>';
019    $html .= '</div>';
020    $html .= '</div>';
021     
022    return $html;
023    }
024  }

Code

Geen Sie beim Class-Name den Namen pluginAffiliate ein, dieser ist vorgeschrieben und setzt sich aus dem Namen des Ordners und dem Prefix plugin zusammen.

Zeile 009 holt mittels get den start und end Wert aus der de_DE.json Datei (weiter unten) und initialisiert damit den Zufallsgenerator. Die Ziffer des Zufallsgenerators wird an die Präfixe cta-titl-, cta-desc-, cta-link-, cta-pict und cta-butt angehängt und bilden damit die verschiedenen Einträge in der de_DE.json Datei ab. Es wird bei jedem Refresh der Seite ein anderes zufälliges Produkt eingeblendet.

metadata.json

In der Datei Metadata tragen Sie einige Infos für das Plugin ein, zum Beispiel so:

001  {
002    "author":      "Lohse",
003    "email":       "",
004    "website":     "http://Oliver-Lohse.de",
005    "version":     "3.13.1",
006    "releaseDate": "2020-07-28",
007    "license":     "MIT",
008    "compatible":  "3.13.1",
009    "notes":       ""
010  }

Code

Die Angaben sind rein obligatorisch und helfen Ihnen später die Bedeutung des Plugins zu beschreiben. Geben Sie auf jeden Fall die Versionsnummer ein, damit Sie wissen mit welcher Bludit Version das Plugin entwickelt wurde.

languages/de_DE.json

Die wichtigste Datei ist die Länder- und Sprachdatei, da diese Inhalte und angeben im Backend bei den Plugins angezeigt werden. Passen Sie die Datei:

...\bl-plugins\affiliate\languages\de_DE.json

Code

wie folgt an:

001  {
002    "plugin-data":
003    {
004      "name": "Affiliate",
005      "description": "Ein einfaches Affiliate und CTA Modul..."
006    },
007      "start": 1,
008      "end": 3,
009
010      "cta-titl-1": "Produkt-Name 1",
011      "cta-desc-1": "Produktbeschreibung",
012      "cta-link-1": "http... (Produkt-Link)",
013      "cta-pict-1": "http...  .jpg (Produktfoto)",
014      "cta-note-1": "(* (Hinweis)",
015      "cta-butt-1": "lesen... (Buttonbescriftung)",
016
017      "cta-titl-2": "Produkt-Name 2",
018      "cta-desc-2": "Produktbeschreibung",
019      "cta-link-2": "http... (Produkt-Link)",
020      "cta-pict-2": "http... .jpg",
021      "cta-note-2": "(* (Hinweis)",
022      "cta-butt-2": "lesen...",
023
024      "cta-titl-3": "Produkt-Name 3",
025      "cta-desc-3": "Produktbeschreibung",
026      "cta-link-3": "http...",
027      "cta-pict-3": "http... .jpg",
028      "cta-note-3": "(*",
029      "cta-butt-3": "lesen..."
030  }

Code

In diesem Fall sind drei zufällige Affiliate-Links verfügbar, die über das Plugin (weiter oben im Text) ausgelesen werden können. Die Produktliste kann dann beliebig erweitert werden und der Start- und End-Wert müssen enteprschend angepasst werden. Mit dem Befel global $L steht der Inhalt und die Attribute aus der Länder- und Sprachdatei im Plugin zur Verfügung und kann gelesen werden.

Möchten Sie beispielsweise, das Produkt 1 häufiger angezeigt wird als Produkt 2, dann legen Sie Produkt 1 in der de_DE.json Datei gleich mehrfach an, da dies implizit die Wahrscheinlichkeit für die Anzeige des Produkt 1 vor anderen Affiliate-Links erhöht.


Oliver Lohse
2023-12-21
Konstanten
post
0