Skip to content

Commit eea4c9e

Browse files
committed
Minor improvements to RunFunnelReportSample
1 parent 7983a8a commit eea4c9e

1 file changed

Lines changed: 90 additions & 79 deletions

File tree

google-analytics-data/src/main/java/com/example/analytics/RunFunnelReportSample.java

Lines changed: 90 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.google.analytics.data.v1alpha.DateRange;
2222
import com.google.analytics.data.v1alpha.Dimension;
2323
import com.google.analytics.data.v1alpha.DimensionHeader;
24-
import com.google.analytics.data.v1alpha.Funnel;
2524
import com.google.analytics.data.v1alpha.FunnelBreakdown;
2625
import com.google.analytics.data.v1alpha.FunnelEventFilter;
2726
import com.google.analytics.data.v1alpha.FunnelFieldFilter;
@@ -82,85 +81,97 @@ static void sampleRunFunnelReport(String propertyId) throws Exception {
8281
// Using a default constructor instructs the client to use the credentials
8382
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
8483
try (AlphaAnalyticsDataClient analyticsData = AlphaAnalyticsDataClient.create()) {
85-
RunFunnelReportRequest.Builder requestBuilder = RunFunnelReportRequest.newBuilder();
84+
RunFunnelReportRequest.Builder requestBuilder =
85+
RunFunnelReportRequest.newBuilder()
86+
.setProperty("properties/" + propertyId)
87+
.addDateRanges(DateRange.newBuilder().setStartDate("30daysAgo").setEndDate("today"))
88+
.setFunnelBreakdown(
89+
FunnelBreakdown.newBuilder()
90+
.setBreakdownDimension(Dimension.newBuilder().setName("deviceCategory")));
91+
92+
// Adds each step of the funnel.
8693
requestBuilder
87-
.setProperty("properties/" + propertyId)
88-
.addDateRanges(DateRange.newBuilder().setStartDate("30daysAgo").setEndDate("today"))
89-
.setFunnelBreakdown(
90-
FunnelBreakdown.newBuilder()
91-
.setBreakdownDimension(Dimension.newBuilder().setName("deviceCategory")));
92-
Funnel.Builder funnelBuilder = requestBuilder.getFunnelBuilder();
93-
funnelBuilder.addSteps(
94-
FunnelStep.newBuilder()
95-
.setName("First open/visit")
96-
.setFilterExpression(
97-
FunnelFilterExpression.newBuilder()
98-
.setOrGroup(
99-
FunnelFilterExpressionList.newBuilder()
100-
.addExpressions(
101-
FunnelFilterExpression.newBuilder()
102-
.setFunnelEventFilter(
103-
FunnelEventFilter.newBuilder()
104-
.setEventName("first_open")))
105-
.addExpressions(
106-
FunnelFilterExpression.newBuilder()
107-
.setFunnelEventFilter(
108-
FunnelEventFilter.newBuilder()
109-
.setEventName("first_visit"))))));
110-
funnelBuilder.addSteps(
111-
FunnelStep.newBuilder()
112-
.setName("Organic visitors")
113-
.setFilterExpression(
114-
FunnelFilterExpression.newBuilder()
115-
.setFunnelFieldFilter(
116-
FunnelFieldFilter.newBuilder()
117-
.setFieldName("firstUserMedium")
118-
.setStringFilter(
119-
StringFilter.newBuilder()
120-
.setMatchType(MatchType.CONTAINS)
121-
.setCaseSensitive(false)
122-
.setValue("organic")))));
123-
funnelBuilder.addSteps(
124-
FunnelStep.newBuilder()
125-
.setName("Session start")
126-
.setFilterExpression(
127-
FunnelFilterExpression.newBuilder()
128-
.setFunnelEventFilter(
129-
FunnelEventFilter.newBuilder().setEventName("session_start"))));
130-
131-
funnelBuilder.addSteps(
132-
FunnelStep.newBuilder()
133-
.setName("Screen/Page view")
134-
.setFilterExpression(
135-
FunnelFilterExpression.newBuilder()
136-
.setOrGroup(
137-
FunnelFilterExpressionList.newBuilder()
138-
.addExpressions(
139-
FunnelFilterExpression.newBuilder()
140-
.setFunnelEventFilter(
141-
FunnelEventFilter.newBuilder()
142-
.setEventName("screen_view")))
143-
.addExpressions(
144-
FunnelFilterExpression.newBuilder()
145-
.setFunnelEventFilter(
146-
FunnelEventFilter.newBuilder()
147-
.setEventName("page_view"))))));
148-
funnelBuilder.addSteps(
149-
FunnelStep.newBuilder()
150-
.setName("Purchase")
151-
.setFilterExpression(
152-
FunnelFilterExpression.newBuilder()
153-
.setOrGroup(
154-
FunnelFilterExpressionList.newBuilder()
155-
.addExpressions(
156-
FunnelFilterExpression.newBuilder()
157-
.setFunnelEventFilter(
158-
FunnelEventFilter.newBuilder().setEventName("purchase")))
159-
.addExpressions(
160-
FunnelFilterExpression.newBuilder()
161-
.setFunnelEventFilter(
162-
FunnelEventFilter.newBuilder()
163-
.setEventName("in_app_purchase"))))));
94+
.getFunnelBuilder()
95+
.addSteps(
96+
FunnelStep.newBuilder()
97+
.setName("First open/visit")
98+
.setFilterExpression(
99+
FunnelFilterExpression.newBuilder()
100+
.setOrGroup(
101+
FunnelFilterExpressionList.newBuilder()
102+
.addExpressions(
103+
FunnelFilterExpression.newBuilder()
104+
.setFunnelEventFilter(
105+
FunnelEventFilter.newBuilder()
106+
.setEventName("first_open")))
107+
.addExpressions(
108+
FunnelFilterExpression.newBuilder()
109+
.setFunnelEventFilter(
110+
FunnelEventFilter.newBuilder()
111+
.setEventName("first_visit"))))));
112+
requestBuilder
113+
.getFunnelBuilder()
114+
.addSteps(
115+
FunnelStep.newBuilder()
116+
.setName("Organic visitors")
117+
.setFilterExpression(
118+
FunnelFilterExpression.newBuilder()
119+
.setFunnelFieldFilter(
120+
FunnelFieldFilter.newBuilder()
121+
.setFieldName("firstUserMedium")
122+
.setStringFilter(
123+
StringFilter.newBuilder()
124+
.setMatchType(MatchType.CONTAINS)
125+
.setCaseSensitive(false)
126+
.setValue("organic")))));
127+
requestBuilder
128+
.getFunnelBuilder()
129+
.addSteps(
130+
FunnelStep.newBuilder()
131+
.setName("Session start")
132+
.setFilterExpression(
133+
FunnelFilterExpression.newBuilder()
134+
.setFunnelEventFilter(
135+
FunnelEventFilter.newBuilder().setEventName("session_start"))));
136+
137+
requestBuilder
138+
.getFunnelBuilder()
139+
.addSteps(
140+
FunnelStep.newBuilder()
141+
.setName("Screen/Page view")
142+
.setFilterExpression(
143+
FunnelFilterExpression.newBuilder()
144+
.setOrGroup(
145+
FunnelFilterExpressionList.newBuilder()
146+
.addExpressions(
147+
FunnelFilterExpression.newBuilder()
148+
.setFunnelEventFilter(
149+
FunnelEventFilter.newBuilder()
150+
.setEventName("screen_view")))
151+
.addExpressions(
152+
FunnelFilterExpression.newBuilder()
153+
.setFunnelEventFilter(
154+
FunnelEventFilter.newBuilder()
155+
.setEventName("page_view"))))));
156+
requestBuilder
157+
.getFunnelBuilder()
158+
.addSteps(
159+
FunnelStep.newBuilder()
160+
.setName("Purchase")
161+
.setFilterExpression(
162+
FunnelFilterExpression.newBuilder()
163+
.setOrGroup(
164+
FunnelFilterExpressionList.newBuilder()
165+
.addExpressions(
166+
FunnelFilterExpression.newBuilder()
167+
.setFunnelEventFilter(
168+
FunnelEventFilter.newBuilder()
169+
.setEventName("purchase")))
170+
.addExpressions(
171+
FunnelFilterExpression.newBuilder()
172+
.setFunnelEventFilter(
173+
FunnelEventFilter.newBuilder()
174+
.setEventName("in_app_purchase"))))));
164175

165176
// Make the request.
166177
RunFunnelReportResponse response = analyticsData.runFunnelReport(requestBuilder.build());

0 commit comments

Comments
 (0)