tweaselORG / TrackHAR

Library for detecting tracking data transmissions from traffic in HAR format.
Creative Commons Zero v1.0 Universal
5 stars 0 forks source link

How to handle events? #37

Open baltpeter opened 9 months ago

baltpeter commented 9 months ago

Many trackers transmit events, e.g. https://de.ioam.de/tx.io (request):

{
    "application": { "bundleIdentifier": "com.netbiscuits.kicker", "bundleVersion": 637 },
    "client": {
        "osIdentifier": "android",
        "uuids": {
            "installationId": "a28557a29e01225e56aa9e1c9cbc340",
            "advertisingIdentifier": "5345f17249f9454a08b121e83838552"
        },
        "screen": { "resolution": "1080x2214", "dpi": 440, "size": 2 },
        "language": "en",
        "country": "US",
        "osVersion": "13",
        "platform": "Google,sdk_gphone_x86_64,emu64xa,google,ranchu,sdk_gphone_x86_64",
        "carrier": "T-Mobile",
        "network": 2
    },
    "library": {
        "libVersion": "2.3.2",
        "configVersion": "2021022401",
        "privacySetting": "lin",
        "offerIdentifier": "aadkicke"
    },
    "stats": { "overallDroppedEvents": 4 },
    "events": [
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282477.467,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "3110,fu_bl_socialhub"
        },
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282477.673,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "3100,fu_bl_aktuell"
        },
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282477.687,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "3100,fu_bl_aktuell"
        },
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282477.808,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "3100,fu_bl_aktuell"
        },
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282478.029,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "30001,ki_def"
        },
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282478.984,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "30001,ki_def"
        },
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282479.174,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "30001,ki_def"
        },
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282479.595,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "30001,ki_def"
        },
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282479.815,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "30001,ki_def"
        },
        {
            "identifier": "view",
            "state": "appeared",
            "timestamp": 1690282480.272,
            "network": 2,
            "consent": "010fff0c00",
            "autoConsentState": 0,
            "category": "30001,ki_def"
        }
    ],
    "protocolVersion": 1
}

We currently only have very limited ways to express such events in our data schema, mostly just through the viewedPage property. But that is of course only one possible event. Also, extracting such information from typical event representations is quite tedious.

How do we want to handle this? I doubt we'll be able to handle all possible event types, but what is the middleground we want to go for?

baltpeter commented 9 months ago

Just for future reference: The ioam events are actually documented here:

https://docs.infonline.de/infonline-measurement/en/integration/lib/iOS/Vorgaben_zum_Aufruf/#events https://docs.infonline.de/infonline-measurement/en/integration/lib/android/pseudonym/android_pseudonym_vorgaben/#events