Update: Hashtagrechercheclient -> v.0.9B

Mit Freigabe der aktuellen Dateninterpretationssoftware habe ich mich dazu entschieden, die Datenvisualisierungsfeatures auf „final“ zu stellen. Das bedeutet, dass die Diagramme, die konkrete Gestaltung etc. fertig gestellt sind und ich maximal einige kosmetische Dinge da einbauen werde. Diese sind:

-> Farbauswahlfeatures
-> Ausweitung der Taganalyse auf max. 10
-> div. sonstige Farbmanipulationen

[Screenshots zu den Diagrammen]

Die Beispieldiagramme offenbaren hier einige Datenlücken und diese lassen sich so erklären:
-> Ausfall / Fehler der API-Endpoints
-> Änderungen an den API-Zugriffsmodalitäten und Abfragequota
-> Bug, Fehler im Scraper

[Screenshots zu den Rohdaten]

Nach intensiven Diskussionen rund um diese Datenlücken – intern und extern – fällte ich die Entscheidung, diese bewusst offen zu lassen und immer zur Gegensichtung der Rohdaten (siehe Screenshots zu raten. Sicherlich ist dieser Weg nicht „kosmetisch schön“, jedoch halte ich eine Datenauffüllung durch den Vorgängerwert für wenig zielführend, da hierüber eventuell Logiklücken in der Dateninterpretation sichtbar werden könnten.

Update „Instafinal“ auf die Versionsnummer 2.2-0b

Aus nicht nachvollziehbaren Gründen lässt sich die übliche Auslogurl (https://www.instagram.com/accounts/logout/) des Mediums Instagram nicht mehr in dem Automatismus verwerten. Bei Aufruf erscheint eine entsprechende Fehlermeldung. Dies hatte zur Folge, dass die Software „Instafinal“ angepasst werden musste, da eben die – in Reihe geschalteten Accounts – mit einem sauberen Logout / Login schlichtweg funktionsfähig gehalten werden.

Die Prozedur sieht so aus:

procedure TForm1.Button60Click(Sender: TObject);
var
ovElements_1, ovElements: OleVariant;
i,j: Integer;
begin
webbrowser1.Navigate(‚https://www.instagram.com/’+last_acc);
delay(5000);
pagecontrol1.ActivePage:=browser;
try
ovElements := WebBrowser1.OleObject.Document.all;
for i := 0 to (ovElements.Length – 1) do
if (ovElements.item(i).className = ‚_q8y0e coreSpriteMobileNavSettings _8scx2‘) then //be aware that it must be written with the exact case className
begin
try
ovElements.item(i).Click;
delay(1000);
ovElements_1 := WebBrowser1.OleObject.Document.all;
for j := 0 to (ovElements_1.Length – 1) do
begin
if (ovElements_1.item(j).classname = ‚_h74gn‘) then //be aware that it must be written with the exact case className
begin
if (ovelements_1.item(j).innertext=’Abmelden‘) then
begin
ovElements_1.item(j).Click;
end;
end;
end;
except
end;
end;
except
end;
end;

Zur Erklärung der Funktionen.
Bei Instagram existiert eine genau definierte Auslogprozedur, welche u.a. hier beschrieben wird. Dieser Weg lässt sich problemlos automatisieren, indem man via Rechtsklick -> Untersuchen eben die Buttonbezeichnungen erfasst. Der Name des „Zahnrades“ ist „_q8y0e coreSpriteMobileNavSettings _8scx2“ und der Klick wird via „ovElements.item(i).Click;“ ausgelöst. Nach der „Aktion“ öffnet sich eine Art Iframe und hier wird die weitere Vorgehensweise etwas komplizierter, da die Einstellungspunkte IMMER den Namen „_h74gn“ tragen und das Problem wird so gelöst, dass der eigentliche „Abmelden“-Klick erst dann ausgelöst wird, wenn das Listenelement mit „Abmelden“ als „innertext“ verbunden ist.
Diese Logout-Prozedur wird mit jedem Accountwechsel aktiviert und hier ist die Anweisung “ webbrowser1.Navigate(‚https://www.instagram.com/’+last_acc);“ besonders wichtig, da die Variable „last_acc“ eben den vorhergehenden Account beschreibt und nach Beendigung des Likedurchganges entsprechend befüllt wird.

Der Zeitaufwand zur Schaffung dieser Lösung betrug ca. 15 Minuten.

Update – Instagrambot, Screening der Medien auf Interaktionen

Nach einigen Überlegungen habe ich mich dazu entschieden, die ausgegliederte Instagramrechercheanwendung zu beenden und sämtliche Algorithmen in den bestehenden Bot zu überführen. Der „Bot“ kann also nicht mehr als typischer Bot begriffen werden, da diese Software nun auch über eine stabile Recherche- und Auswertungsfunktionssammlung verfügt.

[Analyse und Auswertungen der Interaktionen auf einen beliebigen (öffentlichen) Account]

Die Umsetzung der Funktionen basiert auf den Gedanken, die ich in diesem Blog unter dem Aspekt „Influencersuche“ bereits beschrieben hatte und die veröffentlichte Galerie zeigt einen Ausschnitt aus der Bedienung.
Die entwickelten Prozeduren gehen nach folgendem Muster vor:

[Datensammeln]
(a) Recherche der IDs des interessanten Accounts
(b) Download: Medienverzeichnis des interessanten Accounts
(c) Schritt-für-Schritt-Analyse der gecrawlten Medien auf die Endpoints „Likes“ und „Comments“ auf Basis der Media-ID und Erfassung der interagierenden Accounts (Username, User-ID etc.)

[Datenaufbereitung]
(a) Aufsummierung der Likes JE identifizierten Account
(b) Aufsummierung der Likesummen nach folgendem Beispielen:
– 1000 Accounts haben 1 x geliked
– 400 Accounts haben 100 x geliked
– 10 Accounts haben 300 x geliked

Datenbeispiele zu Instagramaccount aus dem Bereich „Politik“:
Hinweis:
Sämtliche sensible Daten sind in den nachfolgenden Beispieldateien selbstverständlich codiert.
Rohdaten: cl_rohdaten_codiert.xlsx
Summierte Daten: cl_sumlikeslikers_codiert.xlsx
Zusammenfassung: cl_zfg.xlsx

Die erhobenen und aufbereiteten Datensätze erlauben nun einen tieferen Blick auf die Accounts. Hierbei lassen sich Antworten auf folgende Fragen interpretieren:
(a) Existiert ein Ungleichgewicht zwischen der Followeranzahl und der Anzahl der Interagierenden?
(b) Sind die Interagierenden besonders aktiv, weniger aktiv oder selten aktiv?

Die grob beschriebene Funktion wird ab sofort in das Dienstleistungsspektrum der Wobus & Lehmann GbR eingegliedert.

Habt Ihr weitere faszinierende Ideen? Ich freue mich auf Kommentare, eMails und nette Telefonate.

[Updatenotiz] Hashtagprojekt und die weiteren Pläne

Geänderte Rahmenbedingungen und viele Gespräche mit den lieben Betatester_innen führten zu einer Umplanung der Softwareentwicklung. Der aktuelle Client wird in zwei Module aufgegliedert:

(a) Datenbankmodul
– Recherche und Auswertung der Rohdatenpakete aus dem Hashtagprojekt
– Reportings, Reportingmodule
– Textanalysemodul

(b) API-Modul
– Anbindung an die API-Endpoints (Media, User, Locations), wie bereits im Bot umgesetzt
– Screening von Accounts
– Reportings, Reportingmodule

Da die Algorithmen bereits in anderen Projekten existieren, wird der Versionswechsel relativ schnell erledigt sein und ich rechne mit einer Einführung in das Tagesgeschäft innerhalb der aktuellen Woche.

Analysesoftware für die Hashtagdatenbank, erste Screenshots

Nachfolgend die ersten Screenshots aus der Versions 0.3Beta.

Funktionsliste und ToDo für die Version 0.4Beta:
– Abschaltung der „Einzelaufnahme“ und Übertrag der Funktionen auf die jeweils gewählte Monatsdatenbank
– Häufungsentwicklungen: Wechsel vom 2-Tagmodell auf Liste mit wahlweise Vergleichsfunktion via Diagram
– Gestaltungsmodul für die Diagramme: Farben, Fonts etc.

[Notiz] Update von „Instafinal“ auf 2.0

Die nächste Version wird um die folgenden Features ergänzt werden:
(a) Zeitfensterkonfigurationen
– Liken und Interagieren auf Basis konkreter Zeiten wie Früh, Mittag, Abends, Nacht
(b) allgem. Postinganalysen bzgl. Zielgruppen
– Liken und Interagieren auf Basis ggf. vorhandener Likes der zu „belikenden“ Posts
– Liken und Interagieren auf Basis der auslesbaren Publishzeiten
Die angedachten Algorithmen und Funktionen wurden in den letzten 2 Wochen manuell durchgetestet, für „gut“ befunden und wir werden die Instagram-bezogenen Dienstleistungen kommende Woche entsprechend erweitern.

[Updatenotiz] Instagrambot – 2.0 (Beta)

Der „Bot“ ist nun komplett auf SQLite umgestellt und die nächste Versionsnummer wird folgende (neue) Funktionen umfassen:

(1) Projektmanagement
– kategoriebasiertes Liken je Account, bezogen auf zielgruppenorientierte Themenwelten
– kategoriebasiertes Liken je Account, bezogen auf Locations

(2) Locations
– Anbindung einer Locationresearchfunktion in Verbindung mit der Facebook-Places-API
– Locationgewichtung nach Posts, Themenwelten und Beliebtheit

(3) Externe Datenquellen
– Anbindung der Hashtagdatenbank zwecks Querprüfung und Tagrecherchen

(4) Monitoring, Erfolgskontrollen
– Dauerhaftes Speichern der Grunddaten (=> Abos, Abonnenten, Posts als Zahl)
– Ergebnisdarstellungen in Form von Diagrammen und PDF-Exports

Das Erkennen und Ausnutzen von Themenwelten via Instagram-Hashtags

Mit Fertiggstellung des Komplexes „Hashtaganalyse“, ergaben sich einige interessante Diskussionen mit den Betatester_innen und Kund_innen über die konkrete Identifikation von „Themenwelten“.

Eine „Themenwelt“ wäre bspw. – ganz aktuell –

WEIHNACHTEN
Die Allgemeinbildung, Sozialisation und auch der „Menschenverstand“ sagt hier natürlich klar, dass diese „Themenwelt“ verschiedene Informationen oder „Subthemen“ beinhalten könnte. Diese wären unter anderem:
– tannenbaum
– gans
– geschenke, geschenk
– xmas, christmas
– feier, feiern, frohesfest, weihnachtsfest
– u.v.m.

Diese simplen Überlegungen führen allerdings letztendlich zu einem interessanten Problem: man kann ausgehend von den eigenen Gedankengängen zu den „Themenwelten“ niemals davon ausgehen, dass eine abholbare und ansprechbare Zielgruppe ähnliche Gedanken, Emotionen und Wahrnehmungen hat. Dieses Dilemma lässt sich über den folgenden Weg lösen.

(1) Download und Speichern der Posts mit Hilfe der Instagram-API

Endpoint: https://api.instagram.com/v1/tags/{tag-name}/media/recent?access_token=ACCESS-TOKEN

Interpretationsfähige Daten aus dem Endpoint:
(a) URL des Posts
(b) verwendete Hashtags
(c) Anzahl: Likes und Comments
(d) Beschreibung, Statement
(e) Autor-ID (für Influencer-Marketing)
(f) Location, Geo-Code

(2) Auswertungen

Die erfassten Hashtags werden nun in einer Liste dargestellt und nach der Eliminierung der Duplikate ergeben sich die folgenden Funktionen
(a) Durchzählen auf die Hashtagkombinationen aus den gespeicherten Datensätze und entsprechende Gewichtung
(b) Gegenprüfung auf die Hashtagkombinationen
Die erfassten Hashtagkombinationen lassen sich über diesen Ansatz ebenfalls aufsummieren und hierüber gewichten (… wurde xyz mal verwendet …).
(c) Einbeziehung der Häufungen UND der Häufungsentwicklungen in die Themenweltenanalyse

Diese Grobskizze zur Auswertung muss natürlich in einen konkreten Algorithmus einfliessen, der letztendlich zwecks Gegenprobe die Ergebnisse den jeweiligen Verantwortlichen vorlegen muss.

Ich werde in der letzten Zeit ständig gefragt, was man denn mit den Resultaten aus solchen Analyseprozeduren anstellen kann. Es ist eigentlich recht einfach:
(a) Die gewichteten Taggruppen geben Aufschluss darüber, ob die angedachten Kampagnen „Sinn machen“.
(b) Die gewichteten Taggruppen geben in Verbindung mit der Häufungsanalyse Aufschluss darüber, ob denn angedachte Kampagnen einen Trend ausnutzen. (Häufungsentwicklungen beachten!)
(c) Die gewichteten Taggruppen liefern einen ersten Anhaltspunkt über Tags, welche beim Contentmarketing genutzt werden können.
(d) Eher spekulativ: Die gewichteten Taggruppen können als Recherche für Textideen dienen.

Der Instagram-Recherche-Komplex wird noch in diesem Jahr um die Themenweltrecherche erweitert und die Betatester_innen / Kund_innen bekommen zeitnah entsprechende Infos.

Updatenotiz – Instagramanalyse, Hashtags & Co.

Nach der Organisation der Datenbank – ich verwende übrigens „SQLite“ – haben wir uns intern zu einer Erweiterung des Analysesystems entschieden. Ein entsprechendes Update wird im Laufe der aktuellen Arbeitswoche ausgerollt und es umfasst dann:

(1) Instagram-Account-Beobachtung
– thematische Erfassung von Accounts mit schwachem Bezug zu „Influencermarketing“
– Erfassung der Grunddaten (Profil, Statement, Anzahl: Posts | Abos | Fans)
– EVENTUELL: komplettes Screening der Feeds inkl. der Beitragsauswertung nach Likes und Comments

(2) Reporting, Abfragen und das Gewinnen von Erkenntnissen aus den Datensätzen
– Orientierung an der alten Webversion
– Ausgabe: Themenwolken, je nach Abfragemodus (Wortbestandteil, genaues Wort, Zusammenhang mit bestimmten Häufungen)
– Diagramme => Häufungsentwicklungen
– Diagramme => Aufsummierung der erfassten Tags zu den Themen
– Diagramme => Accountentwicklungen auf basis der Grunddaten

Ich denke derzeit noch über ein geeignetes Modell der Abfrageübermittlung nach. Da das System hier auf einem lokalem Rechner mit Internetzugang läuft, werde ich mit hoher Wahrscheinlichkeit die Abfragen und Rückgaben der Ergebnisse via eMail einprogrammieren.

[Updatenotiz] Instagrambot – Version 1.2 BETA

Nach einigen Gesprächen rund um diese oder jene Analysemöglichkeiten zu den Accounts entschied ich mich für die Entwicklung der folgenden Funktionen:

[Statistiken]
(1) IG-Accounts
– Erfassen der Grunddaten außerhalb der API und unabhängig von den Token
– Erfassen der letzten Posts inkl. der Postsgrunddaten (Zeitstempel, Summe Likes // Comments)

(2) Aktivitäten
– Erfassen der Likes je Zeiteinheit (Tag, Stunde etc.)
– Erfassen der Themenwelten (Taggruppen, Einzeltags, Zielgruppen etc.), welche geliked wurden

[Ziele]
Beide Reportings lassen sich zusammenführen und das Ergebnis erlaubt die Diskussion folgender Fragen:
– Welche Aktivitäten „produzieren“ welche Rückläufer in Form von Followerzuwachs // Followerverlust und generelle Interaktionen auf den Accounts?
– Existieren Zusammenhänge zwischen den Aktivitäten und der Platzierung von Beiträgen unter den „beliebtesten Posts“?
Die erhobenen Daten werden u.U. mit der nächsten Version natürlich in ein reportfähiges Format exportierbar sein (Diagramme, eventuell PDF).