Adobe Analytics API 1.4

Adobe Analytics API – Introduction

Introduction to Adobe Analytics API : 1.4

This post is the introduction for the tutorial of the python module of the Adobe Analytics API (v1.4). If you land here and want to get to know how to connect to the Adobe Analytics API 2.0 you may want to go to this blog post.
In this post I will explain the logic behind this module and the spirit that drives me when I created this free API.
It will make a lot of sense then for you to understand the lying methods and functionality of that API.

Why did I create this API ?

I had the idea to create this API because I was a web analytics manager and I found that the Adobe Analytics was quite limiting for some advanced analysis I wanted to do.
At the same time, I was learning Python. I saw a good opportunity for me to connect my learning desire and to simplify the retrieval of Adobe Analytics data.

To be honest, it was not a small task (it took me around 3 months to finish the very basic version) but then I learned so much by doing this API that it really help me for most of my python work. Also it helped me to understand the underlying of a REST API and how actually Oauth authentication is. It basically put an additional layer of technicality to my profile.

Therefore I am very thankful to that experience, on how much it teaches me about development, internet, coding, etc…

What is covered by this Adobe Analytics API ?

The API is quit limited if you really think of its functionalities but I think it can be a good starting point for some person that want to go beyond the Adobe Analytics interface capabilities (who are quite enormous already).

This API has not been made to replace the interface or to challenge it, it is really an help to extract and use data on your prefer language (python).

The methods that are available :

  • Statement creation and modification : for each call to the API you need to create a statement. You can play with the Statement class in order to prepare it.
  • Retrieving elements to prepare the statement : You need to know which id to request to build your statement (evars, props, events, calculated metrics, segments). This is very useful to do for segments and calculated metrics because those have specific id that cannot be guessed.
  • Retrieving reports based on statement : This is the main purpose of this library. Possibility to retrieve reports as pandas dataframe based on your statement.
  • Retrieving reports based on report id : This method enable you to retrieve the report based on the report id that has been returned by Adobe during the process. This can be useful if you lose connection at some point or an error appear on the script.

Who can use this API ?

I designed that API to be very high level, this means that not everything that is possible to do with the API 1.4.
The good part of it is that I believe that almost everyone that has familiarity with python and Adobe Analytics can used it.

What is the architecture of this API ?

The API is built on 1 class and 3 main functions :

  • Statement class that will be explained in its own article
  • getElements that retrieve the elements needed for the statement
  • getReport that return the dataframe version of the report based on a statement
  • retrieveReport that retrieve the dataframe version of the report based on a report id

The API is using the 1.4 endpoint of Adobe Analytics. Most probably, there is going to be a 2.0 endpoint version of the API release in 2019.
Depending on the success of this API, the time & interest I have on the new one, I will update this version.

Where to find the Adobe Analytics API for Python ? 

Pretty easy, you would need to go to my github account, to the 1.4 API version.

http://github.com/pitchmuc/adobe_api_1.4

The name of the module to install is : aanalytics (for Adobe Analytics)
The set up is explained on this article : Setting up your Adobe Analytics API

On this series, you may want to read those other articles :

Leave a Reply

Your email address will not be published. Required fields are marked *