Expand my Community achievements bar.

Join us January 15th for an AMA with Champion Achaia Walton, who will be talking about her article on Event-Based Reporting and Measuring Content Groups!
SOLVED

Adobe Power Bi Connector vs Adobe Analytics API

Avatar

Level 2

Hello to everyone,

I am trying to extract data from Adobe Analytics in Power BI Desktop and I have to make a comparison between Adobe Analytics Power Bi Connector and Adobe Analytics API 2.0. Since I'm not an expert, I need some advice on which one could be the best. Here my first impression:

  • Adobe Analytics Power Bi Connector: I tried using 2.0 (beta) version but I found it really slow and laggy. Specifically:
    • Extracting less than 1000 row (with 2 dimension and 2 measures), after two timeout errors, took around 15 minutes. 
    • I cannot set "Date granularity" from navigator menu because I encounter the error "Unexpected error: String was not recognized as a valid DateTime."
    • It's not possible to retrieve Calculated Metrics (I didn't found a way to do but I could be wrong)  I just didn't have the right permission to retrieve calculated metrics
  • Adobe Analytics API 2.0: I used python with JWT Authentication. Specifically:
    • I extracted data from one of my report suite using Report Endpoint and I found it quite easy and fast comparing to PBI connector.
    • Enable debugging mode helped me match the data showed in the Adobe Dashboards, including Calculated Metrics (!)
    • I have to set up a DB to store data from API calls

Can someone with more Hands-on experience help me integrate/validate this list or suggest me if there's another option?

 

Thank you!

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor and Adobe Champion

While I don't use either of these options much, here are my thoughts:

 

1. Power BI

From talking with Adobe people, I know that the Power BI Connector is more on the Microsoft side of things, than on Adobe's.... so if there are bugs. the responsibility to fix them is on Microsoft to do so... 

 

2. Adobe API

This is Adobe's primary interface for content... in fact, Workspace is built entirely using the API. So anything you can pull with Workspace, you can pull with the API. This means that you have a very powerful tool at your disposal. 

 

You are right, you need a database ready to receive the data.

 

There is another option for getting data out:

 

3. Raw Data Feeds

Our organization uses this... and it comes with it's own challenges.. The Raw Data is exactly what it sounds like... every row of data that Adobe has recorded is sent in this feed... so you not only have to have a database, you also need a place to receive the files, have an ETL process to add these to a landing zone, but they you need to also process that data, using the "Exclude_Hit" field to remove rows that shouldn't be included, and use logic to detect Visitors, Visits, etc...

 

The plus side of this solution is that complex logic that you can't do in Workspace, can be done through SQL. But it's quite a lift to get this solution ready for use...

 

 

