facebookbusiness 0.5.0.2 → 0.5.0.3

Sign up to get free protection for your applications and to get access to all the features.
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' }