Akaris: Zeittracking für externe Inhalte - Wie würdet Ihr das machen?

Hallo zusammen,

ich hoffe Ihr könnt mir evtl. weiterhelfen da derzeit mein Horizont einfach erschöpft ist von den Ideen her.

Folgende Thematik:
Wir betreiben ein eLearning Portal. Innerhalb dieses Portales werden z.B. folgende Inhalte angeboten Artikel (Webseiten), Podcasts (direkte Links), Videos (teilweise ext. Webseiten teilw. interne), eLearning Programme (alle webbasiert)...

So - logischerweise brauche bzw. haben wir ein Tracking für die Nutzung dieser Komponenten. Derzeit wird ein Kurs aus unserem Portal in einem neuen Fenster als Frameset geöffnet (Kurs kann auch ein Artikel, Podcast oder was auch immer sein). Dieser Frameset besteht aus dem "eigentlichen Inhalt" + einem "blinden Frame" welcher per Script ein Cookie auf dem Portal  aktualisiert. Bei Beenden des Kursfensters wird dann der letzte Trackingstand übernommen und wieder per Script in die Datenbank eingetragen ...
Eigentlich funktionier das ja - wenn man nicht die User hätte - die aus welchen Gründen auch immer auf die Idee kommen z.b. unser Portal im Hintergrund zu schliessen. Daduch kann dann z.b. die Speicherfunktion (Script) nicht mehr ausgeführt werden und das Tracking geht somit verloren.

Wir müssen leider die Inhalte jedesmal mit dem neuen Fenster öffnen da die Inhalte sich nicht immer innerhalb unseres Portales abbilden lassen würden (z.b. Iframe oder halt in ein DIV laden).

Ich frage mich jetzt also wie man so ein Zeit-Usage Tracking sinnvoll umsetzen kann?

Wir würdet ihr das Tracking umsetzen - gerade auch für "externe Inhalt" die ihr nicht innerhalb Eurer Seite aufmachen könnt?

Im Moment habe ich mir damit beholfen - unsere Portalseite mit einer
ajax function zu überblenden (bei Kursstart) damit die User diese nicht
schliessen bzw. andere Funktionen der Seite gleichzeitig benutzen.
Das ist aber halt noch nicht das gelbe vom Ei :-(

Würdet ihr z.B. wie folgt verfahren?

  1. Öffnen des Kursfensters -> Timestamp DB (Startzeit)
  2. Alle 30 Sekunden -> Timestamp DB Usage
  3. Falls kein neuer Timestamp innerhalb dieser 30 Sekunden kommt die Session berechnen und die Daten eintragen lassen?

Das wäre meiner Meinung nach das logischste - nur was passiert bei dieser Aktion wenn man wirklich Massen von Usern hat? Sagen wir mal über 100.000 ??

Wie Ihr seht Fragen über Fragen und etwas Verzweiflung.
Ich wäre echt froh wenn mir jemand mit Erfahrung aus diesem Bereich einen heissen Tip geben könnte :-)

Vielen Dank
Gruss Ralf