caboose-cms 0.5.195 → 0.5.196

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTEwZDI1Njk1NzdlN2EzYmMzZGFhODVmYjZhNjI1ZTU4NTg5NGNhOA==
4
+ ZjM1ZjMxZmM0YzU4MjdmNDIyY2RhZWZkNjgyODIyMjRkZGI3ZmExYw==
5
5
  data.tar.gz: !binary |-
6
- Y2RhMGVjMDM1MGMyYjFkYzAyMWQ5ZmI2OGE0ZmY3NzYxNjYzN2U4MQ==
6
+ MDA3YjM5NDk0Y2E2ODlhZDM0YjQyMzMwMmZlMDJlNDA0NzgzYWIxYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OWY3NTU3OGEyNDgyZjJiZjA4OWZjY2I2NWM4NTI1NzdkMjNiMjcyYzdkZjg5
10
- NDMxMzY5MzQ0ZDdlNDc2NzE2NDRhMTc5OTc2OTI2NjFmMGQxZGY3NGUxZTJm
11
- NmI2MWJiYzYwN2ZiOGRjNjQ0YmIwN2MwM2RjMDFjNWI2Mzk5NzQ=
9
+ OGEzN2I1Nzc0YWU4NWM4YWY0OTMwMTQ2NWZiMGY3ZDFkNmI4MWY5ZjdhYWNj
10
+ OWEzYThjMGM0OGZiYmE5MDEzOTAxMDg3N2QzYWI4Yjg3YjIxN2RkNTA5N2Yx
11
+ NGM0MmJkM2U4OTExN2QxM2M1YWJlNzMyN2EwMWQwNTU1NzkxMjY=
12
12
  data.tar.gz: !binary |-
13
- YjU0NWMyMDdmZDdkYzc5MTQ5MWFjMGJiYjgxNTljMmVhOTM4YzMwNDNkYTgw
14
- MTgzMGY0YmY3MDc5ZjA3YjlhMzFhZTU5NDIxMGMwODg1MGJkMGMyYjViZjE1
15
- YTAyNTZiNzA2ODcwZTc4NzczODc5MDIzMDZhNGI5ZWYzNTc3YjE=
13
+ NzE2Y2YyOWNiMTIwNDIzNmExNDhmMjNiNjE4NTBmOWJjZjFmZjU0NDcyMjlh
14
+ YTFkNDNjNmFhM2NlNjFkOWQ0MGNmZjZiM2YyNTYyODU1M2U0NTMyMmE4YjNi
15
+ MjM2MzFjNTg3MWE1MTc5ZTY2YWZhYWQ3ODNkYmQzNWNkY2JiYTg=
@@ -27,8 +27,9 @@ module Caboose
27
27
 
28
28
  params.each do |name,value|
29
29
  case name
30
- when 'conversion_id' then rc.conversion_id = value
31
- when 'labels_function' then rc.labels_function = value
30
+ when 'conversion_id' then rc.conversion_id = value
31
+ when 'labels_function' then rc.labels_function = value
32
+ when 'fb_pixels_function' then rc.fb_pixels_function = value
32
33
  end
33
34
  end
34
35
 
@@ -6,13 +6,25 @@ module Caboose
6
6
  attr_accessible :id,
7
7
  :site_id,
8
8
  :conversion_id,
9
- :labels_function
9
+ :labels_function,
10
+ :fb_pixels_function
10
11
 
11
- def labels(request, page)
12
- arr = eval(self.labels_function)
12
+ def labels(request, page)
13
+ return [] if self.labels_function.nil? || self.labels_function.strip.length == 0
14
+ return [self.labels_function] if self.labels_function.starts_with?('_')
15
+ arr = eval(self.labels_function)
16
+ return [] if arr.nil?
13
17
  return [arr] if arr is_a? String
14
18
  return arr
15
19
  end
16
20
 
21
+ def fb_pixels(request, page)
22
+ return [] if self.fb_pixels_function.nil? || self.fb_pixels_function.strip.length == 0
23
+ arr = eval(self.fb_pixels_function)
24
+ return [] if arr.nil?
25
+ return [arr] if arr.is_a?(String) || arr.is_a?(Integer)
26
+ return arr
27
+ end
28
+
17
29
  end
18
30
  end
@@ -505,7 +505,8 @@ class Caboose::Schema < Caboose::Utilities::Schema
505
505
  Caboose::RetargetingConfig => [
506
506
  [ :site_id , :integer ],
507
507
  [ :conversion_id , :string ],
508
- [ :labels_function , :text ]
508
+ [ :labels_function , :text ],
509
+ [ :fb_pixels_function , :text ]
509
510
  ],
