Adobe Analytics Account Usage Logs: A Checklist of Surprises & Should-Knows

A wealth of logs, a wealth of legacy

However, you may have other use cases for the account usage logs. They offer a lot more events (this list is incomplete, Adobe!) than logins and workspace views. Since the account usage logs are basically a legacy feature of AA that was made available via the API 2.0 not so long ago, the logs have a lot of legacy in them. Thus, I thought I’d make your life easier and compiled a list of things to watch out for (again, see the guide by Frederik Werner if you are interested in how to get going code-wise).

Two Adobe Analytics admins discussing whether to raise the entry bar for their trainings for advanced users.

The List of Should-Knows and Surprises

  • You can at max pull 90 days at once. I recommend even smaller packages to prevent timeouts. Especially if you are working with large accounts, getting 90 days of data can take 10 minutes or longer and may lead to timeouts. For my Google Sheets Component Manager, I use 30-day intervals.
  • Unlike regular Adobe Analytics data, logs are not deleted after your retention period (typically 25 months), so you can go a couple of years back.
  • Adobe’s login mechanisms have changed over the years. In recent times, I don’t get the “friendly auto-log-out” anymore as much, so that will have an impact on total logins. Better focus on logins, counted once per user or at least day.
  • Logs are near real-time. In my experience, they usually are there after a couple of minutes already if not sooner.
  • Use event types to make your queries efficient and fast. No need to get all the logs if you are just interested in logins (event type 2) and Workspace project views (one of the many actions subsumed under event type 23). For example, it is a lot faster to do two queries, one for type 2 and one for 23, instead of pulling all logs with one query and then filtering out 2 and 23 afterwards. And it saves you valuable memory, which is especially important in cloud-based setups.
  • As mentioned, event type 23 contains a lot of Workspace actions: View, create, update, delete, share, and potentially more. You need to look into the eventDescription column to find the necessary detail, but …
  • … unfortunately, that eventDescription column is in the language of the user who was logged, which makes it painful to put this column to use. That cost me a lot of extra time to work around.
  • The general rule is: If the user can switch to another language in the Analytics interface, the logs are also in that language. So while you can e.g. set your Experience Cloud language to Danish or Italian, there is no Danish or Italian Analytics interface (it remains in English). Thus, there are (luckily) no Danish or Italian logs (yet).
  • However, Analytics offers an interface in e.g. French, Spanish or German (with abysmal translations like “Entry Page” becoming “Eintrag Seite” (literally “‘entry into a book’ page”), or “Paid Search” becoming “gebührenpflichtige Suche” (‘fee-requiring search’, as if there were government fees on using Google!). Thus, you will have logs in these languages, aka data abnormalization at its best:
Me trying to figure out the different values for different languages…
# Removes \xa0 characters that are found in the logs in various languages  
logs_df['eventDescription'] = logs_df['eventDescription'].str.split().str.join(' ')
# The example assumes we have a logs extract that contains only logs of type 2 (logins) or 23 (Workspace Events)# Extract the Raw Event Name from the eventDescription
en = logs_df["eventDescription"].str.extract('(^[\w ]+)($|: | \- )', expand=True)
logs_df["eventName_raw"] = en[0].str.strip()
# Map to normalized Event Names
view_variants = ['Project Viewed', 'Angezeigtes Projekt', 'Projet affiché', 'Proyecto visualizado']
create_variants = ['Project Created', 'Projekt erstellt', 'Projet créé', 'Proyecto creado']

def do_map(row):
if row["eventType"] == 2: # logins can be simply recognized by eventType 2
return "login"
if row["eventName_raw"] in view_variants:
return "project_view"
if row["eventName_raw"] in create_variants:
return "project_create"
return ""
# generate the normalized event name
logs_df["eventName"] = logs_df.apply(do_map, axis=1)
# Filtering out create and view events
logs_df = logs_df[logs_df["eventName"] != ""]
regex = re.compile("=([a-z0-9]{24})( |$)")  # project IDs are always 24-char hashes

pid = logs_df["eventDescription"].str.extract(regex, expand=True)
logs_df["projectId"] = pid[0]
logs_df["projectId"] = logs_df["projectId"].fillna("")
  • Don’t expect consistency with the projects API: You would expect that a workspace that had its “created” event on January 24th would also have January 24th as the “created” date in the projects (aka Workspace) API? That is not always the case. Similar things were observed with the “modified” date (projects API) and the “update project” event (logs) not being in sync. According to Adobe support, we should rather trust the projects API in cases of doubt, since the usage logs are what they are: “legacy” (but so useful still!)
While the logs are saying this project was created on Jan 24 2022, …
… the Workspace (projects) API and interface show Jun 26 2021 as the create date.
  • A project view event may not be what you think it is. When I create a new workspace, there is only a “create” event, but no “view” event. That is not wrong, but easy to miss. To get a proxy for “relevance per Workspace”, I thus recommend taking unique login IDs per workspace with at least a create or view event.
  • Logs were lost in Feb-March 2020: See a strange dip in the data in Feb 2020? For all clients I checked, nearly all “view project” events and other Workspace-related actions (but not “create project”) seem to have been lost in February and early March of 2020.

Found anything else to note in the account usage logs? Send it to me or mention it in a comment to this post!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Lukas Oldenburg

Lukas Oldenburg

Digital Analytics Expert. Owner of dim28.ch. Creator of the Adobe Analytics Component Manager for Google Sheets: https://bit.ly/component-manager