facebookbusiness 0.7.0.3 → 0.10.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facebook_ads/ad_objects/ad.rb +4 -1
  3. data/lib/facebook_ads/ad_objects/ad_account.rb +33 -46
  4. data/lib/facebook_ads/ad_objects/ad_account_ad_volume.rb +24 -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 +8 -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 +8 -0
  14. data/lib/facebook_ads/ad_objects/ad_creative_interactive_components_spec.rb +1 -0
  15. data/lib/facebook_ads/ad_objects/ad_creative_link_data_call_to_action.rb +6 -0
  16. data/lib/facebook_ads/ad_objects/{offline_terms_of_service.rb → ad_creative_omnichannel_link_spec.rb} +5 -4
  17. data/lib/facebook_ads/ad_objects/ad_network_analytics_sync_query_result.rb +1 -0
  18. data/lib/facebook_ads/ad_objects/ad_place_page_set.rb +6 -0
  19. data/lib/facebook_ads/ad_objects/ad_preview.rb +4 -0
  20. data/lib/facebook_ads/ad_objects/ad_report_run.rb +1 -0
  21. data/lib/facebook_ads/ad_objects/ad_report_spec.rb +0 -1
  22. data/lib/facebook_ads/ad_objects/ad_rule_evaluation_spec.rb +1 -2
  23. data/lib/facebook_ads/ad_objects/ad_rule_execution_spec.rb +4 -0
  24. data/lib/facebook_ads/ad_objects/ad_set.rb +6 -2
  25. data/lib/facebook_ads/ad_objects/ad_study.rb +1 -12
  26. data/lib/facebook_ads/ad_objects/ad_study_objective.rb +1 -4
  27. data/lib/facebook_ads/ad_objects/ad_video.rb +8 -6
  28. data/lib/facebook_ads/ad_objects/adgroup_activity.rb +2 -0
  29. data/lib/facebook_ads/ad_objects/adgroup_placement_specific_review_feedback.rb +1 -0
  30. data/lib/facebook_ads/ad_objects/adoptable_pet.rb +8 -0
  31. data/lib/facebook_ads/ad_objects/ads_action_stats.rb +2 -0
  32. data/lib/facebook_ads/ad_objects/ads_insights.rb +3 -1
  33. data/lib/facebook_ads/ad_objects/ads_pixel.rb +8 -0
  34. data/lib/facebook_ads/ad_objects/album.rb +0 -10
  35. data/lib/facebook_ads/ad_objects/application.rb +18 -4
  36. data/lib/facebook_ads/ad_objects/atlas_campaign.rb +1 -1
  37. data/lib/facebook_ads/ad_objects/automotive_model.rb +26 -0
  38. data/lib/facebook_ads/ad_objects/business.rb +77 -2
  39. data/lib/facebook_ads/ad_objects/business_asset_group.rb +2 -0
  40. data/lib/facebook_ads/ad_objects/business_role_request.rb +4 -0
  41. data/lib/facebook_ads/ad_objects/business_unit.rb +1 -2
  42. data/lib/facebook_ads/ad_objects/business_user.rb +4 -0
  43. data/lib/facebook_ads/ad_objects/campaign.rb +11 -2
  44. data/lib/facebook_ads/ad_objects/{friend_list.rb → catalog_item_channels_to_integrity_status.rb} +5 -5
  45. data/lib/facebook_ads/ad_objects/catalog_sub_vertical_list.rb +91 -0
  46. data/lib/facebook_ads/ad_objects/comment.rb +1 -0
  47. data/lib/facebook_ads/ad_objects/commerce_merchant_settings.rb +17 -19
  48. data/lib/facebook_ads/ad_objects/commerce_merchant_settings_setup_status.rb +1 -0
  49. data/lib/facebook_ads/ad_objects/commerce_order.rb +6 -0
  50. data/lib/facebook_ads/ad_objects/commerce_order_transaction_detail.rb +4 -0
  51. data/lib/facebook_ads/ad_objects/{work_meeting_link.rb → connections_targeting.rb} +3 -2
  52. data/lib/facebook_ads/ad_objects/{atlas_url.rb → contextual_bundling_spec.rb} +2 -2
  53. data/lib/facebook_ads/ad_objects/{iterative_split_test_config.rb → cpas_advertiser_partnership_recommendation.rb} +9 -9
  54. data/lib/facebook_ads/ad_objects/cpas_collaboration_request.rb +50 -0
  55. data/lib/facebook_ads/ad_objects/custom_audience.rb +8 -10
  56. data/lib/facebook_ads/ad_objects/custom_audience_data_source.rb +1 -0
  57. data/lib/facebook_ads/ad_objects/da_check.rb +7 -0
  58. data/lib/facebook_ads/ad_objects/destination.rb +1 -0
  59. data/lib/facebook_ads/ad_objects/event.rb +1 -1
  60. data/lib/facebook_ads/ad_objects/extended_credit.rb +7 -1
  61. data/lib/facebook_ads/ad_objects/flight.rb +1 -0
  62. data/lib/facebook_ads/ad_objects/group.rb +29 -23
  63. data/lib/facebook_ads/ad_objects/home_listing.rb +1 -0
  64. data/lib/facebook_ads/ad_objects/hotel.rb +1 -0
  65. data/lib/facebook_ads/ad_objects/hotel_room.rb +1 -0
  66. data/lib/facebook_ads/ad_objects/ig_media.rb +0 -1
  67. data/lib/facebook_ads/ad_objects/ig_user.rb +6 -1
  68. data/lib/facebook_ads/ad_objects/image_copyright.rb +302 -0
  69. data/lib/facebook_ads/ad_objects/insights_result.rb +1 -1
  70. data/lib/facebook_ads/ad_objects/instagram_user.rb +0 -3
  71. data/lib/facebook_ads/ad_objects/life_event.rb +0 -4
  72. data/lib/facebook_ads/ad_objects/link.rb +0 -10
  73. data/lib/facebook_ads/ad_objects/live_video.rb +0 -4
  74. data/lib/facebook_ads/ad_objects/messenger_profile.rb +1 -0
  75. data/lib/facebook_ads/ad_objects/native_offer_view.rb +0 -1
  76. data/lib/facebook_ads/ad_objects/oracle_transaction.rb +0 -7
  77. data/lib/facebook_ads/ad_objects/page.rb +76 -72
  78. data/lib/facebook_ads/ad_objects/page_call_to_action.rb +3 -0
  79. data/lib/facebook_ads/ad_objects/page_commerce_eligibility.rb +38 -0
  80. data/lib/facebook_ads/ad_objects/page_post.rb +0 -8
  81. data/lib/facebook_ads/ad_objects/{user_taggable_friend.rb → payment_engine_payment.rb} +36 -13
  82. data/lib/facebook_ads/ad_objects/payment_subscription.rb +3 -3
  83. data/lib/facebook_ads/ad_objects/photo.rb +0 -4
  84. data/lib/facebook_ads/ad_objects/playable_content.rb +1 -0
  85. data/lib/facebook_ads/ad_objects/post.rb +46 -27
  86. data/lib/facebook_ads/ad_objects/product_catalog.rb +57 -9
  87. data/lib/facebook_ads/ad_objects/product_feed.rb +32 -1
  88. data/lib/facebook_ads/ad_objects/product_feed_schedule.rb +2 -0
  89. data/lib/facebook_ads/ad_objects/product_group.rb +1 -0
  90. data/lib/facebook_ads/ad_objects/product_item.rb +11 -1
  91. data/lib/facebook_ads/ad_objects/{user_payment_methods_info.rb → product_item_ar_data.rb} +23 -8
  92. data/lib/facebook_ads/ad_objects/product_set.rb +1 -0
  93. data/lib/facebook_ads/ad_objects/product_set_metadata.rb +1 -0
  94. data/lib/facebook_ads/ad_objects/publisher_block_list.rb +6 -0
  95. data/lib/facebook_ads/ad_objects/referral.rb +2 -0
  96. data/lib/facebook_ads/ad_objects/security_settings.rb +0 -1
  97. data/lib/facebook_ads/ad_objects/server_side/action_source.rb +48 -0
  98. data/lib/facebook_ads/ad_objects/server_side/batch_processor.rb +73 -0
  99. data/lib/facebook_ads/ad_objects/server_side/content.rb +23 -4
  100. data/lib/facebook_ads/ad_objects/server_side/custom_data.rb +21 -0
  101. data/lib/facebook_ads/ad_objects/server_side/delivery_category.rb +33 -0
  102. data/lib/facebook_ads/ad_objects/server_side/event.rb +32 -6
  103. data/lib/facebook_ads/ad_objects/server_side/event_request.rb +61 -14
  104. data/lib/facebook_ads/ad_objects/server_side/event_request_async.rb +43 -0
  105. data/lib/facebook_ads/ad_objects/server_side/http_method.rb +28 -0
  106. data/lib/facebook_ads/ad_objects/{page_about_story.rb → server_side/http_service_interface.rb} +10 -16
  107. data/lib/facebook_ads/ad_objects/server_side/http_util.rb +31 -0
  108. data/lib/facebook_ads/ad_objects/server_side/user_data.rb +20 -1
  109. data/lib/facebook_ads/ad_objects/server_side/util.rb +27 -1
  110. data/lib/facebook_ads/ad_objects/system_user.rb +4 -4
  111. data/lib/facebook_ads/ad_objects/targeting.rb +3 -5
  112. data/lib/facebook_ads/ad_objects/third_party_measurement_report_dataset.rb +0 -1
  113. data/lib/facebook_ads/ad_objects/user.rb +35 -32
  114. data/lib/facebook_ads/ad_objects/vehicle.rb +2 -0
  115. data/lib/facebook_ads/ad_objects/vehicle_offer.rb +1 -0
  116. data/lib/facebook_ads/ad_objects/whats_app_business_account.rb +25 -0
  117. data/lib/facebook_ads/ad_objects/{read_only_analytics_user_property_config.rb → whats_app_business_profile.rb} +2 -3
  118. data/lib/facebook_ads/edge.rb +2 -1
  119. data/lib/facebook_ads/errors.rb +1 -1
  120. data/lib/facebook_ads/session.rb +1 -1
  121. data/lib/facebook_ads/version.rb +2 -2
  122. metadata +47 -28
  123. data/lib/facebook_ads/ad_objects/ad_account_creation_request.rb +0 -71
  124. data/lib/facebook_ads/ad_objects/ad_account_roas.rb +0 -65
  125. data/lib/facebook_ads/ad_objects/event_tour.rb +0 -56
  126. data/lib/facebook_ads/ad_objects/split_test_config.rb +0 -41
  127. data/lib/facebook_ads/ad_objects/user_payment_modules_options.rb +0 -40
@@ -52,12 +52,16 @@ 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'
58
60
  normalized_input = normalize_city input
59
61
  when 'currency'
60
62
  return normalize_currency input
63
+ when 'delivery_category'
64
+ return normalize_delivery_category input
61
65
  when 'em'
62
66
  normalized_input = normalize_email input
63
67
  when 'ge'
@@ -150,7 +154,7 @@ module FacebookAds
150
154
  def self.normalize_email(email)
151
155
 
152
156
  if EMAIL_REGEX.match(email) == nil
153
- 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."
154
158
  end
155
159
 
156
160
  return email
@@ -277,6 +281,28 @@ module FacebookAds
277
281
  end
278
282
  doby
279
283
  end
284
+
285
+ # Normalizes the input delivery category and returns valid value (or throw exception if invalid).
286
+ def self.normalize_delivery_category(delivery_category)
287
+
288
+ unless FacebookAds::ServerSide::DeliveryCategory.include?(delivery_category)
289
+ raise ArgumentError.new("Invalid delivery_category passed: " + delivery_category + ". Please use one of the defined values #{FacebookAds::ServerSide::DeliveryCategory.to_a.join(',')}" )
290
+ end
291
+
292
+ delivery_category;
293
+ end
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
280
306
  end
281
307
  end
282
308
  end
