Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
jlie
Advocate I
Advocate I

Calculate One-Time Visitors from Google Analytics Session Data

I have a data table that contains single Sessions and the Dimension ga:userType, that states if the Session is the first session of the identified user or a subsequent one ("New Visitor" vs. "Returning Visitor"). The ga:clientId dimension tells me the actual user, how ga identifies them.

 

I am now trying to create a measure, that calculates the number of one-time visitors vs. the number of returning visitors: It should therefore aggregate the distinct Client Ids for all the Users that only have a "New Visitor" session and no subsequent "Returning Visitor" Sessions. 

 

How could I accomplish that? Thanks in advance!

1 ACCEPTED SOLUTION

Ok, i figuered it out:

 

I need two measures on the table AnonymousSessions

Returning Visitors = 
CALCULATE(
    DISTINCTCOUNT(AnonymousSessions[Client Id]);
    AnonymousSessions[User Type]="Returning Visitor"
)

OneTimeVisitors = 
    DISTINCTCOUNT(AnonymousSessions[Client Id]) - [Returning Visitors]

This yields the correct data; I can now slice/dice the sessions by channel or date and see 100% accurate the returning and one-time visitors in the respective context.

View solution in original post

4 REPLIES 4
v-yuezhe-msft
Employee
Employee

Hi @jlie,

Could you please share sample data of you table and post expected result here?

Assume that you have a data table as follows.
1.PNG

You can create two measures.
number of one-time visitors = CALCULATE(COUNTA('Session'[ClientID]),FILTER('Session','Session'[UserType]="New visitor"))
number of returning visitors = CALCULATE(COUNTA('Session'[ClientID]),FILTER('Session','Session'[UserType]="Returning visitor"))

2.PNG

Thanks,
Lydia Zhang

Community Support Team _ Lydia Zhang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

 

new-returning-visitors-per-session.PNG

 

Of course, yes. So this is the relevant structure of my table. Of course, in reality the ClientIds are the GA Client Ids and the SessionID is calculated from Client-Id and the Session-Iterator. User Type is nothing more than a if [session count] = 1 then "new" else "returning"; wether I import it as a dimension from Google Analytics or calculate it myself.

 

My expected Result:

The "One Time Visitors" Measure counts Clients C and D, and therefore gives me a 2.

A "Recurring Visitors" Measure counts Clients A and B, and therefore also gives me the number 2.

 

I think I need some nested Calculations, because the formula needs to evaluate for every single Client-Id, if it is "New Visitor", if there are subsequent Sessions with "Returning Visitor" and only then make a DISTINCCOUNT on the [Client Id] Column.

Ok, i figuered it out:

 

I need two measures on the table AnonymousSessions

Returning Visitors = 
CALCULATE(
    DISTINCTCOUNT(AnonymousSessions[Client Id]);
    AnonymousSessions[User Type]="Returning Visitor"
)

OneTimeVisitors = 
    DISTINCTCOUNT(AnonymousSessions[Client Id]) - [Returning Visitors]

This yields the correct data; I can now slice/dice the sessions by channel or date and see 100% accurate the returning and one-time visitors in the respective context.

Hello,

I am using powerBI Desktop and using the GA connector provided by PBI. How do you get the client ID and the Session Id? I don't see them in the data. Thank you.

Fred

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.