Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
f80d3b87
Commit
f80d3b87
authored
Apr 14, 2014
by
Renzo Lucioni
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #3302 from edx/renzo/analytics-improvements
Add more granular pageview tracking, update Segment.io snippet
parents
ca14fba0
a57a6280
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
5 deletions
+26
-5
lms/templates/widgets/segment-io.html
+26
-5
No files found.
lms/templates/widgets/segment-io.html
View file @
f80d3b87
...
...
@@ -6,15 +6,36 @@
<
%
active_flags =
" + "
.
join
(
waffle
.
get_flags
(
request
))
%
>
<script
type=
"text/javascript"
>
var
analytics
=
analytics
||
[];
analytics
.
load
=
function
(
e
){
var
t
=
document
.
createElement
(
"script"
);
t
.
type
=
"text/javascript"
,
t
.
async
=!
0
,
t
.
src
=
(
"https:"
===
document
.
location
.
protocol
?
"https://"
:
"http://"
)
+
"d2dq2ahtl5zl1z.cloudfront.net/analytics.js/v1/"
+
e
+
"/analytics.min.js"
;
var
n
=
document
.
getElementsByTagName
(
"script"
)[
0
];
n
.
parentNode
.
insertBefore
(
t
,
n
);
var
r
=
function
(
e
){
return
function
(){
analytics
.
push
([
e
].
concat
(
Array
.
prototype
.
slice
.
call
(
arguments
,
0
)))}},
i
=
[
"identify"
,
"track"
,
"trackLink"
,
"trackForm"
,
"trackClick"
,
"trackSubmit"
,
"pageview"
,
"ab"
,
"alias"
,
"ready"
];
for
(
var
s
=
0
;
s
<
i
.
length
;
s
++
)
analytics
[
i
[
s
]]
=
r
(
i
[
s
])};
analytics
.
load
(
"${ settings.SEGMENT_IO_LMS_KEY }"
);
// Asynchronously load Segment.io's analytics.js library
window
.
analytics
||
(
window
.
analytics
=
[]),
window
.
analytics
.
methods
=
[
"identify"
,
"track"
,
"trackLink"
,
"trackForm"
,
"trackClick"
,
"trackSubmit"
,
"page"
,
"pageview"
,
"ab"
,
"alias"
,
"ready"
,
"group"
,
"on"
,
"once"
,
"off"
],
window
.
analytics
.
factory
=
function
(
t
){
return
function
(){
var
a
=
Array
.
prototype
.
slice
.
call
(
arguments
);
return
a
.
unshift
(
t
),
window
.
analytics
.
push
(
a
),
window
.
analytics
}};
for
(
var
i
=
0
;
i
<
window
.
analytics
.
methods
.
length
;
i
++
){
var
method
=
window
.
analytics
.
methods
[
i
];
window
.
analytics
[
method
]
=
window
.
analytics
.
factory
(
method
)}
window
.
analytics
.
load
=
function
(
t
){
var
a
=
document
.
createElement
(
"script"
);
a
.
type
=
"text/javascript"
,
a
.
async
=!
0
,
a
.
src
=
(
"https:"
===
document
.
location
.
protocol
?
"https://"
:
"http://"
)
+
"d2dq2ahtl5zl1z.cloudfront.net/analytics.js/v1/"
+
t
+
"/analytics.min.js"
;
var
n
=
document
.
getElementsByTagName
(
"script"
)[
0
];
n
.
parentNode
.
insertBefore
(
a
,
n
)},
window
.
analytics
.
SNIPPET_VERSION
=
"2.0.8"
,
window
.
analytics
.
load
(
"${ settings.SEGMENT_IO_LMS_KEY }"
);
// Get current page URL and pull out the path
path
=
window
.
location
.
href
.
split
(
"/"
)[
3
]
// Match on the current path and fire the appropriate pageview event
if
(
path
==
"register"
)
{
// Registration page viewed
window
.
analytics
.
page
(
"Registration"
);
}
else
if
(
path
==
"login"
)
{
// Login page viewed
window
.
analytics
.
page
(
"Login"
);
}
else
if
(
path
==
"dashboard"
)
{
// Dashboard viewed
window
.
analytics
.
page
(
"Dashboard"
);
}
else
{
// This event serves as a catch-all, firing when any other page is viewed
window
.
analytics
.
page
(
"Other"
);
}
%
if
user
.
is_authenticated
():
analytics
.
identify
(
"${ user.id }"
,
{
email
:
"${ user.email }"
,
username
:
"${ user.username }"
,
"Active Flags"
:
"${ active_flags }"
,
"Registered"
:
true
,
email
:
"${ user.email }"
,
username
:
"${ user.username }"
,
// Count the number of courses in which the user is currently enrolled
"Enrollment Count"
:
$
{
sum
(
1
for
course
in
user
.
courseenrollment_set
.
values
()
if
course
[
'is_active'
]
==
True
)
},
"Active Flags"
:
"${ active_flags }"
,
});
%
endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment