facebookbusiness 0.8.0.3 → 0.9.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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facebook_ads/ad_objects/ad.rb +3 -0
  3. data/lib/facebook_ads/ad_objects/ad_account.rb +22 -23
  4. data/lib/facebook_ads/ad_objects/ad_account_ad_volume.rb +1 -0
  5. data/lib/facebook_ads/ad_objects/ad_account_delivery_estimate.rb +1 -0
  6. data/lib/facebook_ads/ad_objects/ad_account_matched_search_applications_edge_data.rb +1 -0
  7. data/lib/facebook_ads/ad_objects/ad_account_targeting_unified.rb +22 -5
  8. data/lib/facebook_ads/ad_objects/ad_activity.rb +0 -1
  9. data/lib/facebook_ads/ad_objects/ad_asset_feed_spec.rb +6 -0
  10. data/lib/facebook_ads/ad_objects/ad_async_request.rb +2 -0
  11. data/lib/facebook_ads/ad_objects/ad_campaign_activity.rb +10 -2
  12. data/lib/facebook_ads/ad_objects/ad_campaign_delivery_estimate.rb +1 -0
  13. data/lib/facebook_ads/ad_objects/ad_creative.rb +7 -0
  14. data/lib/facebook_ads/ad_objects/ad_creative_link_data_call_to_action.rb +5 -0
  15. data/lib/facebook_ads/ad_objects/{offline_terms_of_service.rb → ad_creative_omnichannel_link_spec.rb} +5 -4
  16. data/lib/facebook_ads/ad_objects/ad_preview.rb +4 -0
  17. data/lib/facebook_ads/ad_objects/ad_report_run.rb +1 -0
  18. data/lib/facebook_ads/ad_objects/ad_rule_execution_spec.rb +4 -0
  19. data/lib/facebook_ads/ad_objects/ad_set.rb +5 -1
  20. data/lib/facebook_ads/ad_objects/ad_study.rb +0 -12
  21. data/lib/facebook_ads/ad_objects/ad_study_objective.rb +1 -4
  22. data/lib/facebook_ads/ad_objects/ad_video.rb +7 -11
  23. data/lib/facebook_ads/ad_objects/adgroup_activity.rb +2 -0
  24. data/lib/facebook_ads/ad_objects/adgroup_placement_specific_review_feedback.rb +1 -0
  25. data/lib/facebook_ads/ad_objects/adoptable_pet.rb +7 -0
  26. data/lib/facebook_ads/ad_objects/ads_action_stats.rb +2 -0
  27. data/lib/facebook_ads/ad_objects/ads_insights.rb +2 -0
  28. data/lib/facebook_ads/ad_objects/ads_pixel.rb +5 -0
  29. data/lib/facebook_ads/ad_objects/album.rb +0 -10
  30. data/lib/facebook_ads/ad_objects/application.rb +2 -10
  31. data/lib/facebook_ads/ad_objects/automotive_model.rb +25 -0
  32. data/lib/facebook_ads/ad_objects/business.rb +29 -3
  33. data/lib/facebook_ads/ad_objects/business_asset_group.rb +1 -1
  34. data/lib/facebook_ads/ad_objects/business_role_request.rb +4 -4
  35. data/lib/facebook_ads/ad_objects/business_unit.rb +0 -1
  36. data/lib/facebook_ads/ad_objects/business_user.rb +4 -4
  37. data/lib/facebook_ads/ad_objects/campaign.rb +10 -1
  38. data/lib/facebook_ads/ad_objects/catalog_item_channels_to_integrity_status.rb +38 -0
  39. data/lib/facebook_ads/ad_objects/catalog_sub_vertical_list.rb +3 -0
  40. data/lib/facebook_ads/ad_objects/comment.rb +1 -0
  41. data/lib/facebook_ads/ad_objects/commerce_merchant_settings.rb +3 -24
  42. data/lib/facebook_ads/ad_objects/commerce_merchant_settings_setup_status.rb +1 -0
  43. data/lib/facebook_ads/ad_objects/{ad_creative_instagram_branded_content.rb → contextual_bundling_spec.rb} +2 -1
  44. data/lib/facebook_ads/ad_objects/custom_audience.rb +8 -0
  45. data/lib/facebook_ads/ad_objects/extended_credit.rb +0 -1
  46. data/lib/facebook_ads/ad_objects/group.rb +26 -22
  47. data/lib/facebook_ads/ad_objects/hotel_room.rb +1 -0
  48. data/lib/facebook_ads/ad_objects/ig_media.rb +0 -1
  49. data/lib/facebook_ads/ad_objects/ig_user.rb +6 -1
  50. data/lib/facebook_ads/ad_objects/image_copyright.rb +302 -0
  51. data/lib/facebook_ads/ad_objects/link.rb +0 -4
  52. data/lib/facebook_ads/ad_objects/live_video.rb +12 -12
  53. data/lib/facebook_ads/ad_objects/messenger_profile.rb +1 -0
  54. data/lib/facebook_ads/ad_objects/page.rb +43 -15
  55. data/lib/facebook_ads/ad_objects/page_call_to_action.rb +3 -0
  56. data/lib/facebook_ads/ad_objects/{friend_list.rb → page_commerce_eligibility.rb} +5 -5
  57. data/lib/facebook_ads/ad_objects/page_post.rb +0 -10
  58. data/lib/facebook_ads/ad_objects/{event_tour.rb → payment_engine_payment.rb} +35 -18
  59. data/lib/facebook_ads/ad_objects/payment_subscription.rb +3 -3
  60. data/lib/facebook_ads/ad_objects/photo.rb +0 -10
  61. data/lib/facebook_ads/ad_objects/playable_content.rb +1 -0
  62. data/lib/facebook_ads/ad_objects/post.rb +46 -29
  63. data/lib/facebook_ads/ad_objects/product_catalog.rb +18 -9
  64. data/lib/facebook_ads/ad_objects/product_feed.rb +3 -1
  65. data/lib/facebook_ads/ad_objects/product_feed_schedule.rb +2 -0
  66. data/lib/facebook_ads/ad_objects/product_item.rb +8 -1
  67. data/lib/facebook_ads/ad_objects/{user_payment_methods_info.rb → product_item_ar_data.rb} +23 -8
  68. data/lib/facebook_ads/ad_objects/referral.rb +2 -0
  69. data/lib/facebook_ads/ad_objects/server_side/action_source.rb +48 -0
  70. data/lib/facebook_ads/ad_objects/server_side/content.rb +23 -4
  71. data/lib/facebook_ads/ad_objects/server_side/event.rb +32 -6
  72. data/lib/facebook_ads/ad_objects/server_side/event_request.rb +1 -1
  73. data/lib/facebook_ads/ad_objects/server_side/util.rb +14 -1
  74. data/lib/facebook_ads/ad_objects/system_user.rb +4 -4
  75. data/lib/facebook_ads/ad_objects/targeting.rb +0 -2
  76. data/lib/facebook_ads/ad_objects/third_party_measurement_report_dataset.rb +0 -1
  77. data/lib/facebook_ads/ad_objects/unified_thread.rb +0 -1
  78. data/lib/facebook_ads/ad_objects/user.rb +31 -18
  79. data/lib/facebook_ads/ad_objects/vehicle.rb +1 -0
  80. data/lib/facebook_ads/ad_objects/whats_app_business_account.rb +3 -0
  81. data/lib/facebook_ads/ad_objects/{read_only_analytics_user_property_config.rb → whats_app_business_profile.rb} +2 -3
  82. data/lib/facebook_ads/edge.rb +2 -1
  83. data/lib/facebook_ads/session.rb +1 -1
  84. data/lib/facebook_ads/version.rb +2 -2
  85. metadata +12 -12
  86. data/lib/facebook_ads/ad_objects/ad_account_creation_request.rb +0 -71
  87. data/lib/facebook_ads/ad_objects/ad_account_roas.rb +0 -65
  88. data/lib/facebook_ads/ad_objects/user_payment_modules_options.rb +0 -40