@@ -29,10 +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",
38
+ "FINANCE_VIEW",
39
+ "MANAGE",
36
40
  "PARTNER_CENTER_ADMIN",
37
41
  "PARTNER_CENTER_ANALYST",
38
42
  "PARTNER_CENTER_EDUCATION",
@@ -70,9 +74,5 @@ module FacebookAds
70
74
  edge.get 'ProductCatalog'
71
75
  end
72
76
 
73
- has_edge :updated_by do |edge|
74
- edge.get 'User'
75
- end
76
-
77
77
  end
78
78
  end
@@ -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
  ]
@@ -50,7 +48,7 @@ module FacebookAds
50
48
  field :catalog_based_targeting, 'CatalogBasedTargeting'
51
49
  field :cities, { list: 'IdName' }
52
50
  field :college_years, { list: 'int' }
53
- field :connections, { list: 'IdName' }
51
+ field :connections, { list: 'ConnectionsTargeting' }
54
52
  field :contextual_targeting_categories, { list: 'IdName' }
55
53
  field :countries, { list: 'string' }
56
54
  field :country, { list: 'string' }
@@ -72,7 +70,7 @@ module FacebookAds
72
70
  field :ethnic_affinity, { list: 'IdName' }
73
71
  field :exclude_reached_since, { list: 'string' }