Right now, despite the fact that my org uses Raw Data; for someone starting this process, I would recommend starting with the API.. it's basically middle of the road... it's direct access to data (and it's been processed by Adobe already).

If you are looking to set up a true Data Lake, then option 3 is likely the best... but it's a steep learning curve and is going to be a big project to get underway.

 

 

 

Side Note: I will put it this way... the one half of our organization was using Raw Data Feeds when the two sides merged and I took over Analytics for both sides... I noticed many issues in their process and it took years to get that process streamlined.... We are still working on a better way to process out s.products data (to be fair, our s.products usage is more complex than most people... we use it for our subscription purchase process.. but also for multiple other uses, as this is the only dimension that allows us to stitch merchandising events and eVars to give content to individual items....)

View solution in original post

5 Replies

Avatar

Correct answer by
Community Advisor and Adobe Champion

While I don't use either of these options much, here are my thoughts:

 

1. Power BI

From talking with Adobe people, I know that the Power BI Connector is more on the Microsoft side of things, than on Adobe's.... so if there are bugs. the responsibility to fix them is on Microsoft to do so... 

 

2. Adobe API

This is Adobe's primary interface for content... in fact, Workspace is built entirely using the API. So anything you can pull with Workspace, you can pull with the API. This means that you have a very powerful tool at your disposal. 

 

You are right, you need a database ready to receive the data.

 

There is another option for getting data out:

 

3. Raw Data Feeds

Our organization uses this... and it comes with it's own challenges.. The Raw Data is exactly what it sounds like... every row of data that Adobe has recorded is sent in this feed... so you not only have to have a database, you also need a place to receive the files, have an ETL process to add these to a landing zone, but they you need to also process that data, using the "Exclude_Hit" field to remove rows that shouldn't be included, and use logic to detect Visitors, Visits, etc...

 

The plus side of this solution is that complex logic that you can't do in Workspace, can be done through SQL. But it's quite a lift to get this solution ready for use...

 

 

Right now, despite the fact that my org uses Raw Data; for someone starting this process, I would recommend starting with the API.. it's basically middle of the road... it's direct access to data (and it's been processed by Adobe already).

If you are looking to set up a true Data Lake, then option 3 is likely the best... but it's a steep learning curve and is going to be a big project to get underway.

 

 

 

Side Note: I will put it this way... the one half of our organization was using Raw Data Feeds when the two sides merged and I took over Analytics for both sides... I noticed many issues in their process and it took years to get that process streamlined.... We are still working on a better way to process out s.products data (to be fair, our s.products usage is more complex than most people... we use it for our subscription purchase process.. but also for multiple other uses, as this is the only dimension that allows us to stitch merchandising events and eVars to give content to individual items....)

Avatar

Level 2

Thank you so much for sharing you experience! Probably using Raw Data feed is not an option since they still want to use the existent Adobe Dashboards and Power BI would be just a plus. 

I guess I'll use the API, it allows us more flexibility in extracting and manipulating data.

 

Thanks again

 

 

Avatar

Community Advisor

Another important point to consider is that using the Adobe Analytics API 2.0, you can automate the data extraction process, and even schedule it to run at specified intervals. This can be a huge benefit for reporting needs that require data to be updated regularly.

Remember, you can also use a mix of both methods if that suits your requirements. For example, you can use the Power BI Connector for simple, small-scale reports and use the API for more complex data pulls.

Hope this helps! Please let me know if you have further questions.

Avatar

Level 2

Thank you for your reply! I have a doubt, wouldn't I get the same result by using the connector and scheduling the dashboard from the Power Bi Service?

I tried making API Calls to report endpoint but I have some issue writing the json for retrieve data with more than one dimension, for example:Screenshot 2023-05-20 100238.png

I used the following json but it only returns this data:

Screenshot 2023-05-20 101142.png

 

{
"rsid": ...,
"globalFilters": ...
"metricContainer": {
    "metrics": [
        {
            "columnId": "0",
            "id": "metrics/visits",
            "sort": "desc",
            "filters": [
                "0"
            ]
        
    ],
    "metricFilters": [
        {
            "id": "0",
            "type": "breakdown",
            "dimension": "variables/channel",
        }
    ]
},
"dimension": "variables/product",
"settings": ...,
}

 

Should I add some other parameters?

Avatar

Community Advisor and Adobe Champion

There is a cool trick that not many people know about...

 

If you turn on the debugger in Workspace:

Jennifer_Dungan_0-1684602170352.png

 

 

It will add a new icon to your freeform visualizations:

Jennifer_Dungan_2-1684602224023.png

 

Then when you click on it, it will give you some options, choose the freeform table:

Jennifer_Dungan_1-1684602205616.png

 

Then it will present timestamps:

Jennifer_Dungan_3-1684602280361.png

 

 

When you choose this, it will open a page showing the API call that was used to retrieve the data in multiple formats:

JSON, CURL, etc

 

So if you build out the table you want, you can copy the API call(s) used to build it (then make minor tweaks as needed)

 

Note: I say "calls" since I believe if you have multiple breakdowns then you need to run multiple calls... but your sample doesn't look complicated.. a single API call should do.

 

But, this is a really quick and easy way to get started with your API calls.. rather than trying to write from scratch! For the record thought, I think the missing piece might be something like a dateRange (so it knows how far to go back,.. it may be defaulting to "last month" in its absence.. also, I think there is a "limit" setting (which I think 0 means no limit?)...

 

 

Also, if you haven't found it, there is this documentation which allows allows you to play with APIs from a website view and see what the results will be: https://developer.adobe.com/analytics-apis/docs/2.0/apis/ 

(you can also use a tool called Postman). I am not sure what you have been trying, so I wanted to give you some more options.