Mit Affiliate-Plugin Geld verdienen

Mit diesem praktischen Affiliate-Plugin für das Bludit CMS verwandeln Sie Ihre Webseite in eine einfache Geldmaschine

Inhalt

Das Affiliate Plugin für Bludit

Für die Entwicklung eines Affiliate-Plugins in Bludit gibt es unterschiedliche Herangehensweisen (einige sind auf dieser Domain zu finden). Der folgende Ansatz ist weniger opulent und nutzt dabei bestehende Funktionen und Schnittstellen des Content Management Systems Bludit sinnvoll aus, beispielsweise bedient sich das Plugin für die Ablage der Affiliate-Links der eleganten JSON-Struktur, die von Bludit unterstützt wird.

Sie erhalten als Ergebnis des Plugins und der Affiliate-DB, das oben gezeiget Banner mittem im Text, an der von Ihnen festgelegten Stelle, durch einen individuellen Token.

JSON-DB für Affiliate-Links

Die Ablage der Affiliate-Links erfolgt in der JSON-Datei language/de_DE.json, das hat viele Vorteile, denn der JSON-Dialekt ist für den Menschen sehr gut lesbar und zum anderen steht der Inhalt der Datei dem Plugin über das Bludit-Framework bereits zur Verfügung - das ist ideal.

001  {
002    "plugin-data":
003    {
004     "name": "Affiliate ShortKey",
005     "description": "Beschreibung des Plugins"
006    },
007    "affiliate":
008     {
009     "{#affiliate-1#}":
010     {
011         "title":        "Titel des 1. Produktes",
012         "logo":         "https://...jpg",
013         "description":  "Beschreiben Sie das Produkt für den Leser...",
014         "url":          "https://..."
015     },
016     "{#affiliate-2#}":
017     {
018         "title":        "Titel des 2. Produktes",
019         "logo":         "https://...jpg",
020         "description":  "Legen Sie eine kurze Beschreibung für den Leser an",
021         "url":          "https://..."
022     }
023    }
024  }

Code

Die Affiliate-Links werden mit dem Namen affiliate eingeleitet, das ist praktisch, damit sich das Plugin über diesen Namen die Liste aller Produkte unter einer Variable laden kann. Das Array affiliate liefert dem Plugin eine Liste (derzeit) mit zwei Produkten, die über den Schlüssel {#affiliate-1#} und {#affiliate-2#} angesprochen werden können. Jedes dieser Affiliate-Produkte enthält eine kurze Liste mit Tite, Logo, Beschreibung und einen Link zum Webshop.

Die Liste lässt sich beliebig um weitere Einträge ergänzen. Fügen Sie neue Einträge in der Sektion affiliate hinter die letzte Klammer ein.

Der Template-Token

In dem Beispiel oben ist der Token für die Einbindung des Affiliate-Links in den Beitragstext auf {#affiliate-1#} vorgegeben. Grundsätzlich können Sie aber jedes andere Format oder Bezeichner frei wählen, er darf jedoch nicht mit bestehenden Zeichen des MarkDown- oder HTML-Dialekts kollidieren. Theoretisch können Sie sogar den Begriff Werbung verwenden, um alle Textvorkommen mit diesem String, durch Werbung ersetzen zu lassen.

Das Plugin - AffiliateShortKey.php

...  <?php
...      class pluginAffiliateShortKey extends Plugin 
...      {
...          function beforeSiteLoad() 
...          {
...              global $content;
...              global $L;
...  
...             foreach ($content as $key=>$page) 
...             {
...                 $pageContent = $page->content();
...  
...                 foreach($L->get('affiliate') as $key=>$value)
...                 {
...                     $html  = '<a href="'.$value['url'].'">';
...                     $html .= '<img src="'.$value['logo'].'" style="width: 125px; float: left; margin-right: 1em; margin-bottom: 1em; margin-top: 0.55em;">';
...                     $html .= '</a>';
...                     $html .= '<p class="lead">'.$value['title'].'</p>';
...                     $html .= '<p>'.$value['description'].' <a href="/impressum">(*</a></p>';
...  
...                     $pageContent = str_replace($key, $html, $pageContent);
...                     $page->setField('content', $pageContent);
...                 }
...              }
...          }
...
...          function form()
...          {
...              // Die Verwaltung für das Admin Backend kann hier eingebaut werden
...              // wenn gewünscht ist (siehe weiter unten im Beitrag)
...          }
...      }
...  ?>

Code

Start des Plugins - beforeSiteLoad()

Das Plugin heftet sich an den Hook beforeSiteLoad() und wird damit schon vor dem Laden und Rendern der Seite am Browser aktiv. Dadurch kann es den Inhalt der Webseite vor der Anzeige manipulieren und den gesetzten Token durch den Affiliate-Link ersetzen.

Content laden - global $content und global $L

Damit das Plugin Zugriff zum Beitrags-Content- und zum Language-Objekt erhält, müssen diese am Kopf der Methode deklariert werden. In Abhängigkeit des installierten Sprachpaketes, kann die verwendete JSON-Datei unterschiedlich sein.

Im Falle der deutschen Installation, liefert $L die JSON-Datei language/de_DE.json aus dem Pluginordner an das Affiliate-Plugin. Haben Sie das engliche Sprachpaket installiert, müssen Sie natürlich language/en_EN.json für die Pflege der Affiliate-Daten verwenden.

Auf Affiliate zugreifen - $L->get()

Das Plugin holt über $L->get('affiliate') die Affiliate-Struktur aus der JSON-Datei und iteriert über den Inhalt und alle untergeordneten Listen.

Token im Content ersetzen - str_replace()

Mit Hilfe des str_replace($key, $html, $pageContent) wird im Seiteninhalt der Token {#affiliate-1#} durch den Inhalt der Variable $html ausgetauscht, also das vollständig mit HTML formatierte Affiliate Banner fix und fertig für die Anzeige im Beitrag.

Neuen Content speichern - $page->setField()

Damit der manipulierte Inhalt auch angezeigt werden kann, muss er in das Page-Objekt des CMS zurückgeschrieben werden, dies wird mit setField() erledigt. Die Methode setField() benötigt den Feldnamen und den neuen Inhalt als Parameter.

Angabe - style

Die im Code hinterlegte style-Angabe, dient dazu, das das Bild auf 120px begrenzt wird und vom Text rechts umflossen wird. Dies können Sie je nach Bedarf an Ihren eigenen Style anpassen.

Tokens im Beitrag setzen

Damit ist das Plugin zunächst vollständig und Sie können die Tokens {#affiliate-1#} ... {#affiliate-99999#} im Beitragstext an beliebige Stellen setzen. Ruft ein Leser diesen Beitrag auf, so erhält er die Einblendung des Affiliate-Links.

Eine Verwaltung für das Admin-Backend hinzufügen

Das Affiliate-Plugin ist in der obigen Version vollständig und uneingeschränkt lauffähig, jedoch haben Sie im Admin-Backend lediglich die Möglichkeit das Plugin ein- oder auszuschalten.

Affiliate Verwaltung im Backend

Eine Anzeige über die Inhalte der Affiliate-DB wäre wünschenswert und kann auch durch Einfügen einer weiteren Methode simpel nachgeholt werden.

Eine Anzeige fürs Backend - form()

Fügen Sie die folgende Methode form() unterhalb des bestehenden Codings ein, damit Bludit durch das reservierte Wort form() die Anzeige durch das Plugin im Backend zulässt.

...  public function form()
...  {
...      global $L;
...  
...      echo '<style>';
...      echo 'tr:nth-child(even) {background-color: #f1f1f1;}';
...      echo 'tr:nth-child(odd)  {background-color: #f7f7f7;}';
...      echo 'table              {width: 100%; margin-bottom: 0.5em;}';
...      echo 'td                 {padding: .5em;}';
...      echo '</style>';
...  
...      echo '<div class="alert alert-primary" role="alert">';
...      echo $this->description();
...      echo '</div>';
...  
...      echo '<table>';
...      foreach($L->get('affiliate') as $key=>$value)
...      {
...          echo '<tr>';
...          echo '    <td>';
...          echo '        <a href="'.$value['url'].'">';
...          echo '            <img src="'.$value['logo'].'" width="120px">';
...          echo '        </a>';
...          echo '    </td>';
...          echo '    <td>';
...          echo '        <p><code class="p-1">'.$key.'</code></p>';
...          echo '        <p>'.substr($value['title'],0,110).'...</p>';
...          echo '        <p class="small text-muted">'.$value['description'].'</p>';
...          echo '</td>';
...          echo '</tr>';
...      }
...      echo '</table>';
...      echo '<p class="small text-muted">Aktuell verfügbare Affiliate-Einträge in der <code>languages/de_DE.json</code>. Übernehmen Sie den vorgegebenen <code>{Token}</code> aus der linke Spalte und setzen sie ihn in einen Text an beliebiger Stelle ein. Neue Affiliate-Einträge können in der <code>de_DE.json</code> gepflegt werden.</p>';
...  }

Code

Sie sollten im Plugin dann etwa folgende Struktur haben:

...  <?php
...      class pluginAffiliateShortKey extends Plugin
...      {
...          function beforeSiteLoad() 
...          {
...              ...
...          }
...
...          public function form()
...          {
...              ...
...          }
...      }
...  ?>

Code

Anzeige des Formulars - foreach()

Die Schleife ist im wesentlichen mit der Schleife aus dem Plugin-Hook-Aufruf identisch und iteriert über die Inhalte des affaliate-Arrays und zeigt alle Inhalter mit Produktbild in einer Tabelle übersichtlich an.

Beim Design von Affiliate-Banner gibt es kaum Regeln, Sie können das Affiliate-Banner grundsätzlich so gestalten wie Sie mögen.

Unauffällige und subtile Affiliate-Banner wirken im Text zunächst deutlich harmonischer, professioneller und ordnen sich weniger störend dem Text und der Webseite unter, allerdings erzeugen sie dadurch weniger Klicks und geringeren monetären Umsatz.

Aus der Sichtweise des Marketings, werden allerdings deutlich auffälligere Affiliate-Banner bevorzugt, da sie mehr Klicks versprechen indem sie die Aufmerksamkeit des Lesers binden. Allerdings wirken sehr auffällige Banner in einem CMS oft sehr lieblos und störend.

Mir persönlich sind Affiliate-Links weniger wichtig bzw. "nice to have", daher sind sie eher subtil im Text und Template eingebunden.


FlightCMS
2023-12-21
Konstanten
post
0