74
72
  field :excluded_brand_safety_content_types, { list: 'string' }
75
- field :excluded_connections, { list: 'IdName' }
73
+ field :excluded_connections, { list: 'ConnectionsTargeting' }
76
74
  field :excluded_custom_audiences, { list: 'RawCustomAudience' }
77
75
  field :excluded_dynamic_audience_ids, { list: 'string' }
78
76
  field :excluded_engagement_specs, { list: 'TargetingDynamicRule' }
@@ -87,7 +85,7 @@ module FacebookAds
87
85
  field :family_statuses, { list: 'IdName' }
88
86
  field :fb_deal_id, 'string'
89
87
  field :flexible_spec, { list: 'FlexibleTargeting' }
90
- field :friends_of_connections, { list: 'IdName' }
88
+ field :friends_of_connections, { list: 'ConnectionsTargeting' }
91
89
  field :genders, { list: 'int' }
92
90
  field :generation, { list: 'IdName' }
93
91
  field :geo_locations, 'TargetingGeoLocation'
@@ -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
@@ -49,15 +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
- field :can_review_measurement_request, 'bool'
58
54
  field :cover, 'UserCoverPhoto'
59
55
  field :currency, 'Currency'
60
- field :devices, { list: 'UserDevice' }
61
56
  field :education, { list: 'object' }
62
57
  field :email, 'string'
63
58
  field :favorite_athletes, { list: 'Experience' }
@@ -70,9 +65,7 @@ module FacebookAds
70
65
  field :install_type, 'string'
71
66
  field :installed, 'bool'
72
67
  field :interested_in, { list: 'string' }
73
- field :is_famedeeplinkinguser, 'bool'
74
68
  field :is_guest_user, 'bool'
75
- field :is_shared_login, 'bool'
76
69
  field :is_verified, 'bool'
77
70
  field :languages, { list: 'Experience' }
78
71
  field :last_name, 'string'
@@ -88,26 +81,21 @@ module FacebookAds
88
81
  field :payment_pricepoints, 'PaymentPricepoints'
89
82
  field :political, 'string'
90
83
  field :profile_pic, 'string'
91
- field :public_key, 'string'
92
84
  field :quotes, 'string'
93
85
  field :relationship_status, 'string'
94
86
  field :religion, 'string'
95
- field :security_settings, 'SecuritySettings'
96
87
  field :shared_login_upgrade_required_by, 'datetime'
97
88
  field :short_name, 'string'
98
89
  field :significant_other, 'User'
99
90
  field :sports, { list: 'Experience' }
100
91
  field :supports_donate_button_in_live_video, 'bool'
101
- field :test_group, 'int'
102
92
  field :third_party_id, 'string'
103
93
  field :timezone, 'double'
104
94
  field :token_for_business, 'string'
105
95
  field :updated_time, 'datetime'
106
96
  field :verified, 'bool'
107
97
  field :video_upload_limits, 'VideoUploadLimits'
108
- field :viewer_can_send_gift, 'bool'
109
98
  field :website, 'string'
110
- field :work, { list: 'object' }
111
99
 
112
100
  has_edge :access_tokens do |edge|
113
101
  edge.delete
@@ -211,6 +199,7 @@ module FacebookAds
211
199
  end
212
200
  edge.get 'Business'
213
201
  edge.post 'Business' do |api|
202
+ api.has_param :child_business_external_id, 'string'
214
203
  api.has_param :email, 'string'
215
204
  api.has_param :name, 'string'
216
205
  api.has_param :primary_page, 'string'
@@ -243,7 +232,15 @@ module FacebookAds
243
232
  end
244
233
 
245
234
  has_edge :feed do |edge|
246
- 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|
247
244
  api.has_param :actions, 'object'
248
245
  api.has_param :adaptive_type, 'string'
249
246
  api.has_param :album_id, 'string'
@@ -257,10 +254,10 @@ module FacebookAds
257
254
  api.has_param :attached_media, { list: 'object' }
258
255
  api.has_param :audience_exp, 'bool'
259
256
  api.has_param :backdated_time, 'datetime'
260
- 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 }}
261
258
  api.has_param :call_to_action, 'object'
262
259
  api.has_param :caption, 'string'
263
- 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 }}
264
261
  api.has_param :child_attachments, { list: 'object' }
265
262
  api.has_param :client_mutation_id, 'string'
266
263
  api.has_param :composer_entry_picker, 'string'
@@ -280,7 +277,7 @@ module FacebookAds
280
277
  api.has_param :expanded_height, 'int'
281
278
  api.has_param :expanded_width, 'int'
282
279
  api.has_param :feed_targeting, 'object'
283
- api.has_param :formatting, { enum: %w{MARKDOWN PLAINTEXT }}
280
+ api.has_param :formatting, { enum: -> { Post::FORMATTING }}
284
281
  api.has_param :fun_fact_prompt_id, 'int'
285
282
  api.has_param :fun_fact_toastee_id, 'int'
286
283
  api.has_param :has_nickname, 'bool'
@@ -317,11 +314,11 @@ module FacebookAds
317
314
  api.has_param :page_recommendation, 'string'
318
315
  api.has_param :picture, 'string'
319
316
  api.has_param :place, 'object'
320
- api.has_param :place_attachment_setting, { enum: %w{1 2 }}
317
+ api.has_param :place_attachment_setting, { enum: -> { Post::PLACE_ATTACHMENT_SETTING }}
321
318
  api.has_param :place_list, 'string'
322
319
  api.has_param :place_list_data, { list: 'string' }
323
- api.has_param :post_surfaces_blacklist, { list: { enum: %w{1 2 3 4 5 }} }
324
- 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 }}
325
322
  api.has_param :privacy, 'string'
326
323
  api.has_param :prompt_id, 'string'
327
324
  api.has_param :prompt_tracking_string, 'string'
@@ -341,7 +338,7 @@ module FacebookAds
341
338
  api.has_param :sponsor_relationship, 'int'
342
339
  api.has_param :suggested_place_id, 'object'
343
340
  api.has_param :tags, { list: 'int' }
344
- api.has_param :target_surface, { enum: %w{STORY TIMELINE }}
341
+ api.has_param :target_surface, { enum: -> { Post::TARGET_SURFACE }}
345
342
  api.has_param :targeting, 'object'
346
343
  api.has_param :text_format_metadata, 'string'
347
344
  api.has_param :text_format_preset_id, 'string'
@@ -351,7 +348,7 @@ module FacebookAds
351
348
  api.has_param :time_since_original_post, 'int'