@@ -54,6 +54,8 @@ module FacebookAds
54
54
  field :timezone, 'string'
55
55
  field :url, 'string'
56
56
  field :username, 'string'
57
+ has_no_post
58
+ has_no_delete
57
59
 
58
60
  end
59
61
  end
@@ -293,6 +293,7 @@ module FacebookAds
293
293
  field :additional_variant_attributes, 'hash'
294
294
  field :age_group, { enum: -> { AGE_GROUP }}
295
295
  field :applinks, 'CatalogItemAppLinks'
296
+ field :ar_data, 'ProductItemArData'
296
297
  field :availability, { enum: -> { AVAILABILITY }}
297
298
  field :brand, 'string'
298
299
  field :capability_to_review_status, 'hash'
@@ -316,12 +317,14 @@ module FacebookAds
316
317
  field :id, 'string'
317
318
  field :image_cdn_urls, 'hash'
318
319
  field :image_url, 'string'
320
+ field :images, { list: 'string' }
319
321
  field :inventory, 'int'
320
322
  field :manufacturer_part_number, 'string'
321
323
  field :material, 'string'
322
324
  field :mobile_link, 'string'
323
325
  field :name, 'string'
324
326
  field :ordering_index, 'int'
327
+ field :parent_product_id, 'string'
325
328
  field :pattern, 'string'
326
329
  field :price, 'string'
327
330
  field :product_catalog, 'ProductCatalog'
@@ -342,7 +345,7 @@ module FacebookAds
342
345
  field :start_date, 'string'
343
346
  field :url, 'string'
344
347
  field :visibility, { enum: -> { VISIBILITY }}
345
- field :additional_image_files, { list: 'file' }
348
+ field :additional_uploaded_image_ids, { list: 'string' }
346
349
  field :android_app_name, 'string'
347
350
  field :android_class, 'string'
348
351
  field :android_package, 'string'
@@ -367,6 +370,10 @@ module FacebookAds
367
370
  field :windows_phone_app_name, 'string'
368
371
  field :windows_phone_url, 'string'
369
372
 
373
+ has_edge :channels_to_integrity_status do |edge|
374
+ edge.get 'CatalogItemChannelsToIntegrityStatus'
375
+ end
376
+
370
377
  has_edge :product_sets do |edge|
371
378
  edge.get 'ProductSet'
372
379
  end
@@ -25,15 +25,30 @@ module FacebookAds
25
25
  # on github and we'll fix in our codegen framework. We'll not be able to accept
26
26
  # pull request for this class.
27
27
 
28
- class UserPaymentMethodsInfo < AdObject
28
+ class ProductItemArData < AdObject
29
+ SURFACES = [
30
+ "B2C_MARKETPLACE",
31
+ "C2C_MARKETPLACE",
32
+ "DA",
33
+ "DAILY_DEALS",
34
+ "DAILY_DEALS_LEGACY",
35
+ "IG_PRODUCT_TAGGING",
36
+ "MARKETPLACE",
37
+ "MARKETPLACE_ADS_DEPRECATED",
38
+ "MARKETPLACE_SHOPS",
39
+ "OFFLINE_CONVERSIONS",
40
+ "SHOPS",
41
+ "UNIVERSAL_CHECKOUT",
42
+ ]
29
43
 
30
- field :account_id, 'string'
31
- field :available_card_types, { list: 'string' }
32
- field :available_payment_methods, { list: 'string' }
33
- field :available_payment_methods_details, { list: 'object' }
34
- field :country, 'string'
35
- field :currency, 'string'
36
- field :existing_payment_methods, { list: 'object' }
44
+
45
+ field :container_effect, 'string'
46
+ field :effect_icon, 'string'
47
+ field :effect_parameters, 'object'
48
+ field :picker_icon, 'string'
49
+ field :product_ar_link, 'object'
50
+ field :state, 'string'
51
+ field :surfaces, { list: { enum: -> { SURFACES }} }
37
52
  has_no_id
38
53
  has_no_get
39
54
  has_no_post
@@ -34,10 +34,12 @@ module FacebookAds
34
34
  field :namespace, 'string'
35
35
  field :need_promo_code, 'bool'
36
36
  field :offer_origin, 'string'
37
+ field :privacy_policy_link, 'string'
37
38
  field :promotion_text, 'string'
