facebook_app 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +6 -1
- data/app/controllers/facebook_app/external_trackings_controller.rb +1 -1
- data/app/controllers/facebook_app/facebook_app_controller.rb +8 -6
- data/app/controllers/facebook_app/oauth_controller.rb +3 -3
- data/app/models/facebook_app/conversion.rb +13 -10
- data/app/models/facebook_app/conversion_summary.rb +8 -0
- data/app/views/facebook_app/admin/_spamalytics.html.slim +2 -0
- data/lib/facebook_app/version.rb +1 -1
- metadata +2 -2
data/README.textile
CHANGED
@@ -34,7 +34,12 @@ Controller
|
|
34
34
|
before_filter :ensure_logged_in, :load_graph
|
35
35
|
|
36
36
|
begin_tracking
|
37
|
-
(start tracking at stage 1)
|
37
|
+
(start tracking at stage 1), e.g. splash_choose page
|
38
|
+
|
39
|
+
After redirect your app must match GET "logged_in" and connect it to something
|
40
|
+
|
41
|
+
|
42
|
+
track_conversion(:conversion_event)
|
38
43
|
|
39
44
|
login_as_app
|
40
45
|
(you can log in as the app or as a user)
|
@@ -22,18 +22,20 @@ module FacebookApp
|
|
22
22
|
needs_login = ! (session[:at] && session[:oauth_expiry] && session[:oauth_expiry].to_i > Time.now.utc.to_i )
|
23
23
|
if needs_login
|
24
24
|
# tracking is only relevant for users who will log in
|
25
|
-
|
25
|
+
track_conversion(:see_permissions_dialogue)
|
26
26
|
session[:oauth_expiry] = nil
|
27
27
|
redirect_to oauth_code_link
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
def begin_tracking
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
Conversion.find_or_create(cookies[:conversion_id],params[:marketing_mode])
|
33
|
+
end
|
34
|
+
|
35
|
+
def track_conversion(conversion_state)
|
36
|
+
Conversion.track(cookies[:conversion_id], conversion_state)
|
37
|
+
rescue
|
38
|
+
|
37
39
|
end
|
38
40
|
|
39
41
|
# loads the graph from the users point of view
|
@@ -2,7 +2,7 @@ module FacebookApp
|
|
2
2
|
class OauthController < FacebookAppController
|
3
3
|
|
4
4
|
def denied
|
5
|
-
|
5
|
+
track_conversion(:deny_permissions)
|
6
6
|
client_side_redirect= %Q{
|
7
7
|
<script>
|
8
8
|
top.location="#{identified_tracking_link}";
|
@@ -22,11 +22,11 @@ module FacebookApp
|
|
22
22
|
session[:oauth_expiry] = token_expiration_time
|
23
23
|
|
24
24
|
if didnt_grant_extended_permissions
|
25
|
-
|
25
|
+
track_conversion(:deny_extended_permissions)
|
26
26
|
session[:at] = nil
|
27
27
|
redirect_to facebook_app.identified_path
|
28
28
|
else
|
29
|
-
|
29
|
+
track_conversion(:accept_permissions)
|
30
30
|
redirect_to logged_in_url
|
31
31
|
end
|
32
32
|
end
|
@@ -2,12 +2,15 @@ module FacebookApp
|
|
2
2
|
class Conversion < ActiveRecord::Base
|
3
3
|
|
4
4
|
set_table_name "facebook_app_conversions"
|
5
|
-
state_machine :state, :initial => :
|
5
|
+
state_machine :state, :initial => :splash_page do
|
6
6
|
|
7
7
|
# after_transition :on => :accept_permissions, :do => :record_permissions_acceptance
|
8
8
|
# after_transition :on => :deny_permissions, :do => :record_permissions_denial
|
9
9
|
# after_transition :on => :generated_infographic, :do => :record_infographic_generation
|
10
|
-
|
10
|
+
|
11
|
+
event :see_permissions_dialogue do
|
12
|
+
transition :splash_page => :permissions_dialogue
|
13
|
+
end
|
11
14
|
|
12
15
|
event :deny_permissions do
|
13
16
|
transition :permissions_dialogue => :denied_permissions
|
@@ -18,11 +21,11 @@ module FacebookApp
|
|
18
21
|
end
|
19
22
|
|
20
23
|
event :accept_permissions do
|
21
|
-
transition :permissions_dialogue => :installed
|
24
|
+
transition [:deny_permissions, :denied_extended_permissions, :permissions_dialogue] => :installed
|
22
25
|
end
|
23
26
|
|
24
27
|
event :generate_infographic do
|
25
|
-
transition [:
|
28
|
+
transition [:installed] => :generated_infographic
|
26
29
|
end
|
27
30
|
|
28
31
|
event :sign_up_on_identified do
|
@@ -30,16 +33,16 @@ module FacebookApp
|
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
33
|
-
def self.find_or_create(conversion_id)
|
36
|
+
def self.find_or_create(conversion_id, marketing_mode)
|
34
37
|
find(conversion_id)
|
35
38
|
rescue
|
36
|
-
create
|
39
|
+
create(:marketing_mode => marketing_mode)
|
37
40
|
end
|
38
41
|
|
39
|
-
def self.track(conversion_id,
|
40
|
-
|
41
|
-
conversion.send(
|
42
|
-
conversion
|
42
|
+
def self.track(conversion_id, conversion_event=nil, marketing_mode=nil)
|
43
|
+
find_or_create(conversion_id, marketing_mode)
|
44
|
+
conversion.send(conversion_event) unless conversion_event.nil?
|
45
|
+
return conversion
|
43
46
|
end
|
44
47
|
|
45
48
|
def recent?
|
@@ -5,6 +5,10 @@ module FacebookApp
|
|
5
5
|
(send(state, :viral).to_i.fdiv(send(state, :advertising).to_i)*100).to_s
|
6
6
|
end
|
7
7
|
|
8
|
+
def splash_state_count(marketing_mode)
|
9
|
+
state_count(:splash_page, marketing_mode).to_s
|
10
|
+
end
|
11
|
+
|
8
12
|
def permissions_state_count(marketing_mode)
|
9
13
|
state_count(:permissions_dialogue, marketing_mode).to_s
|
10
14
|
end
|
@@ -45,10 +49,14 @@ module FacebookApp
|
|
45
49
|
# as per state machine
|
46
50
|
def state_fragment(state_to_calculate)
|
47
51
|
case state_to_calculate
|
52
|
+
when :splash_page
|
53
|
+
"state in ('splash_page', 'generated_infographic', 'denied_permissions', 'denied_extended_permissions', 'installed', 'signed_up_for_identified', 'permissions_dialogue')"
|
48
54
|
when :permissions_dialogue
|
49
55
|
"state in ('generated_infographic', 'denied_permissions', 'denied_extended_permissions', 'installed', 'signed_up_for_identified', 'permissions_dialogue')"
|
50
56
|
when :installed
|
51
57
|
"state in ('installed', 'generated_infographic', 'signed_up_for_identified')"
|
58
|
+
when :generated_infographic
|
59
|
+
"state in ('generated_infographic', 'signed_up_for_identified')"
|
52
60
|
else
|
53
61
|
"state = '#{state_to_calculate.to_s}'"
|
54
62
|
end
|
@@ -1,4 +1,6 @@
|
|
1
1
|
h1 Spamalytics
|
2
|
+
h2 Unique users who reached splash page
|
3
|
+
= render :partial => 'conversion_stage', :locals => {:state => :splash_page, :conversion_summary => conversion_summary }
|
2
4
|
h2 Unique users who saw permissions dialogue for this app
|
3
5
|
= render :partial => 'conversion_stage', :locals => {:state => :permissions_state_count, :conversion_summary => conversion_summary }
|
4
6
|
h2 Unique users who installed this facebook app (accepted permissions)
|
data/lib/facebook_app/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: facebook_app
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.9
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jack Kinsella
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-11-
|
13
|
+
date: 2011-11-02 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|