facebookbusiness 0.5.0.2 → 0.5.0.3

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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facebook_ads.rb +7 -1
  3. data/lib/facebook_ads/ad_objects/ad_account.rb +0 -6
  4. data/lib/facebook_ads/ad_objects/ad_creative.rb +1 -0
  5. data/lib/facebook_ads/ad_objects/ad_creative_link_data_image_overlay_spec.rb +2 -0
  6. data/lib/facebook_ads/ad_objects/ad_preview.rb +2 -0
  7. data/lib/facebook_ads/ad_objects/ad_set.rb +19 -19
  8. data/lib/facebook_ads/ad_objects/ad_study.rb +0 -4
  9. data/lib/facebook_ads/ad_objects/ads_insights.rb +0 -1
  10. data/lib/facebook_ads/ad_objects/album.rb +1 -0
  11. data/lib/facebook_ads/ad_objects/business.rb +3 -7
  12. data/lib/facebook_ads/ad_objects/business_image.rb +1 -1
  13. data/lib/facebook_ads/ad_objects/business_unit.rb +10 -1
  14. data/lib/facebook_ads/ad_objects/event.rb +17 -6
  15. data/lib/facebook_ads/ad_objects/group.rb +4 -3
  16. data/lib/facebook_ads/ad_objects/live_video.rb +1 -0
  17. data/lib/facebook_ads/ad_objects/null_node.rb +36 -0
  18. data/lib/facebook_ads/ad_objects/page.rb +13 -6
  19. data/lib/facebook_ads/ad_objects/product_catalog.rb +1 -0
  20. data/lib/facebook_ads/ad_objects/product_feed.rb +8 -0
  21. data/lib/facebook_ads/ad_objects/product_feed_schedule.rb +1 -3
  22. data/lib/facebook_ads/ad_objects/reach_frequency_prediction.rb +0 -1
  23. data/lib/facebook_ads/ad_objects/server_side/content.rb +128 -0
  24. data/lib/facebook_ads/ad_objects/server_side/custom_data.rb +313 -0
  25. data/lib/facebook_ads/ad_objects/server_side/event.rb +236 -0
  26. data/lib/facebook_ads/ad_objects/server_side/event_request.rb +158 -0
  27. data/lib/facebook_ads/ad_objects/server_side/event_response.rb +106 -0
  28. data/lib/facebook_ads/ad_objects/server_side/user_data.rb +396 -0
  29. data/lib/facebook_ads/ad_objects/server_side/util.rb +225 -0
  30. data/lib/facebook_ads/ad_objects/user.rb +14 -0
  31. data/lib/facebook_ads/api_response.rb +4 -0
  32. data/lib/facebook_ads/errors.rb +6 -1
  33. data/lib/facebook_ads/version.rb +1 -1
  34. metadata +10 -3
  35. data/lib/facebook_ads/ad_objects/business_project.rb +0 -86
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48b3249a1551789167ed5ec87d549d0b0f5c253430e29e5aa660648701e13e16
4
- data.tar.gz: 37080075005d212b39fbf1a127bb6212d819a92d5aee717ae1a8a1b6750aceb5
3
+ metadata.gz: dac6e5e4ba5f7823fd8d6eacb17ab3f2b0d92e15de77b542f0e0cf3f78bd7362
4
+ data.tar.gz: 6a052371c32cdfef6b8ef3296d327bd0b9bdb37297accd2a1ede56a636cfe0de
5
5
  SHA512:
6
- metadata.gz: 6469aba6159a3dc6293533e0724c2feeccb43ee4019f1387f0fbc45f07d2314224ed1a1f93266a5926a69df4067cf2e05db60f76048cac403af9a62e7343b61c
7
- data.tar.gz: 341ae793fed9a581766413b73db4b5449ade102220e4fa5278e0b1273989f9c36bad89b09ce4af71a15afe79159564f086e4fd2c735fb80efe82c9bba55dccd2
6
+ metadata.gz: 2e77d3a21bbe898b7541aa7d4eacf134f9277ee131c893d0ff0019ea83e263eb798ac8a5385a6fc98345a5e6d9c3460408fae6f5ba44372717586e6aa5caa23d
7
+ data.tar.gz: 50b100a7675b68318713c860e480977672970e28ad939233bf0ced2dd5d579688da79e72df0486e0dc1d7eeb5464e0c61c33fe0497d8e783e52689af4ceeaa4a
@@ -60,12 +60,18 @@ module FacebookAds
60
60
  require 'facebook_ads/batch_api/batch'
61
61
  require 'facebook_ads/batch_api/batch_proxy'
62
62
 
63
- # Autoload Ab Objects Helpers
63
+ # Autoload Ad Objects Helpers
64
64
  Dir.glob(File.expand_path(File.join(__FILE__, '..', 'facebook_ads', 'ad_objects', 'helpers', '*.rb'))).each do |file|
65
65
  class_name = File.basename(file, '.rb').split('_').map(&:capitalize).join.to_sym
66
66
  autoload class_name, file
67
67
  end
68
68
 
69
+ # Autoload Server-Side API
70
+ Dir.glob(File.expand_path(File.join(__FILE__, '..', 'facebook_ads', 'ad_objects', 'server_side', '*.rb'))).each do |file|
71
+ class_name = File.basename(file, '.rb').split('_').map(&:capitalize).join.to_sym
72
+ autoload class_name, file
73
+ end
74
+
69
75
  # Autoload AdObjects
70
76
  Dir.glob(File.expand_path(File.join(__FILE__, '..', 'facebook_ads', 'ad_objects', '*.rb'))).each do |file|
71
77
  class_name = File.basename(file, '.rb').split('_').map(&:capitalize).join.to_sym
@@ -717,12 +717,6 @@ module FacebookAds
717
717
  end
718
718
  end
719
719
 
720
- has_edge :businessprojects do |edge|
721
- edge.get 'BusinessProject' do |api|
722
- api.has_param :business, 'string'
723
- end
724
- end
725
-
726
720
  has_edge :campaigns do |edge|
727
721
  edge.delete do |api|
728
722
  api.has_param :before_date, 'datetime'
@@ -97,6 +97,7 @@ module FacebookAds
97
97
  "PAGE",
98
98
  "PHOTO",
99
99
  "POST_DELETED",
100
+ "PRIVACY_CHECK_FAIL",
100
101
  "SHARE",
101
102
  "STATUS",
102
103
  "STORE_ITEM",
@@ -60,8 +60,10 @@ module FacebookAds
60
60
  "custom",
61
61
  "disclaimer",
62
62
  "from_price",
63
+ "guest_rating",
63
64
  "percentage_off",
64
65
  "price",
66
+ "star_rating",
65
67
  "strikethrough_price",
66
68
  ]
67
69
 
@@ -41,6 +41,8 @@ module FacebookAds
41
41
  "INSTANT_ARTICLE_STANDARD",
42
42
  "INSTREAM_VIDEO_DESKTOP",
43
43
  "INSTREAM_VIDEO_MOBILE",
44
+ "JOB_BROWSER_DESKTOP",
45
+ "JOB_BROWSER_MOBILE",
44
46
  "MARKETPLACE_MOBILE",
45
47
  "MESSENGER_MOBILE_INBOX_MEDIA",
46
48
  "MESSENGER_MOBILE_STORY_MEDIA",
@@ -98,25 +98,25 @@ module FacebookAds
98
98
  ]
99
99
 
100
100
  DATE_PRESET = [
101
- "LAST_14D",
102
- "LAST_28D",
103
- "LAST_30D",
104
- "LAST_3D",
105
- "LAST_7D",
106
- "LAST_90D",
107
- "LAST_MONTH",
108
- "LAST_QUARTER",
109
- "LAST_WEEK_MON_SUN",
110
- "LAST_WEEK_SUN_SAT",
111
- "LAST_YEAR",
112
- "LIFETIME",
113
- "THIS_MONTH",
114
- "THIS_QUARTER",
115
- "THIS_WEEK_MON_TODAY",
116
- "THIS_WEEK_SUN_TODAY",
117
- "THIS_YEAR",
118
- "TODAY",
119
- "YESTERDAY",
101
+ "last_14d",
102
+ "last_28d",
103
+ "last_30d",
104
+ "last_3d",
105
+ "last_7d",
106
+ "last_90d",
107
+ "last_month",
108
+ "last_quarter",
109
+ "last_week_mon_sun",
110
+ "last_week_sun_sat",
111
+ "last_year",
112
+ "lifetime",
113
+ "this_month",
114
+ "this_quarter",
115
+ "this_week_mon_today",
116
+ "this_week_sun_today",
117
+ "this_year",
118
+ "today",
119
+ "yesterday",
120
120
  ]
121
121
 
122
122
  DESTINATION_TYPE = [
@@ -77,9 +77,5 @@ module FacebookAds
77
77
  end
78
78
  end
79
79
 
80
- has_edge :viewers do |edge|
81
- edge.get 'User'
82
- end
83
-
84
80
  end
85
81
  end
@@ -295,7 +295,6 @@ module FacebookAds
295
295
  field :quality_ranking, 'string'
296
296
  field :quality_score_ectr, 'string'
297
297
  field :quality_score_ecvr, 'string'
298
- field :quality_score_enfbr, 'string'
299
298
  field :quality_score_organic, 'string'
300
299
  field :reach, 'string'
301
300
  field :recurring_subscription_payment_actions, { list: 'AdsActionStats' }
@@ -111,6 +111,7 @@ module FacebookAds
111
111
  api.has_param :ios_bundle_id, 'string'
112
112
  api.has_param :is_explicit_location, 'bool'
113
113
  api.has_param :is_explicit_place, 'bool'
114
+ api.has_param :is_visual_search, 'bool'
114
115
  api.has_param :manual_privacy, 'bool'
115
116
  api.has_param :message, 'string'
116
117
  api.has_param :name, 'string'
@@ -239,6 +239,9 @@ module FacebookAds
239
239
 
240
240
  has_edge :business_units do |edge|
241
241
  edge.get 'BusinessUnit'
242
+ edge.post 'BusinessUnit' do |api|
243
+ api.has_param :business_units, { list: 'object' }
244
+ end
242
245
  end
243
246
 
244
247
  has_edge :business_users do |edge|
@@ -249,13 +252,6 @@ module FacebookAds
249
252
  end
250
253
  end
251
254
 
252
- has_edge :businessprojects do |edge|
253
- edge.get 'BusinessProject'
254
- edge.post 'BusinessProject' do |api|
255
- api.has_param :name, 'string'
256
- end
257
- end
258
-
259
255
  has_edge :claim_custom_conversions do |edge|
260
256
  edge.post 'CustomConversion' do |api|
261
257
  api.has_param :custom_conversion_id, 'string'
@@ -70,7 +70,7 @@ module FacebookAds
70
70
 
71
71
  has_edge :insights do |edge|
72
72
  edge.get do |api|
73
- api.has_param :breakdowns, { list: { enum: %w{age country device_platform gender platform_position publisher_platform }} }
73
+ api.has_param :breakdowns, { list: { enum: %w{ad_id age country device_platform gender platform_position publisher_platform }} }
74
74
  api.has_param :time_range, 'object'
75
75
  end
76
76
  end
@@ -36,9 +36,14 @@ module FacebookAds
36
36
  field :name, 'string'
37
37
  field :time_zone, 'string'
38
38
  field :visits_available_date, 'int'
39
+ field :business_units, { list: 'object' }
39
40
  has_no_post
40
41
  has_no_delete
41
42
 
43
+ has_edge :ad_accounts do |edge|
44
+ edge.get 'AdAccount'
45
+ end
46
+
42
47
  has_edge :ad_platforms do |edge|
43
48
  edge.get do |api|
44
49
  api.has_param :filter_by, 'string'
@@ -104,7 +109,7 @@ module FacebookAds
104
109
  end
105
110
  end
106
111
 
107
- has_edge :fb_conversion_events do |edge|
112
+ has_edge :reports do |edge|
108
113
  edge.get do |api|
109
114
  api.has_param :filter_by, 'string'
110
115
  api.has_param :metric_scope, 'hash'
@@ -120,5 +125,9 @@ module FacebookAds
120
125
  end
121
126
  end
122
127
 
128
+ has_edge :users do |edge|
129
+ edge.get 'BusinessUser'
130
+ end
131
+
123
132
  end
124
133
  end
@@ -117,7 +117,12 @@ module FacebookAds
117
117
  edge.get 'Profile'
118
118
  end
119
119
 
120
+ has_edge :comments do |edge|
121
+ edge.get 'NullNode'
122
+ end
123
+
120
124
  has_edge :feed do |edge|
125
+ edge.get 'NullNode'
121
126
  edge.post do |api|
122
127
  api.has_param :actions, 'object'
123
128
  api.has_param :adaptive_type, 'string'
@@ -235,6 +240,7 @@ module FacebookAds
235
240
  end
236
241
 
237
242
  has_edge :live_videos do |edge|
243
+ edge.get 'NullNode'
238
244
  edge.post 'LiveVideo' do |api|
239
245
  api.has_param :content_tags, { list: 'string' }
240
246
  api.has_param :description, 'string'
@@ -261,6 +267,7 @@ module FacebookAds
261
267
  end
262
268
 
263
269
  has_edge :photos do |edge|
270
+ edge.get 'NullNode'
264
271
  edge.post 'Photo' do |api|
265
272
  api.has_param :aid, 'string'
266
273
  api.has_param :allow_spherical_photo, 'bool'
@@ -283,6 +290,7 @@ module FacebookAds
283
290
  api.has_param :ios_bundle_id, 'string'
284
291
  api.has_param :is_explicit_location, 'bool'
285
292
  api.has_param :is_explicit_place, 'bool'
293
+ api.has_param :is_visual_search, 'bool'
286
294
  api.has_param :manual_privacy, 'bool'
287
295
  api.has_param :message, 'string'
288
296
  api.has_param :name, 'string'
@@ -317,17 +325,20 @@ module FacebookAds
317
325
  end
318
326
 
319
327
  has_edge :picture do |edge|
320
- edge.get 'ProfilePictureSource' do |api|
321
- api.has_param :height, 'int'
322
- api.has_param :redirect, 'bool'
323
- api.has_param :type, { enum: -> { ProfilePictureSource::TYPE }}
324
- api.has_param :width, 'int'
325
- end
328
+ edge.get 'NullNode'
329
+ end
330
+
331
+ has_edge :posts do |edge|
332
+ edge.get 'NullNode'
326
333
  end
327
334
 
328
335
  has_edge :roles do |edge|
329
336
  edge.get 'Profile'
330
337
  end
331
338
 
339
+ has_edge :videos do |edge|
340
+ edge.get 'NullNode'
341
+ end
342
+
332
343
  end
333
344
  end
@@ -33,9 +33,9 @@ module FacebookAds
33
33
  ]
34
34
 
35
35
  POST_PERMISSIONS = [
36
- "ADMIN_ONLY",
37
- "ANYONE",
38
- "NONE",
36
+ "0",
37
+ "1",
38
+ "2",
39
39
  ]
40
40
 
41
41
  PURPOSE = [
@@ -460,6 +460,7 @@ module FacebookAds
460
460
  api.has_param :ios_bundle_id, 'string'
461
461
  api.has_param :is_explicit_location, 'bool'
462
462
  api.has_param :is_explicit_place, 'bool'
463
+ api.has_param :is_visual_search, 'bool'
463
464
  api.has_param :manual_privacy, 'bool'
464
465
  api.has_param :message, 'string'
465
466
  api.has_param :name, 'string'
@@ -98,6 +98,7 @@ module FacebookAds
98
98
  field :is_reference_only, 'bool'
99
99
  field :live_encoders, { list: 'LiveEncoder' }
100
100
  field :live_views, 'int'
101
+ field :overlay_url, 'string'
101
102
  field :permalink_url, 'string'
102
103
  field :planned_start_time, 'datetime'
103
104
  field :seconds_left, 'int'
@@ -0,0 +1,36 @@
1
+ # Copyright (c) 2017-present, Facebook, Inc. All rights reserved.
2
+ #
3
+ # You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4
+ # copy, modify, and distribute this software in source code or binary form for use
5
+ # in connection with the web services and APIs provided by Facebook.
6
+ #
7
+ # As with any software that integrates with the Facebook platform, your use of
8
+ # this software is subject to the Facebook Platform Policy
9
+ # [http://developers.facebook.com/policy/]. This copyright notice shall be
10
+ # included in all copies or substantial portions of the software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
+
19
+ # FB:AUTOGEN
20
+
21
+ module FacebookAds
22
+ # This class is auto-generated.
23
+
24
+ # For any issues or feature requests related to this class, please let us know
25
+ # on github and we'll fix in our codegen framework. We'll not be able to accept
26
+ # pull request for this class.
27
+
28
+ class NullNode < AdObject
29
+
30
+ has_no_id
31
+ has_no_get
32
+ has_no_post
33
+ has_no_delete
34
+
35
+ end
36
+ end
@@ -210,6 +210,7 @@ module FacebookAds
210
210
  "leadgen_fat",
211
211
  "live_videos",
212
212
  "location",
213
+ "mcom_invoice_change",
213
214
  "members",
214
215
  "mention",
215
216
  "merchant_review",
@@ -491,12 +492,6 @@ module FacebookAds
491
492
  end
492
493
  end
493
494
 
494
- has_edge :businessprojects do |edge|
495
- edge.get 'BusinessProject' do |api|
496
- api.has_param :business, 'string'
497
- end
498
- end
499
-
500
495
  has_edge :call_to_actions do |edge|
501
496
  edge.get 'PageCallToAction'
502
497
  edge.post 'PageCallToAction' do |api|
@@ -593,6 +588,17 @@ module FacebookAds
593
588
  end
594
589
  end
595
590
 
591
+ has_edge :custom_user_settings do |edge|
592
+ edge.delete do |api|
593
+ api.has_param :params, { list: { enum: %w{PERSISTENT_MENU }} }
594
+ api.has_param :psid, 'string'
595
+ end
596
+ edge.post 'Page' do |api|
597
+ api.has_param :persistent_menu, { list: 'object' }
598
+ api.has_param :psid, 'string'
599
+ end
600
+ end
601
+
596
602
  has_edge :events do |edge|
597
603
  edge.get 'Event' do |api|
598
604
  api.has_param :event_state_filter, { list: { enum: -> { Event::EVENT_STATE_FILTER }} }
@@ -1056,6 +1062,7 @@ module FacebookAds
1056
1062
  api.has_param :ios_bundle_id, 'string'
1057
1063
  api.has_param :is_explicit_location, 'bool'
1058
1064
  api.has_param :is_explicit_place, 'bool'
1065
+ api.has_param :is_visual_search, 'bool'
1059
1066
  api.has_param :location_source_id, 'string'
1060
1067
  api.has_param :manual_privacy, 'bool'
1061
1068
  api.has_param :message, 'string'
@@ -108,6 +108,7 @@ module FacebookAds
108
108
  has_edge :batch do |edge|
109
109
  edge.post 'ProductCatalog' do |api|
110
110
  api.has_param :allow_upsert, 'bool'
111
+ api.has_param :fbe_external_business_id, 'string'
111
112
  api.has_param :requests, { list: 'hash' }
112
113
  end
113
114
  end
@@ -144,9 +144,17 @@ module FacebookAds
144
144
  end
145
145
  end
146
146
 
147
+ has_edge :upload_schedules do |edge|
148
+ edge.get 'ProductFeedSchedule'
149
+ edge.post 'ProductFeed' do |api|
150
+ api.has_param :upload_schedule, 'string'
151
+ end
152
+ end
153
+
147
154
  has_edge :uploads do |edge|
148
155
  edge.get 'ProductFeedUpload'
149
156
  edge.post 'ProductFeedUpload' do |api|
157
+ api.has_param :fbe_external_business_id, 'string'
150
158
  api.has_param :file, 'file'
151
159
  api.has_param :password, 'string'
152
160
  api.has_param :update_only, 'bool'
@@ -47,15 +47,13 @@ module FacebookAds
47
47
  field :day_of_month, 'int'
48
48
  field :day_of_week, { enum: -> { DAY_OF_WEEK }}
49
49
  field :hour, 'int'
50
+ field :id, 'string'
50
51
  field :interval, { enum: -> { INTERVAL }}
51
52
  field :interval_count, 'int'
52
53
  field :minute, 'int'
53
54
  field :timezone, 'string'
54
55
  field :url, 'string'
55
56
  field :username, 'string'
56
- field :id, 'string'
57
- has_no_post
58
- has_no_delete
59
57
 
60
58
  end
61
59
  end
@@ -90,7 +90,6 @@ module FacebookAds
90
90
  field :external_minimum_impression, 'int'
91
91
  field :external_minimum_reach, 'int'
92
92
  field :external_reach, 'int'
93
- field :external_values_breakdown, 'string'
94
93
  field :feed_ratio_0000, 'int'
95
94
  field :frequency_cap, 'int'
96
95
  field :frequency_distribution, { list: 'double' }