352
349
  api.has_param :title, 'string'
353
350
  api.has_param :tracking_info, 'string'
354
- 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 }}
355
352
  api.has_param :user_selected_tags, 'bool'
356
353
  api.has_param :video_start_time_ms, 'int'
357
354
  api.has_param :viewer_coordinates, 'object'
@@ -468,6 +465,7 @@ module FacebookAds
468
465
  edge.post 'LiveVideo' do |api|
469
466
  api.has_param :content_tags, { list: 'string' }
470
467
  api.has_param :description, 'string'
468
+ api.has_param :enable_backup_ingest, 'bool'
471
469
  api.has_param :encoding_settings, 'string'
472
470
  api.has_param :fisheye_video_cropped, 'bool'
473
471
  api.has_param :front_z_rotation, 'double'
@@ -479,7 +477,6 @@ module FacebookAds
479
477
  api.has_param :privacy, 'string'
480
478
  api.has_param :projection, { enum: -> { LiveVideo::PROJECTION }}
481
479
  api.has_param :published, 'bool'
482
- api.has_param :save_vod, 'bool'
483
480
  api.has_param :schedule_custom_profile_image, 'file'
484
481
  api.has_param :spatial_audio_format, { enum: -> { LiveVideo::SPATIAL_AUDIO_FORMAT }}
485
482
  api.has_param :status, { enum: -> { LiveVideo::STATUS }}
@@ -490,11 +487,6 @@ module FacebookAds
490
487
  end
491
488
  end
492
489
 
493
- has_edge :meeting_link do |edge|
494
- edge.get 'WorkMeetingLink'
495
- edge.post 'WorkMeetingLink'
496
- end
497
-
498
490
  has_edge :music do |edge|
499
491
  edge.get 'Page' do |api|
500
492
  api.has_param :target_id, 'string'
@@ -514,6 +506,10 @@ module FacebookAds
514
506
  end
515
507
  end
516
508
 
509
+ has_edge :payment_transactions do |edge|
510
+ edge.get 'PaymentEnginePayment'
511
+ end
512
+
517
513
  has_edge :permissions do |edge|
518
514
  edge.delete do |api|
519
515
  api.has_param :permission, 'string'
@@ -598,6 +594,17 @@ module FacebookAds
598
594
  end
599
595
  end
600
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
+
601
608
  has_edge :rich_media_documents do |edge|
602
609
  edge.get 'Canvas' do |api|
603
610
  api.has_param :query, 'string'
@@ -610,10 +617,6 @@ module FacebookAds
610
617
  end
611
618
  end
612
619
 
613
- has_edge :taggable_friends do |edge|
614
- edge.get 'UserTaggableFriend'
615
- end
616
-
617
620
  has_edge :videos do |edge|
618
621
  edge.get 'AdVideo' do |api|
619
622
  api.has_param :type, { enum: -> { AdVideo::TYPE }}
@@ -623,7 +626,6 @@ module FacebookAds
623
626
  api.has_param :animated_effect_id, 'int'
624
627
  api.has_param :application_id, 'string'
625
628
  api.has_param :asked_fun_fact_prompt_id, 'int'
626
- api.has_param :attribution_app_id, 'string'
627
629
  api.has_param :audio_story_wave_animation_handle, 'string'
628
630
  api.has_param :composer_entry_picker, 'string'
629
631
  api.has_param :composer_entry_point, 'string'
@@ -678,6 +680,7 @@ module FacebookAds
678
680
  api.has_param :sales_promo_id, 'int'
679
681
  api.has_param :slideshow_spec, 'hash'
680
682
  api.has_param :source, 'string'
683
+ api.has_param :source_instagram_media_id, 'string'
681
684
  api.has_param :spherical, 'bool'
682
685
  api.has_param :sponsor_id, 'string'
683
686
  api.has_param :start_offset, 'int'
@@ -29,6 +29,7 @@ module FacebookAds
29
29
  AVAILABILITY = [
30
30
  "AVAILABLE",
31
31
  "NOT_AVAILABLE",
32
+ "PENDING",
32
33
  ]