510
511
  Caboose::Review => [
511
512
  [ :product_id , :integer ],
@@ -1,6 +1,8 @@
1
- <% if site.use_retargeting %>
2
- <% rc = site.retargeting_config %>
3
- <% rc.labels(request, page).each do |label| %>
1
+ <% if site.use_retargeting %>
2
+ <% rc = site.retargeting_config %>
3
+ <%
4
+ # Google audiences
5
+ %><% rc.labels(request, page).each do |label| %>
4
6
  <script type='text/javascript'>
5
7
  /* <![CDATA[ */
6
8
  var google_conversion_id = <%= rc.conversion_id %>;
@@ -16,4 +18,24 @@
16
18
  </div>
17
19
  </noscript>
18
20
  <% end %>
21
+ <%
22
+ # Facebook audiences
23
+ %><% rc.fb_pixels(request, page).each do |pixel_id| %>
24
+ <script>(function() {
25
+ var _fbq = window._fbq || (window._fbq = []);
26
+ if (!_fbq.loaded) {
27
+ var fbds = document.createElement('script');
28
+ fbds.async = true;
29
+ fbds.src = '//connect.facebook.net/en_US/fbds.js';
30
+ var s = document.getElementsByTagName('script')[0];
31
+ s.parentNode.insertBefore(fbds, s);
32
+ _fbq.loaded = true;
33
+ }
34
+ _fbq.push(['addPixelId', '<%= raw pixel_id %>']);
35
+ })();
36
+ window._fbq = window._fbq || [];
37
+ window._fbq.push(['track', 'PixelInitialized', {}]);
38
+ </script>
39
+ <noscript><img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/tr?id=<%= raw pixel_id %>&amp;ev=PixelInitialized" /></noscript>
40
+ <% end %>
19
41
  <% end %>
@@ -5,11 +5,31 @@ rc = s.retargeting_config
5
5
  <%= render :partial => 'caboose/sites/admin_header' %>
6
6
 
7
7
  <p><div id='site_<%= s.id %>_use_retargeting' ></div></p>
8
+
9
+ <h2>Google Audiences</h2>
8
10
  <p><div id='retargetingconfig_<%= rc.id %>_conversion_id' ></div></p>
9
- <h2>Conversion Labels</h2>
11
+ <h3>Conversion Labels</h3>
10
12
  <p><code>def conversion_labels_function(request, page) {</code></p>
11
13
  <p><div id='retargetingconfig_<%= rc.id %>_labels_function' ></div></p>
12
- <p><code># This function returns an array of conversion labels<br />}</code></p>
14
+ <p><code>
15
+ &nbsp;&nbsp;# This function returns a conversion label string or an array of conversion label strings.<br />
16
+ &nbsp;&nbsp;# Example 1:<br />
17
+ &nbsp;&nbsp;# return "abc123"<br />
18
+ &nbsp;&nbsp;# Example 2: <br />
19
+ &nbsp;&nbsp;# return ["abc123", "xyz456"]<br />
20
+ }</code></p>
21
+
22
+ <h2>Facebook Pixel IDs</h2>
23
+ <p><code>def facebook_pixel_ids(request, page) {</code></p>
24
+ <p><div id='retargetingconfig_<%= rc.id %>_fb_pixels_function' ></div></p>
25
+ <p><code>
26
+ &nbsp;&nbsp;# This function returns a pixel ID string or an array of pixel ID strings.<br />
27
+ &nbsp;&nbsp;# Example 1:<br />
28
+ &nbsp;&nbsp;# return "abc123"<br />
29
+ &nbsp;&nbsp;# Example 2: <br />
30
+ &nbsp;&nbsp;# return ["abc123", "xyz456"]<br />
31
+ &nbsp;&nbsp;# This function returns an array of conversion labels<br />
32
+ }</code></p>
13
33
 
14
34
  <%= render :partial => 'caboose/sites/admin_footer' %>
15
35
 
@@ -32,8 +52,9 @@ $(document).ready(function() {
32
52
  update_url: "/admin/sites/<%= @site.id %>/retargeting",
33
53
  authenticity_token: '<%= form_authenticity_token %>',
34
54
  attributes: [
35
- { name: 'conversion_id' , nice_name: 'Conversion ID' , type: 'text' , value: <%= raw Caboose.json(rc.conversion_id ) %>, width: 600 },
36
- { name: 'labels_function' , nice_name: 'Conversion Labels Function' , type: 'textarea' , value: <%= raw Caboose.json(rc.labels_function) %>, width: 600, height: 75, fixed_placeholder: false }
55
+ { name: 'conversion_id' , nice_name: 'Conversion ID' , type: 'text' , value: <%= raw Caboose.json(rc.conversion_id ) %>, width: 600 },
56
+ { name: 'labels_function' , nice_name: 'Conversion Labels Function' , type: 'textarea' , value: <%= raw Caboose.json(rc.labels_function ) %>, width: 600, height: 75, fixed_placeholder: false },
57
+ { name: 'fb_pixels_function' , nice_name: 'Facebook Pixel IDs Function' , type: 'textarea' , value: <%= raw Caboose.json(rc.fb_pixels_function ) %>, width: 600, height: 75, fixed_placeholder: false }
37
58
  ]
38
59
  });
39
60
  });
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.5.195'
2
+ VERSION = '0.5.196'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.195
4
+ version: 0.5.196
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-08 00:00:00.000000000 Z
11
+ date: 2015-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg