facebookbusiness 16.0.2 → 17.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facebook_ads/ad_objects/ad.rb +7 -0
  3. data/lib/facebook_ads/ad_objects/ad_account.rb +35 -4
  4. data/lib/facebook_ads/ad_objects/ad_account_ad_volume.rb +22 -0
  5. data/lib/facebook_ads/ad_objects/{instant_article_insights_query_result.rb → ad_account_business_constraints.rb} +2 -26
  6. data/lib/facebook_ads/ad_objects/ad_account_delivery_estimate.rb +2 -1
  7. data/lib/facebook_ads/ad_objects/ad_account_matched_search_applications_edge_data.rb +2 -0
  8. data/lib/facebook_ads/ad_objects/ad_account_targeting_unified.rb +259 -0
  9. data/lib/facebook_ads/ad_objects/ad_asset_feed_spec.rb +3 -0
  10. data/lib/facebook_ads/ad_objects/ad_campaign_delivery_estimate.rb +2 -1
  11. data/lib/facebook_ads/ad_objects/ad_campaign_delivery_stats_unsupported_reasons.rb +1 -1
  12. data/lib/facebook_ads/ad_objects/ad_creative.rb +6 -0
  13. data/lib/facebook_ads/ad_objects/ad_creative_branded_content_ads.rb +41 -0
  14. data/lib/facebook_ads/ad_objects/ad_creative_facebook_branded_content.rb +39 -0
  15. data/lib/facebook_ads/ad_objects/ad_creative_insights.rb +1 -1
  16. data/lib/facebook_ads/ad_objects/{commerce_merchant_tos_acceptance.rb → ad_creative_instagram_branded_content.rb} +4 -3
  17. data/lib/facebook_ads/ad_objects/ad_creative_link_data_call_to_action.rb +2 -0
  18. data/lib/facebook_ads/ad_objects/ad_creative_link_data_template_video_spec.rb +1 -1
  19. data/lib/facebook_ads/ad_objects/ad_preview.rb +6 -1
  20. data/lib/facebook_ads/ad_objects/ad_promoted_object.rb +2 -0
  21. data/lib/facebook_ads/ad_objects/ad_rule.rb +4 -0
  22. data/lib/facebook_ads/ad_objects/ad_set.rb +4 -2
  23. data/lib/facebook_ads/ad_objects/ad_study_objective.rb +8 -0
  24. data/lib/facebook_ads/ad_objects/ad_video.rb +8 -0
  25. data/lib/facebook_ads/ad_objects/ads_insights.rb +8 -2
  26. data/lib/facebook_ads/ad_objects/ads_optimal_delivery_growth_opportunity.rb +1 -1
  27. data/lib/facebook_ads/ad_objects/ads_pixel.rb +4 -0
  28. data/lib/facebook_ads/ad_objects/application.rb +7 -1
  29. data/lib/facebook_ads/ad_objects/brand_request.rb +55 -0
  30. data/lib/facebook_ads/ad_objects/business.rb +25 -0
  31. data/lib/facebook_ads/ad_objects/campaign.rb +0 -3
  32. data/lib/facebook_ads/ad_objects/catalog_item_appeal_status.rb +9 -1
  33. data/lib/facebook_ads/ad_objects/commerce_merchant_settings.rb +2 -2
  34. data/lib/facebook_ads/ad_objects/cpas_business_setup_config.rb +2 -2
  35. data/lib/facebook_ads/ad_objects/cpas_merchant_config.rb +2 -2
  36. data/lib/facebook_ads/ad_objects/custom_audience.rb +3 -0
  37. data/lib/facebook_ads/ad_objects/custom_audience_data_source.rb +2 -0
  38. data/lib/facebook_ads/ad_objects/{ad_account_custom_audience.rb → custom_audience_group.rb} +1 -1
  39. data/lib/facebook_ads/ad_objects/extended_credit_invoice_group.rb +0 -1
  40. data/lib/facebook_ads/ad_objects/group.rb +0 -7
  41. data/lib/facebook_ads/ad_objects/ig_user.rb +1 -0
  42. data/lib/facebook_ads/ad_objects/instant_articles_stats.rb +3 -3
  43. data/lib/facebook_ads/ad_objects/job_opening.rb +91 -0
  44. data/lib/facebook_ads/ad_objects/lead.rb +1 -0
  45. data/lib/facebook_ads/ad_objects/leadgen_form.rb +1 -1
  46. data/lib/facebook_ads/ad_objects/offline_conversion_data_set.rb +0 -11
  47. data/lib/facebook_ads/ad_objects/open_bridge_configuration.rb +39 -0
  48. data/lib/facebook_ads/ad_objects/page.rb +24 -42
  49. data/lib/facebook_ads/ad_objects/page_post_experiment.rb +1 -1
  50. data/lib/facebook_ads/ad_objects/product_catalog.rb +3 -22
  51. data/lib/facebook_ads/ad_objects/product_catalog_category.rb +1 -1
  52. data/lib/facebook_ads/ad_objects/product_feed_rule.rb +1 -1
  53. data/lib/facebook_ads/ad_objects/product_feed_rule_suggestion.rb +1 -1
  54. data/lib/facebook_ads/ad_objects/product_feed_schedule.rb +1 -11
  55. data/lib/facebook_ads/ad_objects/product_item.rb +10 -5
  56. data/lib/facebook_ads/ad_objects/reach_frequency_estimates_placement_breakdown.rb +3 -0
  57. data/lib/facebook_ads/ad_objects/reach_frequency_prediction.rb +4 -4
  58. data/lib/facebook_ads/ad_objects/saved_audience.rb +0 -1
  59. data/lib/facebook_ads/ad_objects/server_side/event.rb +23 -3
  60. data/lib/facebook_ads/ad_objects/split_test_winner.rb +1 -1
  61. data/lib/facebook_ads/ad_objects/targeting_geo_location_electoral_district.rb +1 -0
  62. data/lib/facebook_ads/ad_objects/unified_thread.rb +1 -0
  63. data/lib/facebook_ads/ad_objects/url.rb +0 -2
  64. data/lib/facebook_ads/ad_objects/user.rb +3 -2
  65. data/lib/facebook_ads/ad_objects/vehicle_offer.rb +8 -0
  66. data/lib/facebook_ads/ad_objects/whats_app_business_account.rb +18 -0
  67. data/lib/facebook_ads/ad_objects/{instant_article.rb → whats_app_business_pre_verified_phone_number.rb} +21 -16
  68. data/lib/facebook_ads/field_types/datetime.rb +1 -1
  69. data/lib/facebook_ads/helpers/shortcuts.rb +1 -1
  70. data/lib/facebook_ads/version.rb +2 -2
  71. metadata +11 -7
  72. data/lib/facebook_ads/ad_objects/jobs_job.rb +0 -85
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3cc233d0ef6c81bb2c9ded5635030dd7735c9b66271828cfab0e0f939358fd71
4
- data.tar.gz: c621b2fa80cd4f81d43941cab420ce2d6ca08f0398725198a585a090bfc9f2d9
3
+ metadata.gz: ea0e8d070321c91fb8b1fec0c476fbecd5fc1da115d3a2d319ce41477d1fac09
4
+ data.tar.gz: aeabd1ac2204722d7b085770d4cbd9c344cb90f043b52484d3d2f8a08a903294
5
5
  SHA512:
6
- metadata.gz: 6eda74074e39c3c80caca0b0041946636b63bc5e8c38701007cbe2428ff1d73c3c795c9401f52354bb0bac34214514b43082582fb801b4d006aa27b263cbe0c0
7
- data.tar.gz: ecb32522538fbb5bb0ea299ef8e3f3d7f58fa781cde917fd33bd1975235bce17cef5eeed52db4f9b077579990fcbe71f1453fa8a9c4f3fe4d48424cb606775c8
6
+ metadata.gz: c6ab2202da52dc9005c470250691cf371b474e79323c2020cf80baae31a02de88802d99bf2cba5e12d87732a6af2074fb80abf234f48c64ad1535e6ff0ff126e
7
+ data.tar.gz: 0d23d40e35c05226cf2d907e5d5aa123af0345a7f521df3eae20d7029eb412f265cbd03c75da55d42f407034cd10d2833b586c58bee2ef29fcd60e0496efd87b
@@ -92,6 +92,11 @@ module FacebookAds
92
92
  "validate_only",
93
93
  ]
94
94
 
95
+ META_REWARD_ADGROUP_STATUS = [
96
+ "ACTIVE",
97
+ "INACTIVE",
98
+ ]
99
+
95
100
  OPERATOR = [
96
101
  "ALL",
97
102
  "ANY",
@@ -127,6 +132,7 @@ module FacebookAds
127
132
  field :id, 'string'
128
133
  field :issues_info, { list: 'AdgroupIssuesInfo' }
129
134
  field :last_updated_by_app_id, 'string'
135
+ field :meta_reward_adgroup_status, 'string'
130
136
  field :name, 'string'
131
137
  field :preview_shareable_link, 'string'
132
138
  field :priority, 'int'
@@ -232,6 +238,7 @@ module FacebookAds
232
238
  has_edge :previews do |edge|
233
239
  edge.get 'AdPreview' do |api|
234
240
  api.has_param :ad_format, { enum: -> { AdPreview::AD_FORMAT }}
241
+ api.has_param :creative_feature, { enum: -> { AdPreview::CREATIVE_FEATURE }}
235
242
  api.has_param :dynamic_asset_label, 'string'
236
243
  api.has_param :dynamic_creative_spec, 'object'
237
244
  api.has_param :dynamic_customization, 'object'
@@ -122,6 +122,7 @@ module FacebookAds
122
122
  SUBTYPE = [
123
123
  "APP",
124
124
  "BAG_OF_ACCOUNTS",
125
+ "BIDDING",
125
126
  "CLAIM",
126
127
  "CUSTOM",
127
128
  "ENGAGEMENT",
@@ -131,6 +132,7 @@ module FacebookAds
131
132
  "MEASUREMENT",
132
133
  "OFFLINE_CONVERSION",
133
134
  "PARTNER",
135
+ "PRIMARY",
134
136
  "REGULATED_CATEGORIES_AUDIENCE",
135
137
  "STUDY_RULE_AUDIENCE",
136
138
  "VIDEO",
@@ -163,7 +165,7 @@ module FacebookAds
163
165
  field :capabilities, { list: 'string' }
164
166
  field :created_time, 'datetime'
165
167
  field :currency, 'string'
166
- field :custom_audience_info, 'AdAccountCustomAudience'
168
+ field :custom_audience_info, 'CustomAudienceGroup'
167
169
  field :disable_reason, 'int'
168
170
  field :end_advertiser, 'string'
169
171
  field :end_advertiser_name, 'string'
@@ -173,7 +175,6 @@ module FacebookAds
173
175
  field :fb_entity, 'int'
174
176
  field :funding_source, 'string'
175
177
  field :funding_source_details, 'FundingSourceDetails'
176
- field :has_advertiser_opted_in_odax, 'bool'
177
178
  field :has_migrated_permissions, 'bool'
178
179
  field :has_page_authorized_adaccount, 'bool'
179
180
  field :id, 'string'
@@ -212,6 +213,13 @@ module FacebookAds
212
213
  field :viewable_business, 'Business'
213
214
  has_no_delete
214
215
 
216
+ has_edge :account_controls do |edge|
217
+ edge.get 'AdAccountBusinessConstraints'
218
+ edge.post 'AdAccountBusinessConstraints' do |api|
219
+ api.has_param :audience_controls, 'object'
220
+ end
221
+ end
222
+
215
223
  has_edge :activities do |edge|
216
224
  edge.get 'AdActivity' do |api|
217
225
  api.has_param :add_children, 'bool'
@@ -270,6 +278,7 @@ module FacebookAds
270
278
  api.has_param :asset_feed_spec, 'object'
271
279
  api.has_param :authorization_category, { enum: -> { AdCreative::AUTHORIZATION_CATEGORY }}
272
280
  api.has_param :body, 'string'
281
+ api.has_param :branded_content, 'hash'
273
282
  api.has_param :branded_content_sponsor_page_id, 'string'
274
283
  api.has_param :bundle_folder_id, 'string'
275
284
  api.has_param :call_to_action, 'object'
@@ -279,11 +288,13 @@ module FacebookAds
279
288
  api.has_param :destination_set_id, 'string'
280
289
  api.has_param :dynamic_ad_voice, { enum: -> { AdCreative::DYNAMIC_AD_VOICE }}
281
290
  api.has_param :enable_launch_instant_app, 'bool'
291
+ api.has_param :facebook_branded_content, 'hash'
282
292
  api.has_param :image_crops, 'hash'
283
293
  api.has_param :image_file, 'string'
284
294
  api.has_param :image_hash, 'string'
285
295
  api.has_param :image_url, 'string'
286
296
  api.has_param :instagram_actor_id, 'string'
297
+ api.has_param :instagram_branded_content, 'hash'
287
298
  api.has_param :instagram_permalink_url, 'string'
288
299
  api.has_param :instagram_user_id, 'string'
289
300
  api.has_param :interactive_components_spec, 'hash'
@@ -403,6 +414,7 @@ module FacebookAds
403
414
  api.has_param :engagement_audience, 'bool'
404
415
  api.has_param :execution_options, { list: { enum: -> { Ad::EXECUTION_OPTIONS }} }
405
416
  api.has_param :include_demolink_hashes, 'bool'
417
+ api.has_param :meta_reward_adgroup_status, { enum: -> { Ad::META_REWARD_ADGROUP_STATUS }}
406
418
  api.has_param :name, 'string'
407
419
  api.has_param :priority, 'int'
408
420
  api.has_param :source_ad_id, 'string'
@@ -412,6 +424,14 @@ module FacebookAds
412
424
  end
413
425
  end
414
426
 
427
+ has_edge :ads_conversion_goal do |edge|
428
+ edge.post do |api|
429
+ api.has_param :description, 'string'
430
+ api.has_param :goal_name, 'string'
431
+ api.has_param :single_channel_conversion_events, { list: 'hash' }
432
+ end
433
+ end
434
+
415
435
  has_edge :ads_reporting_mmm_reports do |edge|
416
436
  edge.get do |api|
417
437
  api.has_param :filtering, { list: 'hash' }
@@ -443,6 +463,7 @@ module FacebookAds
443
463
  api.has_param :effective_status, { list: { enum: -> { AdSet::EFFECTIVE_STATUS }} }
444
464
  api.has_param :is_completed, 'bool'
445
465
  api.has_param :time_range, 'object'
466
+ api.has_param :updated_since, 'int'
446
467
  end
447
468
  edge.post 'AdSet' do |api|
448
469
  api.has_param :adlabels, { list: 'object' }
@@ -462,6 +483,8 @@ module FacebookAds
462
483
  api.has_param :daily_spend_cap, 'int'
463
484
  api.has_param :date_format, 'string'
464
485
  api.has_param :destination_type, { enum: -> { AdSet::DESTINATION_TYPE }}
486
+ api.has_param :dsa_beneficiary, 'string'
487
+ api.has_param :dsa_payor, 'string'
465
488
  api.has_param :end_time, 'datetime'
466
489
  api.has_param :execution_options, { list: { enum: -> { AdSet::EXECUTION_OPTIONS }} }
467
490
  api.has_param :existing_customer_budget_percentage, 'int'
@@ -491,7 +514,6 @@ module FacebookAds
491
514
  api.has_param :time_stop, 'datetime'
492
515
  api.has_param :topline_id, 'string'
493
516
  api.has_param :tune_for_category, { enum: -> { AdSet::TUNE_FOR_CATEGORY }}
494
- api.has_param :upstream_events, 'hash'
495
517
  end
496
518
  end
497
519
 
@@ -717,7 +739,6 @@ module FacebookAds
717
739
  api.has_param :status, { enum: -> { Campaign::STATUS }}
718
740
  api.has_param :stop_time, 'datetime'
719
741
  api.has_param :topline_id, 'string'
720
- api.has_param :upstream_events, 'hash'
721
742
  end
722
743
  end
723
744
 
@@ -732,9 +753,14 @@ module FacebookAds
732
753
  edge.get 'IgUser'
733
754
  end
734
755
 
756
+ has_edge :conversion_goals do |edge|
757
+ edge.get
758
+ end
759
+
735
760
  has_edge :customaudiences do |edge|
736
761
  edge.get 'CustomAudience' do |api|
737
762
  api.has_param :business_id, 'string'
763
+ api.has_param :fetch_primary_audience, 'bool'
738
764
  api.has_param :fields, { list: 'string' }
739
765
  api.has_param :filtering, { list: 'object' }
740
766
  api.has_param :pixel_id, 'string'
@@ -772,6 +798,7 @@ module FacebookAds
772
798
  api.has_param :rule, 'string'
773
799
  api.has_param :rule_aggregation, 'string'
774
800
  api.has_param :subtype, { enum: -> { CustomAudience::SUBTYPE }}
801
+ api.has_param :use_in_campaigns, 'bool'
775
802
  api.has_param :video_group_ids, { list: 'string' }
776
803
  end
777
804
  end
@@ -815,6 +842,7 @@ module FacebookAds
815
842
  edge.get 'AdPreview' do |api|
816
843
  api.has_param :ad_format, { enum: -> { AdPreview::AD_FORMAT }}
817
844
  api.has_param :creative, 'AdCreative'
845
+ api.has_param :creative_feature, { enum: -> { AdPreview::CREATIVE_FEATURE }}
818
846
  api.has_param :dynamic_asset_label, 'string'
819
847
  api.has_param :dynamic_creative_spec, 'object'
820
848
  api.has_param :dynamic_customization, 'object'
@@ -1059,6 +1087,7 @@ module FacebookAds
1059
1087
  api.has_param :is_exclusion, 'bool'
1060
1088
  api.has_param :limit_type, { enum: -> { AdAccountTargetingUnified::LIMIT_TYPE }}
1061
1089
  api.has_param :regulated_categories, { list: { enum: -> { AdAccountTargetingUnified::REGULATED_CATEGORIES }} }
1090
+ api.has_param :regulated_countries, { list: { enum: -> { AdAccountTargetingUnified::REGULATED_COUNTRIES }} }
1062
1091
  api.has_param :whitelisted_types, { list: { enum: -> { AdAccountTargetingUnified::WHITELISTED_TYPES }} }
1063
1092
  end
1064
1093
  end
@@ -1074,6 +1103,7 @@ module FacebookAds
1074
1103
  api.has_param :promoted_object, 'object'
1075
1104
  api.has_param :q, 'string'
1076
1105
  api.has_param :regulated_categories, { list: { enum: -> { AdAccountTargetingUnified::REGULATED_CATEGORIES }} }
1106
+ api.has_param :regulated_countries, { list: { enum: -> { AdAccountTargetingUnified::REGULATED_COUNTRIES }} }
1077
1107
  api.has_param :session_id, 'int'
1078
1108
  api.has_param :targeting_list, { list: 'object' }
1079
1109
  api.has_param :whitelisted_types, { list: { enum: -> { AdAccountTargetingUnified::WHITELISTED_TYPES }} }
@@ -1098,6 +1128,7 @@ module FacebookAds
1098
1128
  api.has_param :objective, { enum: -> { AdAccountTargetingUnified::OBJECTIVE }}
1099
1129
  api.has_param :objects, 'object'
1100
1130
  api.has_param :regulated_categories, { list: { enum: -> { AdAccountTargetingUnified::REGULATED_CATEGORIES }} }
1131
+ api.has_param :regulated_countries, { list: { enum: -> { AdAccountTargetingUnified::REGULATED_COUNTRIES }} }
1101
1132
  api.has_param :session_id, 'int'
1102
1133
  api.has_param :targeting_list, { list: 'object' }
1103
1134
  api.has_param :whitelisted_types, { list: { enum: -> { AdAccountTargetingUnified::WHITELISTED_TYPES }} }
@@ -27,7 +27,12 @@ module FacebookAds
27
27
 
28
28
  class AdAccountAdVolume < AdObject
29
29
  RECOMMENDATION_TYPE = [
30
+ "AB_TEST",
30
31
  "ACO_TOGGLE",
32
+ "ADS_REPORTING",
33
+ "ADVANTAGE_PLUS_CREATIVE",
34
+ "AD_OBJECTIVE",
35
+ "AEM_V2_INELIGIBLE",
31
36
  "AGGREGATED_BID_LIMITED",
32
37
  "AGGREGATED_BUDGET_LIMITED",
33
38
  "AGGREGATED_COST_LIMITED",
@@ -36,25 +41,42 @@ module FacebookAds
36
41
  "AUDIENCE_EXPANSION",
37
42
  "AUTOFLOW_OPT_IN",
38
43
  "AUTOMATIC_PLACEMENTS",
44
+ "AUTO_BID",
45
+ "BROAD_TARGETING",
39
46
  "CAPI",
47
+ "CONNECT_FACEBOOK_PAGE_TO_INSTAGRAM",
48
+ "CONNECT_FACEBOOK_PAGE_TO_WHATSAPP",
40
49
  "COST_GOAL",
41
50
  "COST_GOAL_BUDGET_LIMITED",
42
51
  "COST_GOAL_CPA_LIMITED",
43
52
  "CREATIVE_BADGE",
44
53
  "CREATIVE_FATIGUE",
54
+ "CREATIVE_FATIGUE_HOURLY",
45
55
  "CREATIVE_LIMITED",
56
+ "CREATIVE_LIMITED_HOURLY",
46
57
  "DEAD_LINK",
47
58
  "ECOSYSTEM_BID_REDUCE_L1_CARDINALITY",
48
59
  "FRAGMENTATION",
60
+ "GES_TEST",
49
61
  "LEARNING_LIMITED",
50
62
  "LOW_OUTCOME",
51
63
  "MMT_CAROUSEL_TO_VIDEO",
64
+ "MOBILE_FIRST_VIDEO",
52
65
  "MULTI_TEXT",
53
66
  "MUSIC",
67
+ "OPTIMAL_SPEND",
68
+ "PAYMENT_METHOD",
69
+ "PFR_L1_INLINE_MMT",
54
70
  "PREDICTIVE_CREATIVE_LIMITED",
71
+ "PREDICTIVE_CREATIVE_LIMITED_HOURLY",
55
72
  "REVERT",
73
+ "SCALE_GOOD_CAMPAIGN",
56
74
  "SEMANTIC_BASED_AUDIENCE_EXPANSION",
75
+ "SETUP_PIXEL",
76
+ "SHOPS_ADS",
57
77
  "SIGNALS_GROWTH_CAPI",
78
+ "SIX_PLUS_MANUAL_PLACEMENTS",
79
+ "SPEND_LIMIT",
58
80
  "SYD_TEST_MODE",
59
81
  "TOP_ADSETS_WITH_ADS_UNDER_CAP",
60
82
  "TOP_CAMPAIGNS_WITH_ADS_UNDER_CAP",
@@ -25,33 +25,9 @@ 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 InstantArticleInsightsQueryResult < AdObject
29
- BREAKDOWN = [
30
- "age",
31
- "country",
32
- "gender",
33
- "gender_and_age",
34
- "is_organic",
35
- "is_shared_by_ia_owner",
36
- "no_breakdown",
37
- "platform",
38
- "region",
39
- ]
28
+ class AdAccountBusinessConstraints < AdObject
40
29
 
41
- PERIOD = [
42
- "day",
43
- "days_28",
44
- "lifetime",
45
- "month",
46
- "total_over_range",
47
- "week",
48
- ]
49
-
50
-
51
- field :breakdowns, 'hash'
52
- field :name, 'string'
53
- field :time, 'datetime'
54
- field :value, 'string'
30
+ field :audience_controls, 'object'
55
31
  has_no_id
56
32
  has_no_get
57
33
  has_no_post
@@ -48,6 +48,7 @@ module FacebookAds
48
48
  "QUALITY_CALL",
49
49
  "QUALITY_LEAD",
50
50
  "REACH",
51
+ "SUBSCRIBERS",
51
52
  "THRUPLAY",
52
53
  "VALUE",
53
54
  "VISIT_INSTAGRAM_PROFILE",
@@ -59,7 +60,7 @@ module FacebookAds
59
60
  field :estimate_mau_lower_bound, 'int'
60
61
  field :estimate_mau_upper_bound, 'int'
61
62
  field :estimate_ready, 'bool'
62
- field :targeting_optimization_types, 'hash'
63
+ field :targeting_optimization_types, { list: 'hash' }
63
64
  has_no_id
64
65
  has_no_get
65
66
  has_no_post
@@ -42,6 +42,8 @@ module FacebookAds
42
42
  "INSTANT_GAME",
43
43
  "ITUNES",
44
44
  "ITUNES_IPAD",
45
+ "NEON_ANDROID_STORE",
46
+ "NONE",
45
47
  "OCULUS_APP_STORE",
46
48
  "OPPO",
47
49
  "ROKU_STORE",
@@ -64,16 +64,273 @@ module FacebookAds
64
64
  "ONLINE_GAMBLING_AND_GAMING",
65
65
  ]
66
66
 
67
+ REGULATED_COUNTRIES = [
68
+ "AD",
69
+ "AE",
70
+ "AF",
71
+ "AG",
72
+ "AI",
73
+ "AL",
74
+ "AM",
75
+ "AN",
76
+ "AO",
77
+ "AQ",
78
+ "AR",
79
+ "AS",
80
+ "AT",
81
+ "AU",
82
+ "AW",
83
+ "AX",
84
+ "AZ",
85
+ "BA",
86
+ "BB",
87
+ "BD",
88
+ "BE",
89
+ "BF",
90
+ "BG",
91
+ "BH",
92
+ "BI",
93
+ "BJ",
94
+ "BL",
95
+ "BM",
96
+ "BN",
97
+ "BO",
98
+ "BQ",
99
+ "BR",
100
+ "BS",
101
+ "BT",
102
+ "BV",
103
+ "BW",
104
+ "BY",
105
+ "BZ",
106
+ "CA",
107
+ "CC",
108
+ "CD",
109
+ "CF",
110
+ "CG",
111
+ "CH",
112
+ "CI",
113
+ "CK",
114
+ "CL",
115
+ "CM",
116
+ "CN",
117
+ "CO",
118
+ "CR",
119
+ "CU",
120
+ "CV",
121
+ "CW",
122
+ "CX",
123
+ "CY",
124
+ "CZ",
125
+ "DE",
126
+ "DJ",
127
+ "DK",
128
+ "DM",
129
+ "DO",
130
+ "DZ",
131
+ "EC",
132
+ "EE",
133
+ "EG",
134
+ "EH",
135
+ "ER",
136
+ "ES",
137
+ "ET",
138
+ "FI",
139
+ "FJ",
140
+ "FK",
141
+ "FM",
142
+ "FO",
143
+ "FR",
144
+ "GA",
145
+ "GB",
146
+ "GD",
147
+ "GE",
148
+ "GF",
149
+ "GG",
150
+ "GH",
151
+ "GI",
152
+ "GL",
153
+ "GM",
154
+ "GN",
155
+ "GP",
156
+ "GQ",
157
+ "GR",
158
+ "GS",
159
+ "GT",
160
+ "GU",
161
+ "GW",
162
+ "GY",
163
+ "HK",
164
+ "HM",
165
+ "HN",
166
+ "HR",
167
+ "HT",
168
+ "HU",
169
+ "ID",
170
+ "IE",
171
+ "IL",
172
+ "IM",
173
+ "IN",
174
+ "IO",
175
+ "IQ",
176
+ "IR",
177
+ "IS",
178
+ "IT",
179
+ "JE",
180
+ "JM",
181
+ "JO",
182
+ "JP",
183
+ "KE",
184
+ "KG",
185
+ "KH",
186
+ "KI",
187
+ "KM",
188
+ "KN",
189
+ "KP",
190
+ "KR",
191
+ "KW",
192
+ "KY",
193
+ "KZ",
194
+ "LA",
195
+ "LB",
196
+ "LC",
197
+ "LI",
198
+ "LK",
199
+ "LR",
200
+ "LS",
201
+ "LT",
202
+ "LU",
203
+ "LV",
204
+ "LY",
205
+ "MA",
206
+ "MC",
207
+ "MD",
208
+ "ME",
209
+ "MF",
210
+ "MG",
211
+ "MH",
212
+ "MK",
213
+ "ML",
214
+ "MM",
215
+ "MN",
216
+ "MO",
217
+ "MP",
218
+ "MQ",
219
+ "MR",
220
+ "MS",
221
+ "MT",
222
+ "MU",
223
+ "MV",
224
+ "MW",
225
+ "MX",
226
+ "MY",
227
+ "MZ",
228
+ "NA",
229
+ "NC",
230
+ "NE",
231
+ "NF",
232
+ "NG",
233
+ "NI",
234
+ "NL",
235
+ "NO",
236
+ "NP",
237
+ "NR",
238
+ "NU",
239
+ "NZ",
240
+ "OM",
241
+ "PA",
242
+ "PE",
243
+ "PF",
244
+ "PG",
245
+ "PH",
246
+ "PK",
247
+ "PL",
248
+ "PM",
249
+ "PN",
250
+ "PR",
251
+ "PS",
252
+ "PT",
253
+ "PW",
254
+ "PY",
255
+ "QA",
256
+ "RE",
257
+ "RO",
258
+ "RS",
259
+ "RU",
260
+ "RW",
261
+ "SA",
262
+ "SB",
263
+ "SC",
264
+ "SD",
265
+ "SE",
266
+ "SG",
267
+ "SH",
268
+ "SI",
269
+ "SJ",
270
+ "SK",
271
+ "SL",
272
+ "SM",
273
+ "SN",
274
+ "SO",
275
+ "SR",
276
+ "SS",
277
+ "ST",
278
+ "SV",
279
+ "SX",
280
+ "SY",
281
+ "SZ",
282
+ "TC",
283
+ "TD",
284
+ "TF",
285
+ "TG",
286
+ "TH",
287
+ "TJ",
288
+ "TK",
289
+ "TL",
290
+ "TM",
291
+ "TN",
292
+ "TO",
293
+ "TR",
294
+ "TT",
295
+ "TV",
296
+ "TW",
297
+ "TZ",
298
+ "UA",
299
+ "UG",
300
+ "UM",
301
+ "US",
302
+ "UY",
303
+ "UZ",
304
+ "VA",
305
+ "VC",
306
+ "VE",
307
+ "VG",
308
+ "VI",
309
+ "VN",
310
+ "VU",
311
+ "WF",
312
+ "WS",
313
+ "XK",
314
+ "YE",
315
+ "YT",
316
+ "ZA",
317
+ "ZM",
318
+ "ZW",
319
+ ]
320
+
67
321
  WHITELISTED_TYPES = [
68
322
  "adgroup_id",
69
323
  "age_max",
70
324
  "age_min",
325
+ "age_range",
71
326
  "alternate_auto_targeting_option",
72
327
  "app_install_state",
73
328
  "audience_network_positions",
74
329
  "behaviors",
75
330
  "brand_safety_content_filter_levels",
76
331
  "brand_safety_content_severity_levels",
332
+ "cafe_ca_contraction_targeting_signal",
333
+ "cafe_ca_expansion_targeting_signal",
77
334
  "catalog_based_targeting",
78
335
  "cities",
79
336
  "city_keys",
@@ -205,6 +462,8 @@ module FacebookAds
205
462
  "instant_game",
206
463
  "itunes",
207
464
  "itunes_ipad",
465
+ "neon_android_store",
466
+ "none",
208
467
  "oculus_app_store",
209
468
  "oppo",
210
469
  "roku_channel_store",
@@ -51,9 +51,11 @@ module FacebookAds
51
51
  "GET_DIRECTIONS",
52
52
  "GET_OFFER",
53
53
  "GET_OFFER_VIEW",
54
+ "GET_PROMOTIONS",
54
55
  "GET_QUOTE",
55
56
  "GET_SHOWTIMES",
56
57
  "GET_STARTED",
58
+ "INQUIRE_NOW",
57
59
  "INSTALL_APP",
58
60
  "INSTALL_MOBILE_APP",
59
61
  "LEARN_MORE",
@@ -104,6 +106,7 @@ module FacebookAds
104
106
 
105
107
  field :ad_formats, { list: 'string' }
106
108
  field :additional_data, 'object'
109
+ field :app_product_page_id, 'string'
107
110
  field :asset_customization_rules, { list: 'object' }
108
111
  field :autotranslate, { list: 'string' }
109
112
  field :bodies, { list: 'AdAssetFeedSpecBody' }
@@ -48,6 +48,7 @@ module FacebookAds
48
48
  "QUALITY_CALL",
49
49
  "QUALITY_LEAD",
50
50
  "REACH",
51
+ "SUBSCRIBERS",
51
52
  "THRUPLAY",
52
53
  "VALUE",
53
54
  "VISIT_INSTAGRAM_PROFILE",
@@ -59,7 +60,7 @@ module FacebookAds
59
60
  field :estimate_mau_lower_bound, 'int'
60
61
  field :estimate_mau_upper_bound, 'int'
61
62
  field :estimate_ready, 'bool'
62
- field :targeting_optimization_types, 'hash'
63
+ field :targeting_optimization_types, { list: 'hash' }
63
64
  has_no_id
64
65
  has_no_get
65
66
  has_no_post
@@ -27,7 +27,7 @@ module FacebookAds
27
27
 
28
28
  class AdCampaignDeliveryStatsUnsupportedReasons < AdObject
29
29
 
30
- field :reason_data, 'hash'
30
+ field :reason_data, { list: 'hash' }
31
31
  field :reason_type, 'string'
32
32
  has_no_id
33
33
  has_no_get