38
39
  field :receiver_benefits_text, 'string'
39
40
  field :referral_link_uri, 'string'
40
41
  field :sender_benefits_text, 'string'
42
+ field :terms_and_condition_link, 'string'
41
43
 
42
44
  end
43
45
  end
@@ -0,0 +1,48 @@
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
+ module FacebookAds
20
+ module ServerSide
21
+ ActionSource = Set[
22
+
23
+ # Conversion happened over email.
24
+ 'email',
25
+
26
+ # Conversion was made on your website.
27
+ 'website',
28
+
29
+ # Conversion was made using your app.
30
+ 'app',
31
+
32
+ # Conversion was made over the phone.
33
+ 'phone_call',
34
+
35
+ # Conversion was made via a messaging app, SMS, or online messaging feature.
36
+ 'chat',
37
+
38
+ # Conversion was made in person at your physical store.
39
+ 'physical_store',
40
+
41
+ # Conversion happened automatically, for example, a subscription renewal that's set on auto-pay each month.
42
+ 'system_generated',
43
+
44
+ # Conversion happened in a way that is not listed.
45
+ 'other'
46
+ ]
47
+ end
48
+ end
@@ -28,7 +28,8 @@ module FacebookAds
28
28
  :title,
29
29
  :description,
30
30
  :brand,
31
- :category
31
+ :category,
32
+ :delivery_category
32
33
 
33
34
  # Initializes the object
34
35
  # @param [String] product_id
@@ -38,7 +39,8 @@ module FacebookAds
38
39
  # @param [String] description
39
40
  # @param [String] brand
40
41
  # @param [String] category
41
- def initialize(product_id: nil, quantity: nil, item_price: nil, title: nil, description: nil, brand: nil, category: nil)
42
+ # @param [String] delivery_category
43
+ def initialize(product_id: nil, quantity: nil, item_price: nil, title: nil, description: nil, brand: nil, category: nil, delivery_category: nil)
42
44
  unless product_id.nil?
43
45
  self.product_id = String(product_id)
44
46
  end
@@ -60,6 +62,9 @@ module FacebookAds
60
62
  unless category.nil?
61
63
  self.category = String(category)
62
64
  end
65
+ unless delivery_category.nil?
66
+ self.delivery_category = String(delivery_category)
67
+ end
63
68
  end
64
69
 
65
70
  # build the object using the input hash
@@ -97,6 +102,10 @@ module FacebookAds
97
102
  if attributes.has_key?(:'category')
98
103
  self.category = attributes[:'category']
99
104
  end
105
+
106
+ if attributes.has_key?(:'delivery_category')
107
+ self.delivery_category = attributes[:'delivery_category']
108
+ end
100
109
  end
101
110
 
102
111
  # Checks equality by comparing each attribute.
@@ -108,7 +117,8 @@ module FacebookAds
108
117
  title == o.title &&
109
118
  description == o.description &&
110
119
  brand == o.brand &&
111
- category == o.category
120
+ category == o.category &&
121
+ delivery_category == o.delivery_category
112
122
  end
113
123
 
114
124
  # @see the `==` method
@@ -126,7 +136,8 @@ module FacebookAds
126
136
  title,
127
137
  description,
128
138
  brand,
129
- category
139
+ category,
140
+ delivery_category
130
141
  ].hash
131
142
  end
132
143
 
@@ -156,6 +167,9 @@ module FacebookAds
156
167
  unless category.nil?
157
168
  hash['category'] = category
158
169
  end
170
+ unless delivery_category.nil?
171
+ hash['delivery_category'] = delivery_category
172
+ end
159
173
  hash.to_s
160
174
  end
161
175
 
@@ -183,6 +197,11 @@ module FacebookAds
183
197
  unless category.nil?
184
198
  hash['category'] = category
185
199
  end
200
+ unless delivery_category.nil?
201
+ hash['delivery_category'] = FacebookAds::ServerSide::Util.normalize_delivery_category(
202
+ delivery_category
203
+ )
204
+ end
186
205
  hash
187
206
  end
188
207
  end
@@ -64,6 +64,9 @@ module FacebookAds
64
64
  # For more details see https://developers.facebook.com/docs/marketing-apis/data-processing-options
65
65
  attr_accessor :data_processing_options_state
66
66
 
67
+ # Where the conversion occurred.
68
+ attr_accessor :action_source
69
+
67
70
  # @param [String] event_name
68
71
  # @param [int] event_time
69
72
  # @param [String] event_source_url
@@ -74,6 +77,7 @@ module FacebookAds
74
77
  # @param [Array<String>] data_processing_options
75
78
  # @param [int] data_processing_options_country
76
79
  # @param [int] data_processing_options_state
80
+ # @param String action_source
77
81
  def initialize(event_name: nil,
78
82
  event_time: nil,
79
83
  event_source_url: nil,
@@ -83,7 +87,8 @@ module FacebookAds
83
87
  custom_data: nil,
84
88
  data_processing_options: nil,
85
89
  data_processing_options_country: nil,
86
- data_processing_options_state: nil)
90
+ data_processing_options_state: nil,
91
+ action_source: nil)
87
92
 
88
93
  unless event_name.nil?
89
94
  self.event_name = event_name
@@ -115,6 +120,9 @@ module FacebookAds
115
120
  unless data_processing_options_state.nil?
116
121
  self.data_processing_options_state = data_processing_options_state
117
122
  end
123
+ unless action_source.nil?
124
+ self.action_source = action_source
125
+ end
118
126
  end
119
127
 
120
128
  # build the object using the input hash
@@ -154,15 +162,19 @@ module FacebookAds
154
162
  end
155
163
 
156
164
  if attributes.has_key?(:'data_processing_options')
157
- self.custom_data = attributes[:'data_processing_options']
165
+ self.data_processing_options = attributes[:'data_processing_options']
158
166
  end
159
167
 
160
168
  if attributes.has_key?(:'data_processing_options_country')
161
- self.custom_data = attributes[:'data_processing_options_country']
169
+ self.data_processing_options_country = attributes[:'data_processing_options_country']
162
170
  end
163
171
 
164
172
  if attributes.has_key?(:'data_processing_options_state')
165
- self.custom_data = attributes[:'data_processing_options_state']
173
+ self.data_processing_options_state = attributes[:'data_processing_options_state']
174
+ end
175
+
176
+ if attributes.has_key?(:'action_source')
177
+ self.action_source = attributes[:'action_source']
166
178
  end
167
179
  end
168
180
 
@@ -207,7 +219,8 @@ module FacebookAds
207
219
  custom_data == o.custom_data &&
208
220
  data_processing_options == o.data_processing_options &&
209
221
  data_processing_options_country == o.data_processing_options_country &&
210
- data_processing_options_state == o.data_processing_options_state
222
+ data_processing_options_state == o.data_processing_options_state &&
223
+ action_source == o.action_source
211
224
  end
212
225
 
213
226
  # @see the `==` method
@@ -218,7 +231,11 @@ module FacebookAds
218
231
  # Calculates hash code according to all attributes.
219
232
  # @return [Fixnum] Hash code
220
233
  def hash
221
- [event_name, event_time, event_source_url, opt_out, event_id, user_data, custom_data, data_processing_options, data_processing_options_country, data_processing_options_state].hash
234
+ [
235
+ event_name, event_time, event_source_url, opt_out, event_id, user_data, custom_data,
236
+ data_processing_options, data_processing_options_country, data_processing_options_state,
237
+ action_source,
238
+ ].hash
222
239
  end
223
240
 
224
241
  def to_s
@@ -253,6 +270,9 @@ module FacebookAds
253
270
  unless data_processing_options_state.nil?
254
271
  hash['data_processing_options_state'] = data_processing_options_state.to_s
255
272
  end
273
+ unless action_source.nil?
274
+ hash['action_source'] = action_source
275
+ end
256
276
  hash.to_s
257
277
  end
258
278
 
@@ -290,6 +310,12 @@ module FacebookAds
290
310
  unless data_processing_options_state.nil?
291
311
  hash['data_processing_options_state'] = data_processing_options_state
292
312
  end
313
+ unless action_source.nil?
314
+ hash['action_source'] = FacebookAds::ServerSide::Util.normalize(
315
+ action_source,
316
+ 'action_source'
317
+ )
318
+ end
293
319
  hash
294
320
  end
295
321
 
@@ -190,7 +190,7 @@ module FacebookAds
190
190
  'events',
191
191
  ].join('/')
192
192
  headers = {
193
- 'User-Agent' => "fbbizsdk-ruby-v#{FacebookAds::API_VERSION}"
193
+ 'User-Agent' => "fbbizsdk-ruby-v#{FacebookAds::VERSION}"
194
194
  }
195
195
  params = get_params
196
196
  params[:data] = events.map(&:normalize)
@@ -52,6 +52,8 @@ module FacebookAds
52
52
  normalized_input = input;
53
53
 
54
54
  case field_type
55
+ when 'action_source'
56
+ return normalize_action_source input
55
57
  when 'country'
56
58
  normalized_input = normalize_country input
57
59
  when 'ct'
@@ -152,7 +154,7 @@ module FacebookAds
152
154
  def self.normalize_email(email)
153
155
 
154
156
  if EMAIL_REGEX.match(email) == nil
155
- return ArgumentError, "Invalid email format for the passed email:' + email + '.Please check the passed email format."
157
+ raise ArgumentError, "Invalid email format for the passed email: '#{email}'. Please check the passed email format."
156
158
  end
157
159
 
158
160
  return email
@@ -290,6 +292,17 @@ module FacebookAds
290
292
  delivery_category;
291
293
  end
292
294
 
295
+ # Normalizes the input action_source and returns valid value (or throw exception if invalid).
296
+ def self.normalize_action_source(action_source)
297
+ unless FacebookAds::ServerSide::ActionSource.include?(action_source)
298
+ values = FacebookAds::ServerSide::ActionSource.to_a.join(',')
299
+ raise ArgumentError.new(
300
+ "Invalid action_source passed: #{action_source}. Please use one of the defined values: #{values}"
301
+ )
302
+ end
303
+
304
+ action_source
305
+ end
293
306
  end
294
307
  end
295
308
  end
