Expand my Community achievements bar.

Applications for the 2024-2025 Adobe Analytics Champion Program are open!
SOLVED

Adobe and Power BI connector

Avatar

Level 2

I'm having problems with using the Adobe and Power BI desktop connector. I asked in the Power BI forums and was told that the issues are due to limitations from the Adobe API. I am hoping to get some answers to some questions or to get some work arounds for some issues.

1. Only a few of my segments appear in the navigator tool. I have created a few segments recently in Adobe and none of them are showing up to use as parameters. Currently I have to get the segment ID and then manually enter them into the advanced editor window.

2. Is there a row limit in the connector? I can only get around 200,000 rows of data without getting a "Table is blank" error.

3.  What are the best ways to filter data? I am attempting to use query folding to save load time and because of the reason above, but most filtering that I can currently do is happening after all the data is loaded into Power BI.

4. It appears that my TOP filter is always on, even if I do not apply anything with this parameter. Once I choose a dimension, only 10 values will turn up. I want all of the values for the dimension to show up.

If anybody could answer any or all of these questions, it would be much appreciated!

1 Accepted Solution

Avatar

Correct answer by
Level 2

Not super helpful, but here is what I know:

1. Had the same issue here too. I know the segments are specific to the report suite, and some newly created ones took a while to appear in the UI. Used the same workaround as you, directly editing the M code

2. Adobe API doesn't have a limit, but PowerBI does tend to timeout if the request is to large. I haven't found a solve here, but I do use Postman GitHub - Adobe-Experience-Cloud/analytics-1.4-apis: Documentation and helpful resources for calling ... to monitor the Queue and the estimated time to completion. I have also wrapped most of my queries into smaller ones, looping through date ranges via PowerQuery functions. Postman can also give you a list of all the segment IDs via the Segments.Get method

3. I do almost all of my filtering within the Query Editor client side. I don't think that query folding would speed up the pull, as Adobe data doesn't sit in a relational db.

4. {Cube.ApplyParameter, "Top", {50, null}} - This give the top 50 dimensions. Any value works here

View solution in original post

6 Replies

Avatar

Correct answer by
Level 2

Not super helpful, but here is what I know:

1. Had the same issue here too. I know the segments are specific to the report suite, and some newly created ones took a while to appear in the UI. Used the same workaround as you, directly editing the M code

2. Adobe API doesn't have a limit, but PowerBI does tend to timeout if the request is to large. I haven't found a solve here, but I do use Postman GitHub - Adobe-Experience-Cloud/analytics-1.4-apis: Documentation and helpful resources for calling ... to monitor the Queue and the estimated time to completion. I have also wrapped most of my queries into smaller ones, looping through date ranges via PowerQuery functions. Postman can also give you a list of all the segment IDs via the Segments.Get method

3. I do almost all of my filtering within the Query Editor client side. I don't think that query folding would speed up the pull, as Adobe data doesn't sit in a relational db.

4. {Cube.ApplyParameter, "Top", {50, null}} - This give the top 50 dimensions. Any value works here

Avatar

Level 2
Do you have an example that you could share for #2 Chris? I'd love to know how to loop through a date range of a query to create smaller requests, as my requests tends to time out from the API.

Avatar

Level 1

I have the same issue in that I'm not seeing any segments at all in the navigator tool.  Would it be possible to share the M code you used to apply known segments to your metrics?  I'm new to Power BI and haven't found any documentation for Adobe-specific M code.

Avatar

Level 2

{Cube.ApplyParameter, "Segment", {{"sdfasdf"}}}

This can be found in the advanced editor while in power query mode. The segment ID for a segment is at the end of the URL while viewing the segment in Adobe.

let

    Source = AdobeAnalytics.Cubes([HierarchicalNavigation=true]),

    #"xxxxxxxxxxxxxxl" = Source{[Name="xxxxxxxxx"]}[Data],

    xxglobaldata = #"xxxxxxxxxxx"{[Id="xxglobaldata"]}[Data],

    #"Added Items" = Cube.Transform(xxglobaldata,

        {

            {Cube.ApplyParameter, "DateRange", {#date(2018, 1, 1), #date(2018, 12, 31)}},

            {Cube.ApplyParameter, "Segment", {{"s3751_59b0261db5e1f3sdff9b8d34", "s3751_596d0cdba5bb577e470c1111","s3751_5b3f6befa5bb5727e6de1sdf"}}},

            {Cube.ApplyParameter, "Top", {700, "page"}},

            {Cube.AddAndExpandDimensionColumn, "DateGranularity", {"year", "month", "day"}, {"Date Granularity.Level 1: Year", "Date Granularity.Level 2: Month", "Date Granularity.Level 3: Day"}},

            {Cube.AddAndExpandDimensionColumn, "page", {"page"}, {"Page"}},

            {Cube.AddMeasureColumn, "Visits", "visits"}

        }),

       #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Added Items", {{"Date Granularity.Level 2: Month", type text}, {"Date Granularity.Level 3: Day", type text}, {"Date Granularity.Level 1: Year", type text}}, "en-US"),{"Date Granularity.Level 2: Month", "Date Granularity.Level 3: Day", "Date Granularity.Level 1: Year"},Combiner.CombineTextByDelimiter("/", QuoteStyle.None),"Date"),

    #"Changed Type" = Table.TransformColumnTypes(#"Merged Columns",{{"Date", type date}})

in

    #"Changed Type"

Avatar

Level 1

Great work-around solution to this strange issue! How do you look up the Segment ID?

Avatar

Level 1

Hello, i would like to know that too. My problem is that i have different ID's in Adobe and Power BI. If i open a segment in Adobe and look for the end url the segment id is different then the one that is imported in Power BI. Unfortunately i am not an Adobe Admin to make a get id using the API. Do you know why this is happening? Thanks