[Updatenotiz] – Hashtagprojekt (Instagram), Reports

Um die Reportings enorm zu erleichtern, habe ich an die Datenanalysesoftware eine geeignete PDF-Exportfunktion angebunden. Irgendwo in diesem Blog befinden sich Hinweise darauf, dass der Hashtaganalysekomplex mit Hilfe von Delphi realisiert und gepflegt wird. Für Interessierte Entwickler_innen verweise ich bzgl. der durchaus schwierigen PDF-Problematik auf:

(1) Forum (synopse)
(2) PDF-Engine v. „Synopse“

Einige interessante Hinweise, Quellcodes und „Tutorials“ befinden sich im verlinkten Forum.

Zu den Analysereports:
Ich orientiere mich hier bewusst an das Layout der bekannten SEO-Datendienstleister und folgende Beispiele sind realisiert:

(1) Einzelprüfung
Die Einzelprüfung ist mit dem Schnittstellenbefehl „tagabfrage“ vergleichbar, sie bezieht sich auf das Datum des letzten Datensatzes und beinhaltet die Häufungsentwicklung des abgefragten Tags, der Themenwelt (oder: ähnliche Tags) und einigen erklärenden Schaubildern.

Download / Beispiele: weihnachten.pdf, microsoft.pdf, release.pdf, reporting.pdf, software.pdf, xmas.pdf

(2) Mehrfachprüfungen
Diese Prüfung bezieht sich aktuell auf zwei Tags, wird später ggf. auf ein höheres Volumen ausgeweitet.

Download / Beispiele: weihnachten_geschenk.pdf, weihnachten_tannenbaum.pdf

Beide Reportingverfahren werden ab Wochenende den Betatester_innen und Kund_innen via eMail-Schnittstelle zur Verfügung gestellt.

Weil wir intern noch einige Gestaltungsdiskussionen führen, sind folgende Erweiterungen der PDF-basierten Reports „angedacht:
– Häufungsentwicklungen via Schaubild der aufgeführten „TOP-10“ aus den Themenwelten
– Vergleich von X Tags bzgl. deren Häufungsentwicklungen via prozentualer Abweichung
– geringfügige Layoutanpassungen

In einer Konzeptdiskussion kamen wir hier zum Ergebnis, dass eine dauerhafte Beobachtung geposteter Medien inklusive der Fotos, der Tags, der Kommentare, der ID-Codes und der Likes interessant sein kann, um in die Bewertung klassische Interaktions-Metriken einfliessen zu lassen und quasi „nebenbei“ potentielle Influencer zu identifizieren. Die Realisierung eines geeigneten Algorithmus ist zwar relativ problemlos, jedoch werde ich mich dieser Aufgabe in der arbeitsfreien Jahreswendezeit widmen.

Aktivitäten auf Xing, Übernahme einer Gruppe

Vor einigen Tagen übernahm ich die Administration und das Management einer XING-Gruppe.
Diese trägt den Namen „Erfolgreich im Internet“ und ich lade hiermit alle interessierten Leser_innen des Arbeitsblogs ein, da aktiv zu werden. 😉
Ich führe diese Gruppe zusammen mit einigen Moderator_innen und „wir“ legen da einen extremen Wert auf die professionelle Diskussion aller interessanter Themen rund um SEO, Socialmedia-Marketing, Socialmedia-Optimierungen und den technischen Aspekten des Internetmarketings. Es wird hier stark darauf geachtet, dass diese Plattform absolut (!) spamfrei bleibt und natürlich dienen zukünftige Aktivitäten auch der Erwirtschaftung diverser Erkenntnisse und reduplizierbaren Strategien rund um die Problematiken der Vermarktung von Dienstleistungen und Informationen via XING.

Updatenotiz: Datenbank – Hashtagprojekt

Das folgende Diagram beschreibt das Datenbankvolumen in seiner Entwicklung seit Relaunch des Systems:

Download: dbueberblick

Zur Erklärung:
Die Bezeichnung „Unique-Tags“ beschreibt die Summe der gefundenen und „einzigartigen“ Terms / Tags  und die Bezeichnung „Datensätze“ gibt Aufschluss darüber, wieviele Datensätze (also: unique-tag, Häufung) im kompletten Zeitraum erfasst worden sind.

Die Exporte wurden ebenfalls etwas modifiziert. Diese liefern ab sofort die Ergebnisse – wahlweise – in den Formaten „.xlsx“ und „.csv“ über die EMail-Schnittstelle zurück. Beispiele sind (a) Liste => „Theater“ (ungenau) und (b) Wolke => „Theater“ (ungenau).

Blogcommentspambeispiele (Stand: 20.11.2016)

Nach Durchsicht eines unserer Fotoblogs entdeckte ich die folgenden und faszinierenden Beispiele der Strategie „Linkaufbau via Blogcomments“.

(1) Hochzeitslocations-Spammer
wow wie wunderschön. Wir sehen ständig solche schönen alten Schnitzereien bei den Locations, bei denen wir anliefern. Einfach traumhaft. Es muss nicht immer modern und schickimicki sein! Vielleicht habt Ihr ja mal Lust vorbeizuschauen bei uns. Unter [URL] findet Ihr uns..

Ablehnungsgründe sind:
– Keyword im Namen („Location Finder“)
– Seite, welche keinerlei Bezug (Layout) zu „Hochzeit“ hat
– URL-Spam im Kommentarfeld

(2) Spammer von Lehr- und Lernangeboten
Da war ich wohl in Köln bis jetzt nicht in den richtigen Ecken.

Ablehnungsgründe sind:
– falscher Name
– Spam zielt(e) auf einen Artikel, welcher definitiv KÖLN nicht zum Thema hat

(3) Sportspammer, Spammer für Sportler_innen-Ernährungsmittel
Schöne Fotografien!

Ablehnungsgründe sind:
– Keyword im Namen „[Name] FIT“
– Phrase, bestehend aus zwei Worten

Projekt: Instagram-Hashtagdatenbank, Datenbankupdate und weitere Pläne

Die angelegte Datenbank hat nun den folgenden Umfang:

Datenbanküberblick:
Unique-Tags:556022
Anzahl: Tagdatensätze:1579353
Anzahl: Abfragepunkte:28818
Anzahl: Kategorien:117
Letztes Prüfdatum: 18.11.2016

Die hinterlegten Kategorien und Abfragepunkte decken derzeit relativ stark die meisten erfassbaren Themen des Alltags ab und ich werde die finale Version auf ein Volumen von ~3-5 Mio Unique-Tags erweitern.

Neben den realisierten Abfragefunktionen (Tagliste, Tagwolke) sind die folgenden Erweiterungen geplant:

(1) Detailabfragen nach Häufung
– Tagliste und Wolke inklusive der tagesaktuellen Häufung
– Erweiterung der Wolken um Durchschnittshäufungen
(2) Wortpaarprüfungen
– Ausgabe (allgemein, inkl. Häufungen) nach Wortzusammensetzungen (weihnachten+geschenk, geburtstag+geschen, usw.)
– Formate: Taglisten und Tagwolken
(3) Häufungsentwicklungen
– Einzelabfragen und Wortpaare
(4) Textanalysen
– Gegenproben von Texten auf die Datenbank
– Ausgabe der Häufungen
– Ausgabe der durchschnittlichen Häufungen
– Ausgabe der gefundenen Tags als Promovorschlag für die Socialmedia
(5) Alertsystem, Triggersystem
– Infosystem zu geänderten Häufungen
– Infosystem zu „neuen“ Tags
– Infosystem zu „neuen“ Wortpaaren
– Alerts: täglich, wöchentlich etc.

Wir diskutieren und analysieren derzeit intern noch diverse Datenfreigabemöglichkeiten neben der bekannten EMail-Schnittstelle. Im Moment sind die folgenden Optionen bei uns im Gespräch:
(a) Datenauszüge in den Formaten: XLS, JSON, SQL, CSV
(b) Reportings analog zu bspw. XOVI und andere Datendienstleister (PDF)

Projekt: Instagram-Hashtagdatenbank, Abfrage von Tagwolken

Die Abfragelogik für das Generieren dieser Hashtagwolken hat das folgende Schema:

wolke:[term],[mindesthäufung],[modus],[varianten],[limit]

Erklärungen zu den Variablen:
[term] beschreibt den gesuchten Begriff
[mindesthäufung] beschreibt, die Mindesthäufung der auszugebenden Wolkenelementen (=>Zahl)
[modus] beschreibt die Ausgabegenauigkeit
[varianten] beschreibt die Anzahl der auszugebenden Wolkenvarianten (=>Zahl)
[limit] beschreibt das Maximalvolumen der auszugebenden Wolkenelementen (=>Zahl)

Aktuelle Möglichkeiten von [modus] sind „ungenau“ (Term befindet sich irgendwo in den Zeichenketten) , „anfang“ (Term befindet sich am Anfang der Zeichenketten) und „ende“ (Term befindet sich am Ende der Zeichenketten).

Um nun an die gewünschten Ergebnisse zu gelangen, werden die zusammengesetzten Befehlszeilen via EMail-Betreff an die System-Adresse geschickt. Ich bitte hier zu beachten, dass diese „System-Adresse“ ausschließlich nach Rücksprache mit Anne oder mir freigegeben wird.

Beispiele sind:
wolke:leipzig,100,anfang,10,6
Variante: 1
#leipzighalle #leipzigleben #leipziglove #leipziggram #leipzigerbuchmesse2014 #leipzigtattoo
Variante: 2
#leipzigerbuchmesse2014 #leipzig #leipzigtravel #leipzigblogger #leipzigzoo #leipzig_downtown
Variante: 3
#leipziggay #leipzig_city #leipzigerbuchmesse2015 #leipzigartig #leipzigerleben #leipzigcitygirl
Variante: 4
#leipziggram #leipzigerland #leipzigtattooartist #leipzigerbuchmesse2015 #leipzigtravel #leipzigart
Variante: 5
#leipzigerland #leipziglovers #leipziggoesusa #leipzigart #leipziggram #leipzig_deine
Variante: 6
#leipzighalle #leipzigerbuchmesse2015 #leipzigerzoo #leipzigram #leipzig2013 #leipzigliebe
Variante: 7
#leipzigmarkt #leipzigtattooartist #leipzigcity #leipzigcityviews #leipzigtravel #leipzigram
Variante: 8
#leipzigerland #leipzig_deine #leipzigtattoo #leipzigerbuchmesse2016 #leipziglovee #leipzig2014
Variante: 9
#leipzig2013 #leipzigerbuchmesse2016 #leipzigerleben #leipziglove #leipzigerbuchmesse2015 #leipzig
Variante: 10
#leipzigerstr #leipziglife #leipzigtattooartist #leipzigarena #leipziger #leipziggermany

wolke:leipzig,100,ende,10,6
Variante: 1
#plagwitzleipzig #flughafenleipzig #leipzig #baumwollspinnereileipzig #visitleipzig #halloleipzig
Variante: 2
#iloveleipzig #lieblingsleipzig #ig_leipzig #thisisleipzig #leipzig #spinnereileipzig
Variante: 3
#weihnachtsmarktleipzig #spinnereileipzig #visitleipzig #leipzig #baumwollspinnereileipzig #thisisleipzig
Variante: 4
#visitleipzig #spinnereileipzig #weihnachtsmarktleipzig #plagwitzleipzig #flughafenleipzig #thisisleipzig
Variante: 5
#weihnachtsmarktleipzig #baumwollspinnereileipzig #plagwitzleipzig #leipzig #iloveleipzig #halloleipzig
Variante: 6
#thisisleipzig #baumwollspinnereileipzig #iloveleipzig #visitleipzig #ig_leipzig #halloleipzig
Variante: 7
#iloveleipzig #ig_leipzig #halloleipzig #thisisleipzig #leipzig #plagwitzleipzig
Variante: 8
#baumwollspinnereileipzig #plagwitzleipzig #ig_leipzig #spinnereileipzig #flughafenleipzig #weihnachtsmarktleipzig
Variante: 9
#flughafenleipzig #weihnachtsmarktleipzig #visitleipzig #thisisleipzig #baumwollspinnereileipzig #halloleipzig
Variante: 10
#ig_leipzig #plagwitzleipzig #lieblingsleipzig #halloleipzig #iloveleipzig #leipzig

wolke:leipzig,100,ungenau,10,6
Variante: 1
#leipzigbynight #leipzigerzoo #leipzigblogger #iloveleipzig #leipzigliest #leipziglove
Variante: 2
#leipzigerland #leipzigerplatz #leipzigtattoo #leipzigmarkt #leipzigskyline #leipzigläuft
Variante: 3
#leipzigerplatz #leipzigbookfair #leipzigcitygirls #leipzigblogger #leipziglife #leipzigcity
Variante: 4
#leipzigram #ig_leipzig #leipzigerbuchmesse #leipzighalleairport #leipzigerbuchmesse2016 #leipzigskyline
Variante: 5
#meinleipziglobichmir #leipzigartig #leipzigbookfair #leipzigläuft #erfurtleipzighalle #leipziglovee
Variante: 6
#leipzigtrip #leipzigerbuchmesse2015 #leipzigliebe #leipzigzoo #leipzigerbuchmesse2016 #leipzigerplatz12
Variante: 7
#leipzigerland #leipzigerbuchmesse2016 #flughafenleipzighalle #leipzigtravel #plagwitzleipzig #leipzigwest
Variante: 8
#visitleipzig #lieblingsleipzig #leipziglife #leipzigcityviews #leipzigtripp #leipzigtravel
Variante: 9
#leipziglife #erfurtleipzighalle #leipzigtattootermine #leipzig2013 #leipzigzoologicalgarden #leipzigerbuchmesse2015
Variante: 10
#flughafenleipzighalle #plagwitzleipzig #leipziggirl #leipzigerweihnachtsmarkt #leipzigtravel #leipziglovers

Projekt: Instagram-Hashtagdatenbank, Datenbanküberblick

Der folgende Datenbankauszug lässt sich über die freigeschaltete EMail-Schnittstelle mit Hilfe des Befehls „überblick“ abholen.

Unique-Tags: 57510
Anzahl: erfasste Tags:509918
Anzahl: Abfragepunkte:3754
Anzahl: Kategorien:55
Anzahl: Prüfungen:11
Letztes Prüfdatum: 13.11.2016

Zeitstempel – Überblick: 13.11.2016 15:11:47

Erklärungen zu den Angaben:
„Unique-Tags“ beschreibt die erfassten Einzeltags.
„Anzahl: erfasste Tags“ beschreibt die Einzeltags inklusive deren Entwicklungen über die Prüfzeiträume.
„Anzahl: Abfragepunkte“ beschreibt die Anzahl der Suchabfragen an den Tagsearch-API-Endpoint.
„Anzahl: Kategorien“ beschreibt die Kategorien, welche die Abfragepunkte einordnen (Sport, Essen & Trinken, Mode, etc.).
„Anzahl: Prüfungen“ beschreibt die durchgeführten Abfragen der an den Tagsearch-API-Endpoint bzgl. aller Kategorien.
„Letztes Prüfdatum“ beschreibt das Datum der letzten durchgeführten Prüfung.
„Zeitstempel – Überblick“ beschreibt den Zeitstempel des generierten Datenbanküberblicks

[Updatenotiz] Instagrammonitoring, Recherchen und die Hashtags

Nach einigen Diskussionen rund um die Freigabefunktionen der Datensätze, sind wir intern endlich zu einem Resultat gekommen.

Die Monitoringanwendung wird um eine eMail-basierte Schnittstelle erweitert. Dies sieht so aus:

– Freigabe der „berechtigten“ Personen über deren Absender-Mailadresse via Datenbankeintrag im System
– eventuell: Einführung eines Quota-Systems (XYZ-Abfragen je Person …)
– Abfrageschema: Subject => Abfragebefehl, Body => Inhalte

Über die Aufbereitungen der Resultate werden wir intern und in Absprache mit den Kund_innen noch intensiv diskutieren.
Ich werde die Entwicklung der Abfrageschemata und die entsprechenden Befehle hier dokumentieren.

Delphi: Versenden von EMails via Indy (SSL, TSL)

Folgender Code hilft beim Versenden von EMails aus Delphi / Indy mit Anbindung und Unterstützung von SSL und TSL. Inspiriert wurde das Ganze von „Envio de e-mail com componentes Indy„.

procedure TForm1.Button3Click(Sender: TObject);
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
IdSMTP: TIdSMTP;
IdMessage: TIdMessage;
IdText: TIdText;
sAnexo: string;
begin
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
IdSMTP := TIdSMTP.Create(Self);
IdMessage := TIdMessage.Create(Self);
try
IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;
IdSMTP.IOHandler := IdSSLIOHandlerSocket;
IdSMTP.UseTLS := utUseImplicitTLS;
IdSMTP.AuthType := satDefault;
IdSMTP.Port := xxx;
IdSMTP.Host := '';
IdSMTP.Username := '';
IdSMTP.Password := '';
IdMessage.From.Address := '';
IdMessage.From.Name := '';
IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
IdMessage.Recipients.Add.Text := edit5.text;
IdMessage.Subject := '';
IdMessage.Encoding := meMIME;
IdText := TIdText.Create(IdMessage.MessageParts);
IdText.Body.Add('The body of the e-mail goes here');
IdText.ContentType := 'text/plain; charset=iso-8859-1';
try
IdSMTP.Connect;
IdSMTP.Authenticate;
except
on E:Exception do
begin
MessageDlg('Cannot authenticate: ' +
E.Message, mtWarning, [mbOK], 0);
Exit;
end;
end;
try
IdSMTP.Send(IdMessage);
MessageDlg('Message sent successfully!', mtInformation, [mbOK], 0);
except
On E:Exception do
begin
MessageDlg('Error while sending a message: ' +
E.Message, mtWarning, [mbOK], 0);
end;
end;
finally
FreeAndNil(IdMessage);
FreeAndNil(IdSSLIOHandlerSocket);
FreeAndNil(IdSMTP);
end;
end;

Delphi: Abrufen von EMails via Indy inkl. SSL

Der folgende Code ist hilft hier vor allem bei TLS und SSL geschützten Accounts. Es eine erste Version und soweit sind keine Fehler aufgefallen.

procedure TForm1.Button9Click(Sender: TObject);
var
i, j,MsgAnz: Integer;
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
bodytext: string;
begin
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
idpop31.IOHandler := IdSSLIOHandlerSocket;
idpop31.UseTLS := utUseImplicitTLS;
IdPOP31.Host := '';
IdPOP31.Port := xxx;
IdPOP31.UseTLS := utUseImplicitTLS;
IdPOP31.Username := '';
IdPOP31.Password := '';
IdPOP31.Connect;
if IdMessage1.ContentType='text/plain' then
memo1.text:=IdMessage1.Body.Text;
MsgAnz := IdPOP31.CheckMessages;
mailzeug.Lines.Add('Anzahl E-Mails:' + IntToStr(MsgAnz));
for i:= 1 to MsgAnz do
begin
idpop31.Retrieve(i, IdMessage1);
mailzeug.Lines.Add('E-Mail Nr:' + IntToStr(i)+ sLineBreak +
' Von:' + IdMessage1.From.Text + sLineBreak +
' Betreff:' + IdMessage1.Subject);
bodytext:=idmessage1.Body.Text;
mailzeug.Lines.Add(bodytext);
IdMessage1.Clear;
idpop31.Delete(i);
end;
IdPOP31.Disconnect;
FreeAndNil(IdSSLIOHandlerSocket);
end;