33
34
 
34
35
  BODY_STYLE = [
@@ -108,6 +109,7 @@ module FacebookAds
108
109
  field :applinks, 'CatalogItemAppLinks'
109
110
  field :availability, 'string'
110
111
  field :body_style, 'string'
112
+ field :category_specific_fields, 'CatalogSubVerticalList'
111
113
  field :condition, 'string'
112
114
  field :currency, 'string'
113
115
  field :custom_label_0, 'string'
@@ -35,6 +35,7 @@ module FacebookAds
35
35
  field :body_style, 'string'
36
36
  field :cashback_currency, 'string'
37
37
  field :cashback_price, 'string'
38
+ field :category_specific_fields, 'CatalogSubVerticalList'
38
39
  field :currency, 'string'
39
40
  field :dma_codes, { list: 'string' }
40
41
  field :downpayment_currency, 'string'
@@ -26,6 +26,14 @@ module FacebookAds
26
26
  # pull request for this class.
27
27
 
28
28
  class WhatsAppBusinessAccount < AdObject
29
+ TASKS = [
30
+ "DEVELOP",
31
+ "MANAGE",
32
+ "MANAGE_PHONE",
33
+ "MANAGE_TEMPLATES",
34
+ "VIEW_COST",
35
+ ]
36
+
29
37
  CATEGORY = [
30
38
  "ACCOUNT_UPDATE",
31
39
  "ALERT_UPDATE",
@@ -47,12 +55,27 @@ module FacebookAds
47
55
  field :message_template_namespace, 'string'
48
56
  field :name, 'string'
49
57
  field :on_behalf_of_business_info, 'object'
58
+ field :owner_business_info, 'object'
59
+ field :primary_funding_id, 'string'
50
60
  field :purchase_order_number, 'string'
51
61
  field :status, 'string'
52
62
  field :timezone_id, 'string'
53
63
  has_no_post
54
64
  has_no_delete
55
65
 
66
+ has_edge :assigned_users do |edge|
67
+ edge.delete do |api|
68
+ api.has_param :user, 'int'
69
+ end
70
+ edge.get 'AssignedUser' do |api|
71
+ api.has_param :business, 'string'
72
+ end
73
+ edge.post 'WhatsAppBusinessAccount' do |api|
74
+ api.has_param :tasks, { list: { enum: -> { WhatsAppBusinessAccount::TASKS }} }
75
+ api.has_param :user, 'int'
76
+ end
77
+ end
78
+
56
79
  has_edge :message_templates do |edge|
57
80
  edge.delete do |api|
58
81
  api.has_param :name, 'string'
@@ -78,6 +101,8 @@ module FacebookAds
78
101
  end
79
102
 
80
103
  has_edge :subscribed_apps do |edge|
104
+ edge.delete
105
+ edge.get
81
106
  edge.post 'WhatsAppBusinessAccount'
82
107
  end
83
108
 
@@ -25,11 +25,10 @@ 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 ReadOnlyAnalyticsUserPropertyConfig < AdObject
28
+ class WhatsAppBusinessProfile < AdObject
29
29
 
30
- field :active_properties, { list: 'string' }
31
30
  field :id, 'string'
32
- has_no_post
31
+ field :name_verification, 'object'
33
32
  has_no_delete
34
33
 
35
34
  end
@@ -53,6 +53,7 @@ module FacebookAds
53
53
  def reload!
54
54
  @collection = Array.new
55
55
  self.has_next_page = true
56
+ self.next_page_cursor = nil
56
57
  end
57
58
 
58
59
  private
@@ -95,7 +96,7 @@ module FacebookAds
95
96
  node.post_edge(name, graph_params.merge(params)) do |response|
96
97
  # TODO params check
97
98
  # TODO Add new object to collection?
98
-
99
+
99
100
  field_type = self.class.return_types[:post]
100
101
 
101
102
  obj = field_type.deserialize(response, node.session)