All posts by jan_tappe

Google Ads Optimierung Budget limitierter Kampagnen mit Multi Armed Bandits. Teil 2: Upper Confidence Bound Level.

upper-cpnfidence-bound-level
Die vielversprechende Wahl eines potentiellen Partners: Dieser Pfau „hat einen höheren upper bound confidence level“ als Artgenossen mit kleineren Schleppen, Quelle: Pixabay, Free for commercial use, DanielAlon.

Im ersten Teil dieser Artikelserie haben wir gesehen, wie der Epsilon Greedy Algorithmus, der einfachste und wohl bekannteste Bandit Algorithmus, mit einer geringen, vorgegebenen Wahrscheinlichkeit die Google Ads Kampagnen „erforscht“, welche zum Zeitpunkt t nicht zwingendermaßen die höchsten Erwartungswerte der Klickanzahl bei einer Budgetreallokation eines durch budget limitierten Google Ads Kontos aufweisen. Auch wenn Epsilon Greedy damit bereits eine gute Möglichkeit liefert, das Dilemma zwischen Exploitation (Ausnutzen der Budgetreallokation, welche zum Zeitpunktpunkt t den höchsten Erwartungswert an Klicks erbringt) und Exploration (Erforschen von alternativen Budgetverschiebungen zu Google Ads Kampagnen mit eventuell höheren Erwartungswerten der Klickanzahl) auszubalancieren, so fällt die zufällige Wahl einer alternativen Budgetreallokation ohne eigentliche Vorlieben, wie beispielsweise die Aussicht auf einen besonders hohen Erwartungswert der Kampagnen Klicks. Wäre es nicht viel besser, wenn die „nicht-greedy-Wahl“, also das Erforschen von Alternativen so ausfällt, dass entweder, die Wahrscheinlichkeit des höchsten Erwartungswert am größten ist oder dass die Wahl auf diejenige Budgetreallokation fällt, die wir zum Zeitpunkt t am wenigsten erforscht haben? Damit könnten wir uns die Wahl einer nichtoptimalen Budgetreallokation weitgehend ersparen. Der Upper Bound Confidence Level (=UBC) Algorithmus ermöglicht genau diese Verbesserung.

 

Das Szenario der Google Ads Optimierung

 

Bleiben wir bei unserem Szenario aus Teil 1: ein herkömmliches Google Ads Konto mit 4 Suchkampagnen K1, K2, K3 und K4 und einem Gesamtbudget von G=100 Euro pro Tag. Seien die 4 Kampagnen wieder durch Ihr Budget aktuell limitiert, sprich komplett von unserem Freelancer durchoptimiert und eine Anhebung des Gesamtbudgets ist nicht möglich. Wieder ist unser Ziel, mit einer entsprechenden, regelmäßigen Reallokation des Gesamtbudgets die höchstmögliche Anzahl an Klicks zu erhalten. Wie beim Epsilon Greedy Ansatz, modellieren wir den geschätzten Erwartungswert der Belohnungen, sprich die Klickanzahl durch die jeweilige Verschiebung eines Anteils von je 5 Euro dreier Kampagnen auf die vierte als Mittelwert Qn = R1+R2+…+R4 / n oder umformuliert inkremental als Qn+1 = Qn + 1/n*(Rn – Qn) (Sutton, R. S. & Barto A. G. (2018). Reinforcement Learning. Westchester Publishing Services, US). Den tatsächlichen Erwartungswert schreiben wir wieder als q(a) = E[Rt|At = a] auf. Anders als beim Epsilon Greedy Algorithmus, wird das Testen von Alternativen nicht durch eine vorgegebene, „blinde“ Wahrscheinlichkeit realisiert, sondern durch die Varianz des geschätzten Erwartungswertes, oder besser gesagt durch ein Konfidenzintervall It,a.

Prinzipiell wird mit dem UCB auf die Idee des Konfidenzintervalls (Gruss an Martin 😉 ) aus der Statistik zurückgegriffen. Um den erstaunlich komprimierten Ansatz im Vorwege genießen zu können, stelle ich zunächst dem geneigten Leser die abgeänderte, mathematische Formulierung des gesamten UCB Ansatzes vor: Vollständig ausgeschrieben sieht die action die gewählt wird so aus.

arg-max Anmutig einfach oder? Widmen wir uns nun der Erklärung. Hiefür liefern wir als erstes die Erklärung des Konfidenzintervalls aus der Statistik.

 

Vom Konfidenzintervall zum Upper Confidence Bound

 

Wenn p die Populationsgröße ist, die wir schätzen wollen (also zum Beispiel der Erwartungswert der Klicks durch die Verschiebung der Google Ads Kampagnen Budgets), so bezeichnet das Konfidenzintervall das Intervall I=[a,b], wobei a und b in der Regel reelle Zahlen sind, so dass p mit einer gewissen Wahrscheinlichkeit W innerhalb des Intervalls liegt. Ist diese Wahrscheinlichkeit zum Beispiel W=95%, so können wir, wenn wir das Konfidenzintervall bestimmt haben sagen, dass in 95 von 100 Fällen (unserer Schätzungen) die tatsächliche Größe p zwischen a und b liegt. Umgangssprachlich können wir dann sagen, dass wir eine 95% Chance haben, über die Anzahl der geschätzten Klicks, die wir durch die Budgetreallokation erhalten, richtig zu liegen. Wir nennen dieses Intervall das 95% Konfidenzintervall. Wenn das Intervall nun sehr breit ausfällt, sagen wir I=[10,75], so könnte mit einer 95% Wahrscheinlichkeit der Zugewinn an Klicks 75 sein. Sicherlich eine action, die sich lohnt, frühzeitig zu überprüfen. Und genau das ist das Ziel des UBC, beziehungsweise eines der beiden Ziele.

Der Term sorgt dafür, dass die action (=Google Ads Kampagnen Budgetverschiebung) bevorzugt wird, welche entweder die größtmögliche Belohnung, sprich Klickanzahl enthält oder von uns am wenigsten erforscht wurde. In beiden Fällen haben wir dadurch einen Vorteil. Liegt der nächste Wert des Belohnung (= Anzahl der erhaltenen Klicks nach Verschiebung des Budgets)  tatsächlich innerhalb des Intervalls, so können wird diese action mit einer entsprechend großen Klickanzahl ausnutzen (Exploitation) , liegt er nicht in dem Intervall, haben wir etwas Neues gelernt (Exploration) und können wir uns auf andere Reallokationen konzentrieren.

Die Funktionsweise des Terms

Situation 1: Der nächste reward (=Anzahl der erhaltenen Klicks nach Verschiebung des Google Ads Budgets) liegt tatsächlich in arg-max

Wenn sich unsere optimistische Erwartung bestätigt, erhöht sich der Nenner und der Zähler in und zwar jedes Mal, wenn wir die action ausnutzen. Der Logarithmus im Zähler sorgt allerdings dafür, dass sich die Wirkung des Terms im Laufe der Zeit verringert, da die Steigung mit der Zeit nachlässt. Dies wiederum bedeutet, dass der Gesamtausdruck mit der Zeit schneller gegen den “echten” Erwartungswert konvergiert. Dadurch verringert sich aber auch die Unsicherheit der richtigen Wahl.

Situation 2: Die action gewinnt nicht, wird also nicht gewählt. Dann erhöht sich für die zugrundeliegende Google Ads Budgetverschiebung nur der Zähler und das Intervall wird größer. Dadurch jedoch wird diese Aktion ein stärkerer Kandidat für die Exploration. Die Eigenschaft lässt gewolltermaßen ebenfalls mit der Zeit nach. Denn jedesmal, wenn die action nicht gewählt wird, lässt die Wirkung des Zählers nach, da die Steigung des Logarithmus kleiner wird.

Die Modellierung der Google Ads Budget Optimierung mit Python

Beim UCB benötigen wir keine Zufallsgenerierung. Die Umsetzung reduziert auf die Modellierung der geschätzten Erwartungswerte der Google AdWords Klicks durch die Verschiebung der Budgets und den Term . Hier kommt die Umsetzung in Python mit Erklärungen:

 

# Google Ads Budgetoptimierung budgetlimitierter Google Ads Kampagnen mit dem Upper Confidence Bound Algorithmus (UCB).
# Am Beispiel eines Google Ads accounts mit 4 budgetlimitierten Kampagnen. Beim Start der Benutzung des UCB wird
# angenommen, dass bereits eine einmalige, anteilige Verschiebung von je x Euros von 3 Kampagnenbudgets zur jeweils
# vierten zu folgenden Ergebnissen geführt hat:
# Verschiebung nach Kampagne 1: 1 zusätzlicher Klick
# Verschiebung nach Kampagne 2: 3 zusätzliche Klicks
# Verschiebung nach Kampagne 3: 2 zusätzliche Klicks
# Verschiebung nach Kampagne 4: 9 zusätzliche Klicks
# Die entsprechenden geschätzten Erwartungswerte sind in campaign_exp4=np.array([1,3,2,9]) übertragen worden.
# Autor: Jan Tappé, M.A. - www.jantappe.de - Februar 2020. Creative Commons (CC) Lizenz: free to use for non commercial purposes

import pandas as pd
import numpy as np

campaign_counters4=np.array([1,1,1,1])
# Initialisierung von 4 counter Variablen in Form eines Arrays

campaign_exp4=np.array([1,3,2,9])
# Initialisierung von 4 Erwartungswert Variablen in Form eines Arrays
t2=1

calc_array=[0,0,0,0]
# Hier kommen die Ergebnisse der Berechnungen von Q_t,a + c*sqrt(ln(t)/N(a) zur Bestimmung von arg max Q_t,a + c*sqrt(ln(t)/N(a)
# hinein

assisting_array=[0,0,0,0]
# Ein Hilfsarray. Der Eintrag wird 1, für arg max Q_t,a + c*sqrt(ln(t)/N(a)

# Ab hier geht's los. Ab hier wird so oft, wie gewünscht wiederholt.

# Berechnung des Ausdrucks Q_t,a + c*sqrt(ln(t)/N(a))
t2=+t2
for cell in range(4):
calc_array[cell]=campaign_exp4[cell]+10*(np.sqrt(np.log(t2)/(campaign_counters4[cell]+1)))

c=np.argmax(calc_array)

reward=input("Bitte gib den aktuellen reward ein: ")
reward=float(reward)
b=reward

# Berrechnung von Q_t,a + c*sqrt(ln(t)/N(a)) nach Erhalt des rewards für die Google Ads Budgetverschiebung, für
# die Q_t,a + c*sqrt(ln(t)/N(a) maximal wird (Funktionsweise 1)
campaign_exp4[c]=(campaign_exp4[c]+((1/campaign_counters4[c])*(b-campaign_exp4[c])))+
10*(np.sqrt(np.log(t2)/campaign_counters4[c]))
campaign_counters4[c]=campaign_counters4[c] +1

# Berrechnung von Q_t,a + c*sqrt(ln(t)) für die nicht-maximalen Budgetverschiebungen (Funktionsweise 2)
assisting_array[c]=1
for cell in assisting_array:
if assisting_array[cell] != 1:
campaign_exp4[c]=campaign_exp4[c]=(campaign_exp4[c]+((1/campaign_counters4[c])*(b-campaign_exp4[c])))+
10*(np.sqrt(np.log(t2)))
campaign_counters4[c]=campaign_counters4[c] +1
assisting_array=[0,0,0,0]

# Testlauf: Ergebnis nach 5 hypothetischen Durchläufen. Am besten performed in diesem Beispiel Kampagne 3
# mit 2 Zusatzklicks für das Gesamtkonto mit 4 Google Ads Kampagnen nach der Budgetverschiebung.

campaign_exp4

array([1, 1, 2, 0])

Der Artikel hat gefallen? Dann freue ich mich auf ein Feedback.
Bis dahin viel Spaß beim Modellieren
Jan

Wer schreibt hier? Mein Name ist Jan Tappé. Als selbstständiger Online Marketing Consultant berate ich Firmen aus der ganzen Welt zum Thema Online Marketing seit 2010. Ich bin überzeugt davon, dass die Zukunft des Online Marketings maßgeblich durch Machine Learning bestimmt wird. Um hierbei einen Beitrag zu leisten, promoviere ich berufsbegleitend zu einem Schnittstellenthema von angewandter Mathematik, Machine Learning und Online Marketing.

 

Google Ads Optimierung budgetlimitierter Kampagnen mit Multi Armed Bandits. Teil 1: Epsilon Greedy.

Die meisten Online Marketer kennen A/B Tests. Aber was sind Multi Armed Bandits? In diesem Artikel stelle ich den grundlegenden Ansatz des sogenannten Reinforcement Learnings, eine spezielle Art des Machine Learnings, anhand von Multi Armed Bandits vor und eine Umsetzung mittels der Programmiersprache Python. Das Ziel ist es dabei, die Klickanzahl eines durch Budget limitierten Google Ads Accounts mittels Budgereallokation mit Hilfe des Epsilon Greedy Algorithmus zu erhöhen.

Nehmen wir ein herkömmliches Google Ads Konto als Grundlagenscenario und unterstellen wir eine einfache Kontostruktur von 4 Suchkampagnen K1, K2, K3 und K4 mit einem Gesamtbudget von G=100 Euro pro Tag. Nehmen wir des Weiteren an, für die Optimierung wurde eine Google Ads Agentur oder ein Freiberufler beauftragt. Aufgrund des zur Verfügung stehenden, bezahlten workloads können 2 Stunden pro Woche mit der Optimierung des Accounts verbracht werden. Als eine der grundlegenden Optimierungsarbeiten sei darüber hinaus die Optimierung der Verteilung des Budgets unter den 4 Kampagnen vom Klienten so vorgeben, dass die Höchstzahl an Klicks erzielt wird. Da die Arbeitszeit, die zur Verfügung steht, begrenzt ist, ist natürlich auch die Zeit, die für die Budgetoptimierung zur Verfügung steht, begrenzt. Ein realistisches Szenario wäre in unserem Beispiel eine Überprüfung der Budgetallokation von 1-2 Mal die Woche mit einer gegebenenfalls sich anschließenden Änderung der Verteilung, so dass der gesamte workload der Budgetoptimierung nur einige Minuten pro Woche in Anspruch nimmt. Und hier kommt Epsilon-Greedy, bzw. die Multi Armed Bandits Methode „ins Spiel“.

Multi Armed Bandits

Der Begriff des Bandits entstammt dem Glücksspiel und bezeichnet die Slot Maschinen, die mit einem seitlich angebrachten Hebel (Arm) ausgestattet sind, welcher die Mechanik der Automaten in Gang setzt. Bei dem Spiel geht es darum, eine möglichst gewinnbringende Kombination von angezeigten Symbolen zu erhalten.

Multi-armed-bandits
Abbildung: Bandit, Quelle: Pixabay, NikeChillemi, Free for commercial use

Das Zustandekommen einer der möglichen Kombinationen unterliegt dem Zufall und der eigentliche Gewinn (die Belohnung des Spiels) wird durch zahlreiche einzelne Faktoren bestimmt (Stand der Kombination beim Zeitpunkt t-1, die Geldmenge, die sich beim Zeitpunkt t im Automaten befindet usw.). Prinzipiell können wir also einen dieser Automaten mit einer unserer 4 Suchkampagnen vergleichen, bei der ein Klick ebenfalls durch den Zufall bestimmt wird und vom Zeitpunkt der Impressionen der Anzeigen, der Gemütsverfassung des Users, der die Anzeige sieht, die Zahl der mitbietenden, konkurrierenden Werbetreibenden usw. abhängt. Die Analogie des Multi Armed Bandit Szenarios steht dann also für eine Sammlung von mehreren dieser Banditen, bzw. Google Ads Kampagnen.

Im Bemühen, den größten Nutzen aus dem Spiel mit den Automaten zu ziehen, steht der Spieler vor der Entscheidung, in welchen der Automaten er sein Geld investieren soll. Für unsere 4 Suchkampagnen stellt sich analog dazu die Frage, wieviel in die einzelnen Kampagnen vom Gesamtbudget verteilt werden soll. Allgemein wird ein solches Problem als 4-armed bandit problem bezeichnet (dementsprechend für k Automaten dann als „k-armed bandit problem, wobei k eine beliebige, natürliche Zahl ist). Das Spielen eines der Banditen wird in der Sprache des Machine Learnings als action bezeichnet. Durch wiederholte Wahl einer action (welche Maschine wähle ich als nächstes?) ist das Langzeitziel dann, die Gewinne zu maximieren (die Anzahl der Jackpots). Dies wird dadurch erreicht, dass sich schlussendlich auf den Automaten konzentriert wird, bei dem diese Anzahl am höchsten ist.

Die mathematische Formulierung

Wir widmen uns nun der eigentlichen Modellierung des Problems. Als Ausgangslage wird angenommen, dass alle 4 Kampagnen durch Ihr Budget aktuell limitiert sind (also komplett von unserem Freelancer durchoptimiert wurden) und das eine Anhebung des Gesamtbudgets nicht möglich ist, da der Klient keine weitere Anhebung des Gesamtbudgets freigibt*. Wir stehen demnach vor einer gewöhnlichen Situation, die jeder Google Ads Marketer bereits erlebt haben sollte. Zur Wiederholung: Das Ziel ist es nun mit einer entsprechenden, regelmäßigen Reallokation des Gesamtbudgets die höchstmögliche Anzahl an Klicks zu erhalten.

*wenn das Gesamtbudget weiter anhebbar wäre, würde die Budgetallokationsoptimierung ohnehin keinen Sinn machen.

Jede der Kampagnen K1, K2, K3 und K4 weist eine wöchentliche Durchschnittsanzahl von Klicks auf (= Erwartungswert, = Wert der action), wenn von dem Gesamtbudget G ein Anteil x, welcher sich durch Abzug des Einzelbudgets der anderen Kampagnen ergibt reallokalisiert wird. Wir nennen diese Veränderung der Anzahl an Klicks (ob positiv oder negativ) den Wert der action a, q(a) und bezeichnen die action, die wir zum Zeitpunkt t wählen als At. Die mit der Budgetverschiebung verbundene Belohnung nennen wir Rt. Die Größen unserer Modellierung sind also zusammengefasst wie folgt:

a1, a2, a3 und a4: Unsere 4 Suchkampagnen

q(a): Wert der action = Erwartungswert (Durchschnittswert) der Klicks für die jeweilige Verschiebung, wenn Budget von anderen Kampagnen zur jeweiligen Kampagne verschoben wird (sprich: Verlust der Klicks durch Minimierung des Budgets bei Kampagne Ki plus Gewinn der Klicks durch Erhöhung des Budgets bei Kampagne Kj).

x: Budgetanteil der Reallokation (der Einfachheit halber sei dieser eine fixe Summe, z.B. 15 Euro)

At: action, die wir zum Zeitpunkt t wählen (= aktuell gewählte Kampagne, welche das reallokalisierte Budget bekommt)

Rt: Belohnung = Anzahl der erhaltenen aktuellen Klicks durch action Ai.
Der Erwartungswert einer beliebigen action q(a) kann als q(a) = E[Rt|At = a] geschrieben werden und q(a) können wir dann wie folgt lesen: „Erwartungswert, der erhaltenden Klicks R zum Zeitpunkt t, wenn action A das „Auswählen der Kampagne a als Empfänger der Budgetreallokation zum Zeitpunkt t“ ist.

Da der Erwartungswert allerdings nicht bekannt ist (wäre dies der Fall, könnten wir einfach immer diejenige Budgetverschiebung mit dem größten Erwartungswert vornehmen), muss er nun geschätzt werden. Diesen geschätzten Wert der action a zum Zeitpunkt t wollen wir mit Qt(a) bezeichnen und unser Ziel ist es, dass die Schätzung von Qt(a) möglichst dicht an q(a) herankommt. Die Schätzung einer Zufallsgröße lässt sich einfachsten Fall durch Ihren Mittelwert darstellen. In unserem Beispiel lässt sich der Mittelwert folgendermaßen darstellen:
Qn = R1+R2+…+Rn / n. Dabei steht das n für die n’te Wahl einer action. Wurde beispielsweise bereits einmal eine action gewählt, so n=1. Durch geschicktes Umformulieren lässt sich obige Formel für die Wahl der nächsten action Wahl (also Wahl n+1) umschreiben zu Qn+1 = Qn + 1/n*(Rn – Qn) (Sutton, R. S. & Barto A. G. (2018). Reinforcement Learning. Westchester Publishing Services, US). In dieser Darstellung lässt sich der neue Wert (also der Wert nach der n+1 ten action) inkremental darstellen und damit besser mittels eines Algorithmus berechnen und speichern.

Exploring versus Exploiting (Entdecken versus Ausnutzen)

Doch nach welchem Prinzip wird nun a, also die beste action zum Zeitpunkt t ausgesucht und wie können wir unsere Klicks, sprich Belohnungen maximieren? Zur Beantwortung dieser beiden Fragen betrachten wir nun den Begriff „Epsilon“, sowie den Begriff „Greedy“. Nehmen wir dafür an, wir hätten uns bereits mehrmals für die eine oder andere Kampagne als Ziel unserer Budget Reallokation entschieden. Dabei haben wir jeweils 5 Euro der Einzelbudgets von 3 Kampagnen zu der jeweils vierten Kampagne verschoben. Dann können wir zu jedem Zeitpunkt t mindestens eine Verschiebung bestimmen, für die q(a) am größten ausfällt. Diese Verschiebung wird die greedy action genannt (greedy = gierig) und der Vorgang der „gierigen“ Verschiebung bezeichnet man als Exploitation (= Ausnutzen). Eine Exploitation verschafft uns zwar kurzfristig (sprich zum Zeitpunkt t) den größten Erwartungswert der Belohnung, da wir das aktuelle Wissen über Wert der „ausgenutzten“ action nutzen, langfristig gesehen könnte jedoch das „Testen“ oder „Erforschen“ (= Exploration) von anderen actions als der greedy action eine höhere Belohnung einbringen, da wir im Falle des Aufspürens von größeren Belohnungen langfristig diese dann wiederum ausnutzen können. Hier kommt nun das „Epsilon“ ins Spiel.
Der Trick beim Ganzen Epsilon greedy Ansatz ist es, hauptsächlich greedy zu sein, mit einer geringen, aber wiederkehrenden Häufigkeit (Epsilon) aber auch zu überprüfen, ob es actions mit einer höheren Belohnung gibt.
Wir wollen diese Methode nun modellieren. Die greedy action schreiben wir wie folgt auf: At = arg max Qt(a). Dabei bezeichnet arg max die action a, welche in Qt(a) eingesetzt die maximale Schätzung des Erwartungswert zum Zeitpunkt t ergibt. Die Häufigkeit, mit der wir bessere Alternativen testen, modellieren wir als Wahrscheinlichkeit und bezeichnen diese mit ε (dem griechischen Buchstaben Epsilon). Mit dieser kleinen Wahrscheinlichkeit ε (deren Wert wir selbstverständlich selbst vorgeben können) wählen wir von allen 4 Kampagnen mit jeweils gleicher Wahrscheinlichkeit (bei unseren 4 Kampagnen also 0.25 für jede Kampagne) irgendeine beliebige action, unabhängig von deren Erwartungswert. Wenn nun die Anzahl der gewählten actions beliebig groß wird, weil wir ja beliebig große Umschichtungen vornehmen können, werden alle beteiligten actions beliebig oft ausgewählt und alle Qt(a) konvergieren gegen q(a), so dass bei entsprechenden langen Testräumen die action mit dem größten Erwartungswert bestimmt werden kann.
Versuchen wir das Ganze nun einmal mittels Python zu formulieren. Um einen ungeübten Leser (hallo Papa 🙂 ) den Einstieg zu vereinfachen, fange ich mit einem einfachen „Gerüst“ an, dass dann Schritt für Schritt konkretisiert wird.

Es liegt auf der Hand, dass als erstes eine Möglichkeit der Generierung von Zufallszahlen benötigt wird. Python macht es uns hier mit der Numpy Bibliothek einfach. Indem wir Numpy importieren (also den Zugriff innerhalb des von uns zu schreibenden Programms ermöglichen) können wir mit dem Befehl np.random.randint(a,b) eine ganzzahlige Zufallszahl zwischen a und b generieren. Hier ist ein schneller Screenshot einer solchen Generierung, bei der eine Zufallszahl zwischen 1 und 10 generiert wird. Es wird die Zahl 2 generiert:

google-das-machine-learning-1

Versuchen wir nun eine Wenn-Dann Situation zu modellieren, so, dass mit einer Wahrscheinlichkeit von 0.1 (unser Epsilon) in allen Fällen „Epsilon choice“ geschrieben wird und mit einer Wahrscheinlichkeit von 0.9 „Greedy choice“.

google-das-machine-learning-2

Als Nächstes fülle ich dieses Gerüst nun mit dem finalen Code auf. Für die Erläuterung der Funktionsanteile sind Kommentare im Code verteilt (welche man durch das Hash-Zeichen am Anfang erkennt):

campaign_counters=np.array([1,1,1,1])
# Initialisierung von 4 counter Variablen in Form eines Arrays

campaign_exp=np.array([0,0,0,0])
# Initialisierung von 4 Erwartungswert Variablen in Form eines Arrays

def exp_reward(a,b):
# berechnet den Erwartungswert, erhöht den Zähler (n)
# und gibt den Erwartungswert aus

    cexp=campaign_exp[a]
    campaign_exp[a]=cexp+((1/campaign_counters[a])*(b-cexp))
    campaign_counters[a]=campaign_counters[a] +1
    print(campaign_exp[a])
    return campaign_exp[a]

choice=np.random.randint(1,10)

if choice==1:
# Der Zufallszähler wählt eine von 10 Zahlen (von den Zahlen 1 bis 10). Ist die Zahl 1 (epsilon ist also 1/10), dann wird
# der Block bis zu else: ausgeführt, sprich eine der 4 Kampagnen wird mit gleicher Wahrscheinlichkeit ausgewählt,
# der Online Marketer gibt den reward ein (Klickanzahl nach Budgetverschiebung) und der Erwartungswert der zufällig
# ausgewählten Kampagne wird mit der Funktion exp_reward (siehe oben) errechnet.

# Wähle eine der 4 Kampagnen mit einer Wahrschenilichkeit von 1/4:

    epsilon_choice=np.random.randint(1,5)
    print(“epsilon choice = campaign “,epsilon_choice)

    # Übermittlung des rewards zum Zeitpunkt t:
    reward=input(“Bitte gib den aktuellen reward ein: “)
    reward=float(reward)

    # Funktion exp_reward wird aufgerufen:
    epsilon_choice=epsilon_choice-1
    print(reward,epsilon_choice)
    exp_reward(epsilon_choice,reward)

else:
    print(“greedy choice = campaign “, np.argmax(campaign_exp)+1)
    # Mit einer Wahrscheinlichkeit von 1 – 1/10 = 9/10 wird die Kampagne mit     dem zum Zeitpunkt t höchsten Erwartungswert
   # ausgewählt, deren reward wird durch den Online Marketer eingegeben     und der neue Erwartungswert wird durch Aufruf der
   # Funktion exp_reward berechnet

    reward=input(“Bitte gib den aktuellen reward ein: “)
    reward=float(reward)
    exp_reward(np.argmax(campaign_exp),reward)

Hier kommt ein screenshot der Ausgabe des campaign_exp Arrays, dem Array der Erwartungswerte eines hypothetischen Durchlaufs nach 28 Durchgängen (1 Durchgang = 1 Tag). Der Befehl np.amax(campagn_exp) ermittelt At = arg max Qt(a) und der Befehl np.argmax(campaign_exp) +1 gibt die zugrundeliegende Kampagnennummer wieder:

google-ads-maschine-learning-screenshot

Ein nächster Schritt in der Modellierung wäre die Anbindung an die Google Ads API. Da dies jedoch nicht dem weiteren Verständnis des Konzeptes dient, ist dieser Schritt nicht Teil dieses Artikels. Auch wenn reward Eingabe und die Ausgabe der Erwartungswerte in unserer Beispielmodellierung mittels Python manuell erfolgen, ist die Funktionalität gegeben und kann bei entsprechender, einfacher Erweiterung auf beliebig viele Kampagnen ausgedehnt werden. Ein vorgebildete Leser wird sich allerdings eventuell die Frage gestellt haben, inwieweit beim Epsilon Greedy Algorithmus dem Umstand Rechnung getragen wird, dass die Wahrscheinlichkeitsverteilung der Klickraten nicht konstant ist, sprich sich durch zahlreiche Faktoren prinzipiell ständig ändert, also nicht stationär ist. Für diesen Leser sei der zweite Teil meiner Artikelreihe zum Thema Goole Ads Optimierung budgetlimitierter Kampagnen mit Multi Armed Bandits in Aussicht gestellt, welcher sich genau diesem Umstand widmet. Also: stay tuned – to be continued…

Der Artikel hat gefallen? Dann freue ich mich auf ein Feedback.
Bis dahin viel Spaß beim Modellieren
Jan

Wer schreibt hier? Mein Name ist Jan Tappé. Als selbstständiger Online Marketing Consultant berate ich Firmen aus der ganzen Welt zum Thema Online Marketing seit 2010. Ich bin überzeugt davon, dass die Zukunft des Online Marketings maßgeblich durch Machine Learning bestimmt wird. Um hierbei einen Beitrag zu leisten, promoviere ich berufsbegleitend zu einem Schnittstellenthema von angewandter Mathematik, Machine Learning und Online Marketing.

Persönlicher Jackpot: Jan Tappé wird Trainer für die Google Zukunftswerkstatt Kurse

Erst In der vergangenen Woche konnte ich meine Zusage von Udacity als Kurs-Mentor für das Google Ads Nanodegree feiern. Gestern hat sich nun jedoch eine noch viel größere und bedeutendere Entwicklung ergeben, mein bisheriger persönlicher Jackpot: Ich werde Trainer für die Kurse meines Lieblingsunternehmens, ich werde Trainer für die Zukunftswerkstatt von Google.

google trainer jackpot

Voraussichtlich ab Mitte dieses Jahres darf ich Kurse der Google Zukunftswerkstatt als Trainer leiten.

Als erstes folgt im Mai meine Ausbildung zum Trainer der Google Zukunftswerkstatt. Niemand anders als Christian Spancken, Google Partner Academy Trainer, Experte für erfolgreiche Online-Strategien im B2B Bereich, Autor und Hochschuldozent leitet die Trainerausbildung.

Nach erfolgreichem Absolvieren dürfen die ausgebildeten Trainer dann Zukunftswerkstatt-Kurse aus den Bereichen Digital Marketing, E-Commerce, Google Ads, Webanalyse und anderen Sparten unterrichten. Dabei beschränkt sich der Einsatz nicht nur auf die Zukunftswerkstattlokalitäten in Berlin, Hamburg und München. Die Google Kurse werden ebenfalls in Berufsschulen, Universitäten und Fachhochschulen stattfinden.

Ich bedanke mich jetzt schon für die große Chance und kann es kaum erwarten in Hamburg die Google Zukunftswerkstatt Trainerausbildung mit Kursleiter Christian Spancken zu beginnen.

Was für ein toller Start ins Jahr 2019 !

To be continued…

Jan Tappé wird Online Kurs-Mentor für das Google Ads Nanodegree von Udacity

google-ads-mentor

Bald einer von ihnen: Udacity’s Google Ads Nanodegree Kurs-Mentoren

Seit Anfang Februar 2019 sucht Udacity englischsprachige, erfahrene professionals und/oder Nanodegree alumni als Kurs-Mentoren für das neue Google Ads Nanodegree (und andere Nanodegrees) und ich bin bald einer von Ihnen!

Das Udacity Google Ads Nanodegree

Udacity bietet das Google Ads Nanodegree seit 2018 an. Das Ziel des Nanodegree Abschlusses ist es, ein umfassendes Verständnis für Google Ads zu bekommen. Dabei werden echte live Kampagnen aufgesetzt, mit echten budgets. Das erfolgreiche Absolvieren bereitet darüber hinaus auf die Google Ads Zertifizierung vor, so Udacity.

Die Themen des online Kurses beinhalten

  • Search
  • Display
  • Video
  • App Advertising
  • Shopping

und mehr (z.B allgemeine Online Marketing Grundlagen).

Die Mentor Position

Die Kurs-Mentor (Klassenlehrer) Positionen für das Google Ads Nanodegree werden von Udacity wie folgt beschrieben:

Zeitlicher Umfang: ca. 15 Stunden pro Woche

Zu unterrichtende Studentengruppe: ca. 15 Studenten

Unterrichtsform: wöchentliche online Gruppen-Video-Sessions plus 1:1 check-ins mit den einzelnen Studenten der zu unterrichtenden Gruppe. In den Unterrichtseinheiten werden die jeweils aktuellen Abschnitte des Degrees mentoriert.

Meine Bewerbung als Udacity’s Google Ads Nanodegree Mentor

Am 1.2.2019 bin ich in den Applikationsprozess gegangen. Der erste Schritt der Online Bewerbung bestand aus drei Teilen:

  • Technical Test: Das Überprüfen des fachlichen Wissens in Bezug auf Google Ads (multipe choice)
  • Situational Test: Hier wurden die Kommunikationsfähigkeiten überprüft und getestet, wie empathisch auf Studentenfragen eingegangen wird.
  • Teaching Test: Dieser dritte Teil bestand aus dem Anfertigen eines Videos einer fiktiven Unterrichtseinheit über Google Ads. Insbesondere ging es hierbei darum, zu zeigen, wie man Studenten für die jeweiligen Google Ads Themenbereiche begeistert und eine ansprechende und aktive Unterrichtseinheit gestalten würde (teaching skills, motivation skills).

Nachdem ich diese ersten drei Teile eingereicht hatte, bekam ich bereits nach 1.5 Wochen eine Mail, in der man mir mitteilte, dass ich es in die engere Wahl für das mentorship programm des Google Ads Nanodegrees geschafft habe.

