Designed for Adobe Analytics API v2.0, the adobeanalyticsr package for the R programming language enables the data analyst to pull data from Adobe in a new way that increases productivity, efficiency, and results.
What’s the difference between Adobe Analytics API v1.4 and v2.0?
Adobe Analytics has been a powerful digital analytics tool in our corner for a long time. But the old version, Adobe Analytics API v1.4, had several limitations which prevented the analyst from really using the full power of the data in their everyday workflows. For example, v1.4 was an entirely separate way of accessing data that was unrelated to Adobe’s web interface for doing the same.
Analysis Workspace was created in 2015 and was co-developed with the v2.0 API, although the v2.0 API was not actually released for another couple of years. This means that anything you see in Analysis Workspace can be done programmatically (through R or Python, for example) with the v2.0 API.
As a more modern API, v2.0 is much faster and has much more flexibility. The analyst can now access the data faster and with the extensibility that’s demanded by the speed of business decision-making. This is because the reporting structure of the new API has been redone.
The old API was set up under a “push listen” model that required the Adobe system to add your request to a queue then process the data once the system was able to do so, which would then become available when requested. For most small requests, this took only a few seconds, but when the data requests grew larger or more complex, the process would slow down. The new model is a more straightforward “pull” method. The result is a much faster, more responsive data acquisition process that allows the analyst to process more information faster and have better visibility into how long the request should take to pull. The following illustration visualizes the two different API processes.
The new API provides an unlimited number of dimensional breakdowns, while the old version of the reporting API had a max of four dimensions that one could request at a time. If you have ever hit that data wall, you know how that feels. It’s like a flat tire on the way to an amusement park with a car full of kids: The excitement of the day is dashed by the reality of the situation.
The v1.4 API also allows the user to pull data once they have web services access set up for their account (and the client ID and client secret that comes along with that). In other words, it does not require that an Adobe Console API project be created, which is something that is required to use the v2.0 API.
The benefit of getting an Adobe Console API project set up, though, is that the user then does not need web services access set up on an account-by-account basis to pull data using the package. This difference alone adds efficiencies to the consultant’s work flow and has contributed to company data governance workflow efficiencies as well.
What’s R got to do with it?
We’ve made a decision to use R for much of our analytics (we use Python as well, but we’re not going to give it too much play in this post, which is about an R package), and lots of people ask us why. Here’s why.
R is an open-source (free) programming language that was created by and for analysts, who account for its rapidly growing community. While it has a learning curve, it also has an enormous amount of flexibility. It enables automation and streamlining of tasks that would take hours or days to do inside of Analysis Workspace.
It has much more flexible visualizations than Analysis Workspace OR Excel. The example below is a capture of a visualization from adobeanalyticsr that’s dramatically different from what can be generated in Analysis Workspace. In fact, we made this image to clarify a visual from Analysis Workspace that a client was having trouble understanding. There are no manual lines or annotations “drawn on ” this visualization—it is generated entirely with code in R, which means, if there is a need for an update of the data in the future, it will literally take a few seconds to refresh the visualization.
R also has robust traceability. As a text-based language that can work within version control platforms like Github and Bitbucket, analyses can be thoroughly documented and have updates and modifications tracked over time.
R has repeatability and reusability. For instance, below is a summary of an audit we run when ramping up with a new client or checking on the results of implementation updates with existing clients (look for a more in depth post on this soon!). The summary is from a standalone interactive file that gets automatically generated for a report suite using an R script developed using the adobeanalyticsr package. The package generates a number of visuals, but it also pushes sample data for every eVar, prop, and event into a Google Sheet. Because of the new API structure, the new audit takes a third of the time and produces better insights.
Finally, R has readily accessible statistical and predictive analytics capabilities, and it readily connects to other data sources, enabling the combining of data from within Adobe and outside of Adobe to do advanced analyses.
adobeanalyticsr—Making v2.0 Data Easily Accessible
While the new API is great, it’s not necessarily easy to use. For example, pulling a freeform table with an initial dimension that has 25 values that is then broken down by a second dimension requires 26 separate API calls (they’re fast, but that’s still 26 different calls).
Since we work with a lot of clients who need a wide variety of analysis and solutions, it was important to have the best way to perform our analysis, hence we developed the new R package, adobeanalyticsr.
The development of the R package began in late 2019 and was rigorously tested across a wide variety of client situations. Improvements were made until finally we felt it was worthy of sharing it with the data analytics community in March of 2021 (if you’re an R user, that means that’s when we pushed it to CRAN). Since then, we have almost exclusively used the new Adobe Analytics API v2.0 when analyzing Adobe Analytics data in R.
We have found that the new API simplifies and streamlines querying data and delivers several advantages, among them faster response times (averaging 1 second per api call) and more dimension breakdowns (the previous version was limited to 4, but the new API is unlimited). For analysts who are already working with Google Analytics data in R using the googleAnalyticsR package, there will be a lot of similarities!
Bottom line: In using adobanalyticsr to pull data into R, we can more quickly move from one project to another without having the lift of moving between projects. This is because we’re all working in the same platform. In addition, the capabilities of R mentioned above ensure that we can deliver better results faster the more we utilize it.
Both the v2.0 API and the R Package Continue to Evolve
The API itself has still not fully matured, so there are some capabilities that are not yet available through the API, and, as such, cannot be available through the package. These are primarily, 1.) access to various admin/configuration settings, and 2.) access to the Data Warehouse. Randy Zwitch’s RSiteCatalyst package was built on the v1.4 API and remains useful in these situations.
The adobeanalyticsr package was developed with the analyst in mind and will continue to be developed with the guiding principles of iterative, repeatable, timely analysis. New features are actively being developed and the package will continue to evolve (maintaining backward compatibility!)
We value your contributions to the process! If you have any questions or recommendations please feel free to submit an issue on the github repo. There is also a helpful resource site, https://adobeanalyticsr.com, which contains a lot more information about the different functions and detailed setup instructions. We look forward to hearing how you have been able to utilize this tool to improve your workflow and results.