@@ -29,14 +29,14 @@ module FacebookAds
29
29
  ROLE = [
30
30
  "ADMIN",
31
31
  "ADS_RIGHTS_REVIEWER",
32
+ "DEFAULT",
32
33
  "DEVELOPER",
33
34
  "EMPLOYEE",
34
35
  "FINANCE_ANALYST",
36
+ "FINANCE_EDIT",
35
37
  "FINANCE_EDITOR",
36
- "FINANCE_EDIT_TASK",
37
- "FINANCE_VIEW_TASK",
38
- "MODERATE_TASK",
39
- "OPERATE_TASK",
38
+ "FINANCE_VIEW",
39
+ "MANAGE",
40
40
  "PARTNER_CENTER_ADMIN",
41
41
  "PARTNER_CENTER_ANALYST",
42
42
  "PARTNER_CENTER_EDUCATION",
@@ -27,13 +27,11 @@ module FacebookAds
27
27
 
28
28
  class Targeting < AdObject
29
29
  DEVICE_PLATFORMS = [
30
- "connected_tv",
31
30
  "desktop",
32
31
  "mobile",
33
32
  ]
34
33
 
35
34
  EFFECTIVE_DEVICE_PLATFORMS = [
36
- "connected_tv",
37
35
  "desktop",
38
36
  "mobile",
39
37
  ]
@@ -32,7 +32,6 @@ module FacebookAds
32
32
  field :partner, 'Business'
33
33
  field :product, 'string'
34
34
  field :schema, { list: 'object' }
35
- has_no_post
36
35
  has_no_delete
37
36
 
38
37
  end
@@ -32,7 +32,6 @@ module FacebookAds
32
32
  field :id, 'string'
33
33
  field :is_subscribed, 'bool'
34
34
  field :link, 'string'
35
- field :linked_group, 'Group'
36
35
  field :message_count, 'int'
37
36
  field :name, 'string'
38
37
  field :participants, 'object'
@@ -49,14 +49,10 @@ module FacebookAds
49
49
 
50
50
 
51
51
  field :about, 'string'
52
- field :address, 'Location'
53
- field :admin_notes, { list: 'PageAdminNote' }
54
52
  field :age_range, 'AgeRange'
55
- field :auth_method, 'string'
56
53
  field :birthday, 'string'
57
54
  field :cover, 'UserCoverPhoto'
58
55
  field :currency, 'Currency'
59
- field :devices, { list: 'UserDevice' }
60
56
  field :education, { list: 'object' }
61
57
  field :email, 'string'
62
58
  field :favorite_athletes, { list: 'Experience' }
@@ -85,7 +81,6 @@ module FacebookAds
85
81
  field :payment_pricepoints, 'PaymentPricepoints'
86
82
  field :political, 'string'
87
83
  field :profile_pic, 'string'
88
- field :public_key, 'string'
89
84
  field :quotes, 'string'
90
85
  field :relationship_status, 'string'
91
86
  field :religion, 'string'
@@ -101,7 +96,6 @@ module FacebookAds
101
96
  field :verified, 'bool'
102
97
  field :video_upload_limits, 'VideoUploadLimits'
103
98
  field :website, 'string'
104
- field :work, { list: 'object' }
105
99
 
106
100
  has_edge :access_tokens do |edge|
107
101
  edge.delete
@@ -238,7 +232,15 @@ module FacebookAds
238
232
  end
239
233
 
240
234
  has_edge :feed do |edge|
241
- edge.post do |api|
235
+ edge.get 'Post' do |api|
236
+ api.has_param :include_hidden, 'bool'
237
+ api.has_param :q, 'string'
238
+ api.has_param :show_expired, 'bool'
239
+ api.has_param :since, 'datetime'
240
+ api.has_param :until, 'datetime'
241
+ api.has_param :with, 'string'
242
+ end
243
+ edge.post 'Post' do |api|
242
244
  api.has_param :actions, 'object'
243
245
  api.has_param :adaptive_type, 'string'
244
246
  api.has_param :album_id, 'string'
@@ -252,10 +254,10 @@ module FacebookAds
252
254
  api.has_param :attached_media, { list: 'object' }
253
255
  api.has_param :audience_exp, 'bool'
254
256
  api.has_param :backdated_time, 'datetime'
255
- api.has_param :backdated_time_granularity, { enum: %w{day hour min month none year }}
257
+ api.has_param :backdated_time_granularity, { enum: -> { Post::BACKDATED_TIME_GRANULARITY }}
256
258
  api.has_param :call_to_action, 'object'
257
259
  api.has_param :caption, 'string'
258
- api.has_param :checkin_entry_point, { enum: %w{BRANDING_CHECKIN BRANDING_OTHER BRANDING_PHOTO BRANDING_STATUS }}
260
+ api.has_param :checkin_entry_point, { enum: -> { Post::CHECKIN_ENTRY_POINT }}
259
261
  api.has_param :child_attachments, { list: 'object' }
260
262
  api.has_param :client_mutation_id, 'string'
261
263
  api.has_param :composer_entry_picker, 'string'
@@ -275,7 +277,7 @@ module FacebookAds
275
277
  api.has_param :expanded_height, 'int'
276
278
  api.has_param :expanded_width, 'int'
277
279
  api.has_param :feed_targeting, 'object'
278
- api.has_param :formatting, { enum: %w{MARKDOWN PLAINTEXT }}
280
+ api.has_param :formatting, { enum: -> { Post::FORMATTING }}
279
281
  api.has_param :fun_fact_prompt_id, 'int'
280
282
  api.has_param :fun_fact_toastee_id, 'int'
281
283
  api.has_param :has_nickname, 'bool'
@@ -312,11 +314,11 @@ module FacebookAds
312
314
  api.has_param :page_recommendation, 'string'
313
315
  api.has_param :picture, 'string'
314
316
  api.has_param :place, 'object'
315
- api.has_param :place_attachment_setting, { enum: %w{1 2 }}
317
+ api.has_param :place_attachment_setting, { enum: -> { Post::PLACE_ATTACHMENT_SETTING }}
316
318
  api.has_param :place_list, 'string'
317
319
  api.has_param :place_list_data, { list: 'string' }
318
- api.has_param :post_surfaces_blacklist, { list: { enum: %w{1 2 3 4 5 }} }
319
- api.has_param :posting_to_redspace, { enum: %w{disabled enabled }}
320
+ api.has_param :post_surfaces_blacklist, { list: { enum: -> { Post::POST_SURFACES_BLACKLIST }} }
321
+ api.has_param :posting_to_redspace, { enum: -> { Post::POSTING_TO_REDSPACE }}
320
322
  api.has_param :privacy, 'string'
321
323
  api.has_param :prompt_id, 'string'
322
324
  api.has_param :prompt_tracking_string, 'string'
@@ -336,7 +338,7 @@ module FacebookAds
336
338
  api.has_param :sponsor_relationship, 'int'
337
339
  api.has_param :suggested_place_id, 'object'
338
340
  api.has_param :tags, { list: 'int' }
339
- api.has_param :target_surface, { enum: %w{STORY TIMELINE }}
341
+ api.has_param :target_surface, { enum: -> { Post::TARGET_SURFACE }}
340
342
  api.has_param :targeting, 'object'
341
343
  api.has_param :text_format_metadata, 'string'
342
344
  api.has_param :text_format_preset_id, 'string'
@@ -346,7 +348,7 @@ module FacebookAds
346
348
  api.has_param :time_since_original_post, 'int'
347
349
  api.has_param :title, 'string'
348
350
  api.has_param :tracking_info, 'string'
349
- api.has_param :unpublished_content_type, { enum: %w{ADS_POST DRAFT INLINE_CREATED PUBLISHED REVIEWABLE_BRANDED_CONTENT SCHEDULED SCHEDULED_RECURRING }}
351
+ api.has_param :unpublished_content_type, { enum: -> { Post::UNPUBLISHED_CONTENT_TYPE }}
350
352
  api.has_param :user_selected_tags, 'bool'
351
353
  api.has_param :video_start_time_ms, 'int'
352
354
  api.has_param :viewer_coordinates, 'object'
@@ -504,8 +506,8 @@ module FacebookAds
504
506
  end
505
507
  end
506
508
 
507
- has_edge :owned_product_catalogs do |edge|
508
- edge.get 'ProductCatalog'
509
+ has_edge :payment_transactions do |edge|
510
+ edge.get 'PaymentEnginePayment'
509
511
  end
510
512
 
511
513
  has_edge :permissions do |edge|
@@ -592,6 +594,17 @@ module FacebookAds
592
594
  end
593
595
  end
594
596
 
597
+ has_edge :posts do |edge|
598
+ edge.get 'Post' do |api|
599
+ api.has_param :include_hidden, 'bool'
600
+ api.has_param :q, 'string'
601
+ api.has_param :show_expired, 'bool'
602
+ api.has_param :since, 'datetime'
603
+ api.has_param :until, 'datetime'
604
+ api.has_param :with, 'string'
605
+ end
606
+ end
607
+
595
608
  has_edge :rich_media_documents do |edge|
596
609
  edge.get 'Canvas' do |api|
597
610
  api.has_param :query, 'string'
@@ -613,7 +626,6 @@ module FacebookAds
613
626
  api.has_param :animated_effect_id, 'int'
614
627
  api.has_param :application_id, 'string'
615
628
  api.has_param :asked_fun_fact_prompt_id, 'int'
616
- api.has_param :attribution_app_id, 'string'
617
629
  api.has_param :audio_story_wave_animation_handle, 'string'
618
630
  api.has_param :composer_entry_picker, 'string'
619
631
  api.has_param :composer_entry_point, 'string'
@@ -668,6 +680,7 @@ module FacebookAds
668
680
  api.has_param :sales_promo_id, 'int'
669
681
  api.has_param :slideshow_spec, 'hash'
670
682
  api.has_param :source, 'string'
683
+ api.has_param :source_instagram_media_id, 'string'
671
684
  api.has_param :spherical, 'bool'
672
685
  api.has_param :sponsor_id, 'string'
673
686
  api.has_param :start_offset, 'int'