Der nächste Schritt, so schrieb das Udacity team, bestand in einer online live session mit einem Udacity Teammitglied.  Ich suchte mir einen Termin für drei Tage später aus.

Meine session Partnerin, also das Team Mitglied von Udacity war Rebecca Wolpinsky, Director of Operations der Udacity School of Digital Marketing.

Das Interview, welches sich als eine Mischung des Testens von Google Ads und Digital Marketing Fachwissen und einem herkömmlichen Bewerbungsgespräch (warum hast Du Dich für das Google Ads Nanodegree Mentorship programm beworben etc.) herausstellte, war anspruchsvoll aber enspannt. Rebecca hatte das Treffen perfekt vorbereitet und schaffte von Anfang an eine entspannte Atmosphäre.

Auch wenn Sie mir auf mein Geheiß hin versicherte, dass ich einen hervorragenden Eindruck gemacht hätte, war ich bei diesem letzten Bewerbungsschritt recht unsicher – warum weiss ich eigentlich gar nicht mehr im Nachhinein.

Ausgewählt: zukünftiger Google Ads Nanodegree Mentor Jan Tappé

Gerade als ich das Ganze unter „ferner liefen“ ablegen wollte, kam nun vor ein paar Tagen eine weitere Mail von Udacity:

„Congratulations, you have been selected for the Udacity Mentorship program “.

Ich bin absolut begeistert und freue mich sehr auf meine erste Studentengruppe. Die nächste Mail von Udacity wird nach den Angaben von Udacity detailierte Informationen über die mentor Aufgaben, guidelines etc. beinhalten.

Ich bin gespannt.

To be continued…

SEO Ranking Faktoren – Querygenaue Analyse.

In seinem SEO Artikel “Ranking-Faktoren 2018: Nischengenaue Analysen statt allgemeiner Aussagen” hat Marcus Tober, CTO von Searchmetrics einen interessanten Artikel über verschiedene branchenspezielle SEO Variablen und deren Ranking Potential publiziert. “Mithilfe dieser Granularisierung konnten viel aussagekräftigere Werte gewonnen werden, die den wirklichen Einfluss auf das Ranking in einzelnen Branchen beschreiben.”, so der CEO.
In einem sich anschliessenden thread diskutieren Jan Grundmann, Content Marketing Manager bei Searchmetrics und ich, inwieweit prozentuale Verteilungen wie die in der Analyse vorliegenden Form – beispielsweise die der Variablen Browserladegeschwindigkeit und Wortanzahl – erweitert werden können, um noch genauere Aussagen über die analysierten Ranking Signale abzuleiten.
Die Basis der Analyse ist der Kommentar von Gary Illyes, Web-Trends Analyst bei Google, in Bezug auf die Top 3-Ranking-Faktoren “It much depends on the query and the results which signals count more”, so Gary Illyes”.
Im folgenden Artikel wird versucht, den Artikel von Marcus Tober zu erweitern und noch tiefer herauszukristallisieren, was “It much depends on the query and the results which signals count more” bedeutet.

Background

Definition Korrelationskoeffizient

Der Korrelationskoeffizient ist ein Maß für den Grad eines (linearen) Zusammenhangs zwischen zwei Merkmalen. Der Koeffizient kann Werte zwischen -1 und 1 annehmen.

Beispiel:
Merkmal 1 = Rankingposition bei Google
Merkmal 2 = Ladegeschwindigkeit der rankenden Webpage.
Liegt ein positiver Zusammenhang vor (Beispiel: hohe Ladezeiten = mögliche hohe (also schlechte) Google Position), so ist der Wert größer als Null. Liegt ein negativer Zusammenhang vor (Beispiel: hohe Wortanzahl = wahrscheinliche, niedrige (also gute) Google Position), so ist der Wert kleiner als Null. Liegt kein Zusammenhang vor (Beispiel = Merkmal beeinflusst das Ranking wahrscheihnlich nicht), so ist der Wert Null.
Anlehnend an den SEO Artikel von Marcus Tober werden beispielhaft für die Branche Tourismus folgende Merkmale ausgesucht und deren query bezogene Korrelation untersucht:

1. Ladezeit der rankenden Webpage
2. Anzahl der Wörter auf der rankenden Webpage
3. Rankingposition der Webpage

Query: „reise buchen online“
Die searchmetrics essentials research cloud listet folgende pages als Top Ten platziert auf. Daneben befinden sich die jeweiligen Seitenladezeiten (fully loaded, Quelle: webpagetest.org, Serverstandort Deutschland, Kabelgeschwindigkeit für Desktop) und die Wortanzahl (Quelle: https://wordcounter.net/website-word-count)

Top Ten pages

Platz 1: https://www.expedia.de 23, 3090

Platz 2: https://www.holidaycheck.de/wo/reise-angebote 16, 2052

Platz 3: https://www.weg.de/ 31, 614

Platz 4: www.travel24.com/ 7, 1876

Platz 5: https://www.fti.de/reiseangebote/guenstig-reisen.html 17, 6247

Platz 6: https://www.opodo.de/ 104, 5592

Platz 7: https://online-reisesuche.de/ 8, 3592

Platz 8: https://www.thomascook.de/ 26, 2395

Platz 9: https://www.neckermann-reisen.de/ 19, 1967

Platz 10: www.lastminute.de/ 20, 1216

Frage (A): Besteht ein möglicher Zusammenhang zwischen Ladezeit und dem Ranking im Umfeld des queries „reise buchen online“?

Wir tragen die Wertepaare in eine Tabelle ein, bestimmen den Korrelationskoeffizienten und lassen Graphen von Excel zeichnen. Wie in dem unten stehenden Graph zu sehen ist, exisitiert eine schwache lineare Korrelation zwischen dem Merkmal Position und Ladegeschwindigkeit, was durch den minimalen positiven Anstieg der durchgezeichneten Trendlinie angezeigt wird. Die Relevanz ist jedoch relativ gering, da der Korrelationskoeffizient einen geringen Wert von 0.038331 aufweist (Quelle: Excel).

Ableitungshypothese (A): Ladegeschwindigkeiten scheinen für das query „reise buchen online“ keinen großen Einfluss auf die Rankingposition zu haben.

Frage (B): Besteht ein möglicher Zusammenhang zwischen dem Merkmal Wortanzahl und dem Merkmal Rankingposition?

Wieder tragen wir die Wertepaare in eine Tabelle ein, bestimmen den Korrelationskoeffizienten und lassen Graphen von Excel zeichnen:

Der leicht absteigende Graph signalisiert, dass Seiten mit einer geringeren Wortanzahl einen schlechteren rang bei Google einnehmen. Auch hier ist jedoch die Relevanz mit einem Korrelationskoeffizienten von -0,0409 nicht besonders stark ausgeprägt.
Eine Gegenüberstellung von Rankingposition und Wortanzahl für ein anderes query für die gleichen urls liefert jedoch Überraschendes und Hinweis darauf, was Gary Illyes mit “It much depends on the query and the results which signals count more” meint.

Frage (C): Besteht der gleiche mögliche Zusammenhang zwischen dem Merkmal Wortanzahl und dem Merkmal Rankingposition beim query „reise buchen online“?

Searchmetrics liefert für das query folgende Rankingverteilung (die Zahl hinter den jeweiligen urls steht für den Rankingplatz):

https://www.expedia.de, 9

https://www.holidaycheck.de/wo/reise-angebote, 4

https://www.weg.de/, 2

www.travel24.com/, 8

https://www.fti.de/reiseangebote/guenstig-reisen.html, kein Top Ten ranking

https://www.opodo.de/, 10

https://online-reisesuche.de/, kein Top Ten ranking

https://www.thomascook.de/, 5

https://www.neckermann-reisen.de/, 21

www.lastminute.de/, 7

Wieder tragen wir die Wertepaare in eine Tabelle ein, bestimmen den Korrelationskoeffizienten und lassen Graphen von Excel zeichnen:

Hier ergibt sich nun ein äußerst unerwartetes Bild. Der positiv ansteigende Graph signalisiert: Je höher die Wortanzahl, desto höher der Rankingplatz. Ein hoher Rankingplatz bedeutet jedoch ein schlechteres ranken. Im Umfeld des queries „urlaub buchen online“ führen also pages mit einer höheren Anzahl von Wörtern zum schlechteren ranken! Darüber hinaus ist der Zusammenhang sogar sehr viel stärker relevant, als der Zusammenhang mit der Ladezeit, da der Korrelationskoeffizient mit 0,243316 sechsmal so groß, wie der Korrelationskoeffizient für das query „reise buchen online“. Wer bis hierhin durchgehalten hat, erahnt nun, was Gary Illyes mit “It much depends on the query and the results which signals count more” meint. Augenscheinlich können gleiche potentielle Rankingsignale für unterschiedlich queries für gleiche Seiten eine unterschiedliche Relevanz haben.

Abschliessend sei noch darauf hingewiesen (danke Jan Grundmann), dass durch die Kausalzusammenhänge, die durch die oben beschriebenen Korrelationskoeffizienten offensichtlich zu beobachten sind, nicht darauf geschlossenen werden kann, dass es bei einer Umsetzung auch tatsächlich zu einer Rankingverbesserung kommt. Es kann lediglich festgehalten werden, dass die Zusammenhänge bei den untersuchten Seiten und Merkmalen bestehen.

SEO: Google updates – Wie man sich im Vorwege vor einem Google update schützt.

 

Die Zeiten, in denen Google grundlegende SEO Updates angekündigt hat, damit sich SEO Spezialisten neu ausrichten konnten, um Fehler auszubessern oder neue Chancen umsetzen zu können sind vorbei. Nicht zuletzt das viel diskutierte „Fred Update“ zeigt, Google optimiert seine Algorithmen ständig und ohne Ankündigung.

SEO Schutz vor Google update: Aktion statt Reaktion

Doch wie können SEO Spezialisten nun reagieren, um Rankingpostionen zu halten oder sogar verbessern zu können? Die Frage allein scheint schon falsch zu sein, denn eine Reaktion kann nur auf eine vorgehende Aktion erfolgen (Ankündigung eines Updates).

Kristine Schachinger von searchengineland.com schlägt einen anderen (innovativen?) Weg vor. In Ihrem Artikel “Wie man sich keine Gedanken mehr über Google updates machen muss”, listet sie die grundlegenden Kategorien auf, die Teil der meisten Google Updates sind und zeigt: SEO Spezialisten müssen „nur“ 4 grundlegende Optimierungsmaßnahmen als Basis ihres täglichen Handelns berücksichtigen.

Die Top 4 SEO Aktionen für den Google update Schutz

Diese Maßnahmen sind nichts Neues, aber der Betrachtungswinkel ist es. Die meisten Google Updates betreffen mindestens einen der folgenden 4 Punkte:

  1. Backlink Problematiken
  2. Technische Probleme
  3. Content Qualität
  4. User Experience (Usability)

 

Im Grunde geht es also immer darum

  • Spammige Links zu vermeiden und/oder zu eliminieren
  • Technisches SEO stehst auf dem neuesten Stand zu halten
  • Qualitativ hochwertigen content für das jeweilige Zielsegment zu liefern
  • und die Usability einer Webseite oder eines Online Shops ständig zu optimieren (Bsp.: Speed Performance)

 

Das sind keine neuen Informationen, doch werden diese 4 Punkte als Benchmark für jede „Aktion“ benutzt, ist die Wahrscheinlichkeit geringer beim nächsten update Federn lassen zu müssen.

 

Denn vollständigen Artikel finden Sie unter http://searchengineland.com/stop-worrying-google-updates-276482

 

Autor: Jan Tappé, BSc

Geomarketing

Geomarketing – Oder: Warum ich ArcGIS so liebe

Warum sollte sich ein Online Marketer mit GIS (Geoinformationssystemen) beschäftigen Die Antwort darauf ist recht einfach: Um Geomarketing zu betreiben. Geoinformationssysteme wie ArcGIS sind mächtige Tools, mit deren Hilfe man beispielsweise folgende Frage beantworten kann. Nehmen wir an, Sie optimieren gerade eine AdWords Kampagne für einen online Shop, über den Reha Produkte vertrieben werden, also Duschhocker, Wechseldruckmatrazen etc.

Nehmen wir weiterhin an – und das gehört, wie jeder Online Marketer weiß zum AdWords Alltag, dass das momentan zur Verfügung stehende Tagesbudget Ihrer Kampagnen regelmäßig überschritten wird, doch der Kunde möchte den AdWords spend nicht weiter anheben. Er möchte aber dennoch mehr conversion sehen. Gehen wir nun desweiterem davon aus, Sie haben alle Register bereits gezogen und die Kampagnen bis zum Anschlag optimiert. Die Frage lautet also: wie steigere ich meine conversion rate für eine – mittels AdWords und Google Analytics – vollständig optimierte Kampagne?

AdWords Conversion Optimierung – Geomarketing mit ArcGis

Um Geomarketing für die conversion Optimierung für das oben genannte Beispiel einzusetzen, könnten Sie versuchen eine Antwort zu folgender (äquivalenten) Frage zu finden: In welchen Ortschaften (bzw. Kreisen) wohnen besonders viele Menschen (nehmen wir als Beispiel mehr als 50000), die älter als 49 Jahre sind und unterdurchschnittlichen Anbindung an öffentliche Verkehrsmittel genießen? Wenn uns diese Ortschaften bekannt wären und wir unsere AdWords Kampagnen auf eben diese Ortschaften beschränken, so würden die Impressionen sinken und die Klicks steigen, da die Kampagnen eine höhere Relevanz zur Zielgruppe hätten. Die Frage nach der schlechten Anbindung an öffentliche Verkehrsmittel ist deshalb relevant, weil man annehmen kann, dass in solchen Orten die Wahrscheinlichkeit sinkt, dass Sanitätshäuser (welche ebenfalls Reha Produkte verkaufen) bequem zu erreichen sind. Dadurch steigt die Wahrscheinlichkeit, dass online bestellt wird. Um Antworten auf diese Frage zu bekommen, brauchen wir neben dem GIS auch die entsprechenden Daten (bzw. Datenlayer) – und zwar

  1. einen Datenlayer, der Deutschland in seine Bundesländer segmentiert
  2. einen Datenlayer, der die Bundesländer in Gemeinden (oder noch feinkörniger, falls gewünscht) segmentiert
  3. und einen weiteren Zensus Datenlayer (für die Altersverteilung)

Diese Datenlayer können im Internet an zahlreichen Stellen kostenlos downgeloadet werden. Mit wenigen Handgriffen können nun nicht nur auf Städteebene, sondern runtergebrochen sogar bis auf Kreisebene diejenigen Orte bestimmt werden, welche die oben genannten demographischen Merkmale aufweisen.

Zusätzlich können wir mit ArcGIS auch noch eine Excel Tabelle mit den entsprechenden Kreisen (bzw. Orten) ausgeben lassen, die wir dann für unser Geo Targeting in AdWords nutzen. Beschränken wir dann unsere Kampagnen auf die dort aufgeführten Orte, so steigt die Relevanz der Anzeigen, es sinken die Impressionen und es steigen die conversion rates.

Sichtbarkeitssteigerung von 1450% in 5 Monaten

Nicht einfach nur Ziel erreicht: Sichtbarkeitssteigerung von 1450% in 5 Monaten. Tappé schließt erfolgreiche Betreuung der Lion Tours GmbH ab.

sichtbarkeitssteigerung-seo-jan-tappe
Sichtbarkeitsentwicklung gemäß Searchmetrics Suite

Der Erfolg kann sich sehen lassen. Nach nur 5 Monaten konnte ich durch meine Erstellung der Online Marketing Analyse und der anschließenden Umsetzung meiner Strategieentwicklung folgendes Ergebnis erzielen:

  • Steigerung der organischen Sichtbarkeit von 1450%.
  • Steigerung der Conversionsrate und Leadgenerierung um 100% (Buchungen)
  • 700% Steigerung der CTR von 0,2% auf 1,6%
  • 8% Minimierung der Bounce Rate der Indexseite (von 31.49% auf 23,65% (Absprungrate)

Darüber hinaus war es mir möglich, durch das zusätzliche parallele intensive Coaching und Training der Inhaberin der Lion Tours GmbH ein solides Basiswissen in den Bereichen

  • SEO
  • Linkbuilding
  • Contentmarketing
  • Usability
  • SEM (AdWords) und
  • Webanalyse (Google Analytics)

zu vermitteln, so dass von nun an alle grundlegenden Maßnahmen intern im Unternehmen selbstständig weitergeführt werden können.Ich bedanke mich fürdie gute Zusammenarbeit, freue mich über die hervorragenden Ergebnisse und wünsche der Lion Tours GmbH alles Gute für die Zukunft.

Sie möchten ebenfalls von meinen umfangreichen Online Marketing Fähigkeiten profitieren, Abverkäufe steigern, die Sichtbarkeit Ihrer Webseite erhöhen, Ihre Platzierung bei Google und Bing verbessern oder Ihre Leadgenerierung verbessern? Dann freue ich mich auf Ihre Kontaktaufnahme unter 08131 37 268 29 oder über das SEO Kontaktformular.

Jan Tappé gewinnt renommierte Dr. Schetter BMC IGmbH als neuen Klienten.

Ab März 2016 beginnt die Betreuung der Dr. Schetter BMC IGmbH, renommiertes deutsches Unternehmen für exquisite Messdatenerfassung und Industrie PC Systeme.

30 Jahre Erfolg und Erfahrung

1988 wird mit MC-32, das erste selbstentwickelte industrietaugliche Messsystem in eigener Fertigung, der Grundstein für den mittlerweile drei Jahrzente andauernden Unternehmenserfolg der IGmbH gelegt. Es folgen Datenlogger, PC-Messkarten, Software zur Messtechnik und diverse spezielle Applikationen ebenfalls in Eigenproduktion. Heute fokussiert sich das Unternehmen auf die drei Segmente PC-Messdatenerfassung, Industrie PC Systeme und Datenlogger.

Schlüssel zum Erfolg: Inhaber geführten Mittelstand

Das Unternehmen ist ein Vorzeigekandidat für bodenständigen und vitalen inhabergeführten Mittelstand. Bereits während unseres ersten Meetings in den Münchner Unternehmensräumen in Puchheim kristallisierte sich eine positive Basis für erfolgreiche Kollaboration heraus. Der Qualitätsanspruch der Ingenieurs GmbH, deren Philosophie sich an den Zielen ihrer Kunden orientiert und durch ständige Weiterentwicklung, organisches Wachstum auf solider Basis und kompromisslose Qualität bestimmt wird, harmoniert bestens mit meinen eigenen Maßstäben, und Ansprüchen.

Meine jahrelangen SEO, SEM und Online Marketing Erfahrungen aus dem technisch orientierten Business to Business Segment und die Fokussierung auf mittelständische Unternehmen bilden eine optimale Grundlage für die Betreuung der Dr. Schetter BMC IGmbH.

Ich bedanke mich für das entgegengebrachte Vertrauen und blicke auf eine erfolgreiche Kollaboration.

Weitere Informationen zur Dr. Schetter BMC IGmbH gibt es auf http://www.bmc.de

Jan Tappé ist einer der ersten Google AdWords Experten in der DACH Region

google-adwords-experte

Spruchreif: Jan Tappé ist seit dem 28.1.2016 einer der ersten Google AdWords Experten (DACH).

 

Den für den Wirtschaftsraum Deutschland, Österreich und Schweiz gültigen Expertenstatus können Online Marketing Profis erlangen, welche die kompletten Zertifizierungsprüfungen der Google AdWords Produkte zwischen dem 01.01.2016 und 31.3.2016 erfolgreich und aktuell ablegen und damit Profiwissen und Profikönnen für die gesamte Palette der AdWords Werbekanäle zeigen:

  • Allgemein AdWords Werbung
  • Werbung mit AdWords im Suchnetzwerk
  • Werbung mit AdWords im Display Netzwerk
  • Werbung mit AdWords mit Google Shopping, sowie
  • Werbung mit Google Mobile und
  • Werbung mit AdWords mit Google Video (YouTube) zeigen

Auch wenn wenn die Qualifizierung zum Google AdWords Experten ein echtes Zertifizierungsmarathon war, bin ich froh, die Herausforderung angenommen zu haben. Ich bin sehr stolz darauf, einer der ersten Google AdWords Experten in Deutschland, Österreich und der Schweiz zu sein und freue mich auf mein personalisiertes Zertifikat, dass mir Google Mitte April nach Hause schickt.