facebookbusiness 0.4.0.8 → 0.4.0.9

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facebook_ads.rb +2 -0
  3. data/lib/facebook_ads/ad_objects/ad_account.rb +2 -13
  4. data/lib/facebook_ads/ad_objects/ad_account_ad_volume.rb +1 -1
  5. data/lib/facebook_ads/ad_objects/{ad_topline_detail.rb → ad_account_subscribed_apps.rb} +5 -16
  6. data/lib/facebook_ads/ad_objects/ad_account_targeting_unified.rb +2 -0
  7. data/lib/facebook_ads/ad_objects/ad_activity.rb +1 -0
  8. data/lib/facebook_ads/ad_objects/ad_creative.rb +5 -0
  9. data/lib/facebook_ads/ad_objects/ad_creative_insights.rb +37 -0
  10. data/lib/facebook_ads/ad_objects/ad_report_spec.rb +1 -57
  11. data/lib/facebook_ads/ad_objects/ad_video.rb +0 -14
  12. data/lib/facebook_ads/ad_objects/ads_insights.rb +0 -2
  13. data/lib/facebook_ads/ad_objects/application.rb +3 -3
  14. data/lib/facebook_ads/ad_objects/business.rb +1 -0
  15. data/lib/facebook_ads/ad_objects/business_creative_folder.rb +0 -3
  16. data/lib/facebook_ads/ad_objects/business_unit.rb +5 -0
  17. data/lib/facebook_ads/ad_objects/campaign_group_collaborative_ads_partner_info.rb +36 -0
  18. data/lib/facebook_ads/ad_objects/canvas.rb +10 -1
  19. data/lib/facebook_ads/ad_objects/collaborative_ads_partner_info_list_item.rb +36 -0
  20. data/lib/facebook_ads/ad_objects/instagram_user.rb +0 -4
  21. data/lib/facebook_ads/ad_objects/media_fingerprint.rb +1 -0
  22. data/lib/facebook_ads/ad_objects/messenger_profile.rb +1 -0
  23. data/lib/facebook_ads/ad_objects/page.rb +10 -10
  24. data/lib/facebook_ads/ad_objects/page_label.rb +1 -1
  25. data/lib/facebook_ads/ad_objects/product_catalog.rb +8 -0
  26. data/lib/facebook_ads/ad_objects/product_feed.rb +9 -0
  27. data/lib/facebook_ads/ad_objects/product_set.rb +7 -0
  28. data/lib/facebook_ads/ad_objects/unified_thread.rb +1 -0
  29. data/lib/facebook_ads/ad_objects/{ad_topline.rb → vehicle_offer.rb} +31 -35
  30. data/lib/facebook_ads/ad_objects/whats_app_business_account.rb +2 -1
  31. data/lib/facebook_ads/config.rb +1 -0
  32. data/lib/facebook_ads/crash_logger.rb +108 -0
  33. data/lib/facebook_ads/session.rb +5 -1
  34. data/lib/facebook_ads/version.rb +1 -1
  35. metadata +8 -5
  36. data/lib/facebook_ads/ad_objects/ad_contract.rb +0 -78
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67242f225e4db3c58c2569387e46cc51479dc1c601ac8b90085e45d42c1a5c71
4
- data.tar.gz: a3c0171cc236b349c1364a46fb6f904cd06c0fb5ce836569378a318a30db83c6
3
+ metadata.gz: 6474560ec877bc5bbe870a3790f8de73bb4104e9109e8df7a96f01de5b02f089
4
+ data.tar.gz: b83d2aef46ccb52e59c28e2db4da982d13051002546450e8463ec79f8a664cea
5
5
  SHA512:
6
- metadata.gz: 65be86a72b77894614d5ca0c5f7ff682cbab3c2aa9a1e34e86c143f4fa9257392393b3c5be1f5e1d6838c4a562100fbdc95fe44ee9bfb73b04fccaf770f964c7
7
- data.tar.gz: b85451674ed095e4daba6a0742c608d357aad6002e97e3a9c01ac75facdc83a51b3d422b45d89b00d5a8b131bed0a609cf2373d010b38d5d71b95e473c6e34cf
6
+ metadata.gz: 21e4180f20489861a503a43c1dffb5294ff9de0ec6f6c69e31c8903e0898e3930c47874b35ad1048de721359fbd417d1e6be40db11ea619d07a3376818a9305f
7
+ data.tar.gz: d9248ca74f27ecb1fbb70a882bef75fa42a77efb153ad7bb8de4bfcdc4ca8bdab8b863677e37ef6ce8705cded718ca545e46c961ece3d5b58a594f696a594fb1
@@ -18,6 +18,7 @@
18
18
 
19
19
  require 'facebook_ads/version'
20
20
  require 'facebook_ads/helpers/shortcuts'
21
+ require 'facebook_ads/crash_logger'
21
22
 
22
23
  module FacebookAds
23
24
  DEFAULT_API_VERSION = 'v' + API_VERSION
@@ -36,6 +37,7 @@ module FacebookAds
36
37
  def configure
37
38
  @config ||= Config.new
38
39
  yield @config if block_given?
40
+ CrashLogger.enable if @config.crash_logging_enabled
39
41
  @config
40
42
  end
41
43
 
@@ -254,10 +254,6 @@ module FacebookAds
254
254
  edge.get 'AdStudy'
255
255
  end
256
256
 
257
- has_edge :adcontracts do |edge|
258
- edge.get 'AdContract'
259
- end
260
-
261
257
  has_edge :adcreatives do |edge|
262
258
  edge.get 'AdCreative'
263
259
  edge.post 'AdCreative' do |api|
@@ -530,14 +526,6 @@ module FacebookAds
530
526
  end
531
527
  end
532
528
 
533
- has_edge :adtoplinedetails do |edge|
534
- edge.get 'AdToplineDetail'
535
- end
536
-
537
- has_edge :adtoplines do |edge|
538
- edge.get 'AdTopline'
539
- end
540
-
541
529
  has_edge :advertisable_applications do |edge|
542
530
  edge.get 'Application' do |api|
543
531
  api.has_param :app_id, 'string'
@@ -1129,7 +1117,8 @@ module FacebookAds
1129
1117
  edge.delete do |api|
1130
1118
  api.has_param :app_id, 'string'
1131
1119
  end
1132
- edge.post do |api|
1120
+ edge.get 'AdAccountSubscribedApps'
1121
+ edge.post 'AdAccountSubscribedApps' do |api|
1133
1122
  api.has_param :app_id, 'string'
1134
1123
  end
1135
1124
  end
@@ -28,9 +28,9 @@ module FacebookAds
28
28
  class AdAccountAdVolume < AdObject
29
29
 
30
30
  field :actor_id, 'string'
31
+ field :ads_running_or_in_review_count, 'int'
31
32
  field :has_hit_total_live_ads_limit, 'bool'
32
33
  field :live_ads_quota_left, 'int'
33
- field :total_live_ads, 'int'
34
34
  field :total_live_ads_in_current_account, 'int'
35
35
  field :total_live_ads_limit, 'int'
36
36
  has_no_id
@@ -25,23 +25,12 @@ 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 AdToplineDetail < AdObject
28
+ class AdAccountSubscribedApps < AdObject
29
29
 
30
- field :active_status, 'int'
31
- field :ad_account_id, 'string'
32
- field :flight_end_date, 'datetime'
33
- field :flight_start_date, 'datetime'
34
- field :id, 'string'
35
- field :io_number, 'int'
36
- field :line_number, 'int'
37
- field :price, 'double'
38
- field :quantity, 'double'
39
- field :sf_detail_line_id, 'string'
40
- field :subline_id, 'string'
41
- field :targets, 'string'
42
- field :time_created, 'datetime'
43
- field :time_updated, 'datetime'
44
- field :topline_id, 'AdTopline'
30
+ field :app_id, 'string'
31
+ field :app_name, 'string'
32
+ has_no_id
33
+ has_no_get
45
34
  has_no_post
46
35
  has_no_delete
47
36
 
@@ -128,6 +128,7 @@ module FacebookAds
128
128
  "home_type",
129
129
  "home_value",
130
130
  "household_composition",
131
+ "id",
131
132
  "income",
132
133
  "industries",
133
134
  "instagram_positions",
@@ -135,6 +136,7 @@ module FacebookAds
135
136
  "interest_defaults_source",
136
137
  "interested_in",
137
138
  "interests",
139
+ "is_instagram_destination_ad",
138
140
  "is_whatsapp_destination_ad",
139
141
  "keywords",
140
142
  "life_events",
@@ -98,6 +98,7 @@ module FacebookAds
98
98
  "update_campaign_group_spend_cap",
99
99
  "update_campaign_name",
100
100
  "update_campaign_run_status",
101
+ "update_campaign_schedule",
101
102
  ]
102
103
 
103
104
  CATEGORY = [
@@ -154,6 +154,7 @@ module FacebookAds
154
154
  field :destination_set_id, 'string'
155
155
  field :dynamic_ad_voice, 'string'
156
156
  field :effective_authorization_category, 'string'
157
+ field :effective_instagram_media_id, 'string'
157
158
  field :effective_instagram_story_id, 'string'
158
159
  field :effective_object_story_id, 'string'
159
160
  field :enable_direct_install, 'bool'
@@ -204,6 +205,10 @@ module FacebookAds
204
205
  end
205
206
  end
206
207
 
208
+ has_edge :creative_insights do |edge|
209
+ edge.get 'AdCreativeInsights'
210
+ end
211
+
207
212
  has_edge :previews do |edge|
208
213
  edge.get 'AdPreview' do |api|
209
214
  api.has_param :ad_format, { enum: -> { AdPreview::AD_FORMAT }}
@@ -0,0 +1,37 @@
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 AdCreativeInsights < AdObject
29
+
30
+ field :aesthetics, 'hash'
31
+ has_no_id
32
+ has_no_get
33
+ has_no_post
34
+ has_no_delete
35
+
36
+ end
37
+ end
@@ -26,63 +26,6 @@ module FacebookAds
26
26
  # pull request for this class.
27
27
 
28
28
  class AdReportSpec < AdObject
29
- ACTIONS_GROUP_BY = [
30
- "action_brand",
31
- "action_canvas_component_id",
32
- "action_canvas_component_name",
33
- "action_carousel_card_id",
34
- "action_carousel_card_name",
35
- "action_category",
36
- "action_converted_brand_tag_id",
37
- "action_converted_category_tag_id",
38
- "action_converted_product_id",
39
- "action_destination",
40
- "action_device",
41
- "action_event_channel",
42
- "action_target_id",
43
- "action_type",
44
- "action_video_sound",
45
- "action_video_type",
46
- "attribution_model_type",
47
- "interactive_component_sticker_id",
48
- "interactive_component_sticker_response",
49
- ]
50
-
51
- CREATION_SOURCE = [
52
- "adsExcelAddin",
53
- "adsManagerReporting",
54
- "newAdsManager",
55
- ]
56
-
57
- DATE_PRESET = [
58
- "last_14d",
59
- "last_28d",
60
- "last_30d",
61
- "last_3d",
62
- "last_7d",
63
- "last_90d",
64
- "last_month",
65
- "last_quarter",
66
- "last_week_mon_sun",
67
- "last_week_sun_sat",
68
- "last_year",
69
- "lifetime",
70
- "this_month",
71
- "this_quarter",
72
- "this_week_mon_today",
73
- "this_week_sun_today",
74
- "this_year",
75
- "today",
76
- "yesterday",
77
- ]
78
-
79
- FORMAT = [
80
- "CSV",
81
- "JSON",
82
- "XLS",
83
- "XLSX",
84
- ]
85
-
86
29
 
87
30
  field :account_id, 'string'
88
31
  field :actions_group_by, { list: 'string' }
@@ -102,6 +45,7 @@ module FacebookAds
102
45
  field :time_increment, 'string'
103
46
  field :time_interval, 'object'
104
47
  field :time_ranges, { list: 'object' }
48
+ has_no_post
105
49
 
106
50
  end
107
51
  end
@@ -337,13 +337,6 @@ module FacebookAds
337
337
  field :creative_folder_id, 'string'
338
338
  field :validation_ad_placements, { list: { enum: -> { VALIDATION_AD_PLACEMENTS }} }
339
339
 
340
- has_edge :auto_trims do |edge|
341
- edge.post 'AdVideo' do |api|
342
- api.has_param :auto_trim_type, 'string'
343
- api.has_param :target_id, 'int'
344
- end
345
- end
346
-
347
340
  has_edge :captions do |edge|
348
341
  edge.get
349
342
  edge.post 'AdVideo' do |api|
@@ -426,13 +419,6 @@ module FacebookAds
426
419
  edge.get 'Page'
427
420
  end
428
421
 
429
- has_edge :summarizations do |edge|
430
- edge.post 'AdVideo' do |api|
431
- api.has_param :summarization_type, 'string'
432
- api.has_param :target_id, 'int'
433
- end
434
- end
435
-
436
422
  has_edge :tags do |edge|
437
423
  edge.get 'TaggableSubject'
438
424
  edge.post 'AdVideo' do |api|
@@ -40,7 +40,6 @@ module FacebookAds
40
40
  "action_canvas_component_name",
41
41
  "action_carousel_card_id",
42
42
  "action_carousel_card_name",
43
- "action_converted_product_id",
44
43
  "action_destination",
45
44
  "action_device",
46
45
  "action_reaction",
@@ -113,7 +112,6 @@ module FacebookAds
113
112
  "action_canvas_component_name",
114
113
  "action_carousel_card_id",
115
114
  "action_carousel_card_name",
116
- "action_converted_product_id",
117
115
  "action_destination",
118
116
  "action_device",
119
117
  "action_reaction",
@@ -306,7 +306,7 @@ module FacebookAds
306
306
 
307
307
  has_edge :app_insights do |edge|
308
308
  edge.get do |api|
309
- api.has_param :aggregateby, { enum: %w{AVERAGE_JOURNEY_LENGTH CONVERTED_JOURNEY_PERCENT COUNT COUNT_IDENTIFIED_USERS COUNT_PER_USER DAU EVENT_SOURCE_IDS JOURNEY_CHANNEL_INCLUSION JOURNEY_INCLUSION MAU MEDIAN_JOURNEY_LENGTH MEDIAN_VALUE MEDIAN_VALUE_PER_USER OVERLAP PERCENTILES_COUNT PERCENTILES_USD_VALUE PERCENTILES_VALUE SCORE SESSIONS_PER_JOURNEY SESSION_BOUNCE_RATE SUM SUM_IDENTIFIED_USERS SUM_PER_EVENT TOPK UNKNOWN_USERS USD_SUM USD_SUM_IDENTIFIED_USERS USD_SUM_PER_EVENT USD_SUM_PER_USER USD_VALUE_PER_USER USERS USER_PROPERTY_USER_COUNT VALUE_PER_USER WAU }}
309
+ api.has_param :aggregateby, { enum: %w{AVERAGE_JOURNEY_LENGTH CONVERTED_JOURNEY_PERCENT COUNT COUNT_IDENTIFIED_USERS COUNT_PER_USER DAU EVENT_LATEST_FIRE_TIME EVENT_SOURCE_IDS JOURNEY_CHANNEL_INCLUSION JOURNEY_INCLUSION MAU MEDIAN_JOURNEY_LENGTH MEDIAN_VALUE MEDIAN_VALUE_PER_USER OVERLAP PERCENTILES_COUNT PERCENTILES_USD_VALUE PERCENTILES_VALUE SCORE SESSIONS_PER_JOURNEY SESSION_BOUNCE_RATE SUM SUM_IDENTIFIED_USERS SUM_PER_EVENT TOPK UNKNOWN_USERS USD_SUM USD_SUM_IDENTIFIED_USERS USD_SUM_PER_EVENT USD_SUM_PER_USER USD_VALUE_PER_USER USERS USER_PROPERTY_USER_COUNT VALUE_PER_USER WAU }}
310
310
  api.has_param :breakdowns, { list: 'string' }
311
311
  api.has_param :ecosystem, { enum: %w{GAME NON_GAME }}
312
312
  api.has_param :event_name, 'string'
@@ -602,8 +602,8 @@ module FacebookAds
602
602
  has_edge :uploads do |edge|
603
603
  edge.post do |api|
604
604
  api.has_param :file_length, 'int'
605
- api.has_param :file_name, 'string'
606
- api.has_param :file_type, 'string'
605
+ api.has_param :file_name, 'object'
606
+ api.has_param :file_type, 'object'
607
607
  api.has_param :session_type, { enum: %w{attachment }}
608
608
  end
609
609
  end
@@ -146,6 +146,7 @@ module FacebookAds
146
146
 
147
147
  has_edge :adaccount do |edge|
148
148
  edge.post 'AdAccount' do |api|
149
+ api.has_param :ad_account_created_from_bm_flag, 'bool'
149
150
  api.has_param :currency, 'string'
150
151
  api.has_param :end_advertiser, 'object'
151
152
  api.has_param :funding_id, 'string'
@@ -61,9 +61,6 @@ module FacebookAds
61
61
  end
62
62
 
63
63
  has_edge :assigned_users do |edge|
64
- edge.delete do |api|
65
- api.has_param :user, 'int'
66
- end
67
64
  edge.get 'AssignedUser' do |api|
68
65
  api.has_param :business, 'string'
69
66
  end
@@ -29,8 +29,13 @@ module FacebookAds
29
29
 
30
30
  field :business, 'Business'
31
31
  field :creation_time, 'datetime'
32
+ field :currency, 'string'
33
+ field :excluded_sources, 'object'
32
34
  field :id, 'string'
35
+ field :is_enabled_for_measurement, 'bool'
33
36
  field :name, 'string'
37
+ field :time_zone, 'string'
38
+ field :visits_available_date, 'int'
34
39
  has_no_post
35
40
  has_no_delete
36
41
 
@@ -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 CampaignGroupCollaborativeAdsPartnerInfo < AdObject
29
+
30
+ has_no_id
31
+ has_no_get
32
+ has_no_post
33
+ has_no_delete
34
+
35
+ end
36
+ end
@@ -37,7 +37,16 @@ module FacebookAds
37
37
  field :name, 'string'
38
38
  field :owner, 'Page'
39
39
  field :update_time, 'int'
40
- has_no_delete
40
+
41
+ has_edge :duplicate_canvas do |edge|
42
+ edge.post 'Canvas'
43
+ end
44
+
45
+ has_edge :preview_notifications do |edge|
46
+ edge.post 'Canvas' do |api|
47
+ api.has_param :user_ids, { list: 'int' }
48
+ end
49
+ end
41
50
 
42
51
  end
43
52
  end
@@ -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 CollaborativeAdsPartnerInfoListItem < AdObject
29
+
30
+ has_no_id
31
+ has_no_get
32
+ has_no_post
33
+ has_no_delete
34
+
35
+ end
36
+ end
@@ -47,10 +47,6 @@ module FacebookAds
47
47
  end
48
48
 
49
49
  has_edge :authorized_adaccounts do |edge|
50
- edge.delete do |api|
51
- api.has_param :account_id, 'string'
52
- api.has_param :business, 'string'
53
- end
54
50
  edge.get 'AdAccount' do |api|
55
51
  api.has_param :business, 'string'
56
52
  end
@@ -48,6 +48,7 @@ module FacebookAds
48
48
  field :metadata, 'object'
49
49
  field :title, 'string'
50
50
  field :universal_content_id, 'string'
51
+ has_no_post
51
52
 
52
53
  end
53
54
  end
@@ -31,6 +31,7 @@ module FacebookAds
31
31
  field :get_started, 'object'
32
32
  field :greeting, { list: 'object' }
33
33
  field :home_url, 'object'
34
+ field :ice_breakers, { list: 'object' }
34
35
  field :payment_settings, 'object'
35
36
  field :persistent_menu, { list: 'object' }
36
37
  field :target_audience, 'object'
@@ -214,6 +214,7 @@ module FacebookAds
214
214
  "merchant_review",
215
215
  "message_deliveries",
216
216
  "message_echoes",
217
+ "message_mention",
217
218
  "message_reads",
218
219
  "messages",
219
220
  "messaging_account_linking",
@@ -577,15 +578,6 @@ module FacebookAds
577
578
  end
578
579
  end
579
580
 
580
- has_edge :copyright_whitelisted_ig_partners do |edge|
581
- edge.delete do |api|
582
- api.has_param :usernames, { list: 'string' }
583
- end
584
- edge.post do |api|
585
- api.has_param :usernames, { list: 'string' }
586
- end
587
- end
588
-
589
581
  has_edge :copyright_whitelisted_partners do |edge|
590
582
  edge.get 'Profile'
591
583
  end
@@ -950,7 +942,7 @@ module FacebookAds
950
942
 
951
943
  has_edge :messenger_profile do |edge|
952
944
  edge.delete do |api|
953
- api.has_param :fields, { list: { enum: %w{ACCOUNT_LINKING_URL GET_STARTED GREETING HOME_URL PAYMENT_SETTINGS PERSISTENT_MENU TARGET_AUDIENCE WHITELISTED_DOMAINS }} }
945
+ api.has_param :fields, { list: { enum: %w{ACCOUNT_LINKING_URL GET_STARTED GREETING HOME_URL ICE_BREAKERS PAYMENT_SETTINGS PERSISTENT_MENU TARGET_AUDIENCE WHITELISTED_DOMAINS }} }
954
946
  end
955
947
  edge.get 'MessengerProfile'
956
948
  edge.post 'Page' do |api|
@@ -958,6 +950,7 @@ module FacebookAds
958
950
  api.has_param :get_started, 'object'
959
951
  api.has_param :greeting, { list: 'object' }
960
952
  api.has_param :home_url, 'object'
953
+ api.has_param :ice_breakers, { list: 'hash' }
961
954
  api.has_param :payment_settings, 'object'
962
955
  api.has_param :persistent_menu, { list: 'object' }
963
956
  api.has_param :target_audience, 'object'
@@ -1018,6 +1011,13 @@ module FacebookAds
1018
1011
  edge.post 'InstagramUser'
1019
1012
  end
1020
1013
 
1014
+ has_edge :page_whatsapp_number_verification do |edge|
1015
+ edge.post 'Page' do |api|
1016
+ api.has_param :verification_code, 'string'
1017
+ api.has_param :whatsapp_number, 'string'
1018
+ end
1019
+ end
1020
+
1021
1021
  has_edge :pass_thread_control do |edge|
1022
1022
  edge.post 'Page' do |api|
1023
1023
  api.has_param :metadata, 'string'
@@ -28,7 +28,7 @@ module FacebookAds
28
28
  class PageLabel < AdObject
29
29
 
30
30
  field :creation_time, 'datetime'
31
- field :creator_id, 'Profile'
31
+ field :creator_id, 'string'
32
32
  field :from, 'Page'
33
33
  field :id, 'string'
34
34
  field :name, 'string'
@@ -396,6 +396,13 @@ module FacebookAds
396
396
  end
397
397
  end
398
398
 
399
+ has_edge :vehicle_offers do |edge|
400
+ edge.get 'VehicleOffer' do |api|
401
+ api.has_param :bulk_pagination, 'bool'
402
+ api.has_param :filter, 'object'
403
+ end
404
+ end
405
+
399
406
  has_edge :vehicles do |edge|
400
407
  edge.get 'Vehicle' do |api|
401
408
  api.has_param :bulk_pagination, 'bool'
@@ -415,6 +422,7 @@ module FacebookAds
415
422
  api.has_param :description, 'string'
416
423
  api.has_param :drivetrain, { enum: -> { Vehicle::DRIVETRAIN }}
417
424
  api.has_param :exterior_color, 'string'
425
+ api.has_param :fb_page_id, 'string'
418
426
  api.has_param :fuel_type, { enum: -> { Vehicle::FUEL_TYPE }}
419
427
  api.has_param :images, { list: 'object' }
420
428
  api.has_param :interior_color, 'string'
@@ -70,6 +70,8 @@ module FacebookAds
70
70
  "CATALOG_SEGMENT_CUSTOMIZE_DEFAULT",
71
71
  "COUNTRY",
72
72
  "LANGUAGE",
73
+ "LANGUAGE_AND_COUNTRY",
74
+ "LOCAL",
73
75
  ]
74
76
 
75
77
 
@@ -154,6 +156,13 @@ module FacebookAds
154
156
  end
155
157
  end
156
158
 
159
+ has_edge :vehicle_offers do |edge|
160
+ edge.get 'VehicleOffer' do |api|
161
+ api.has_param :bulk_pagination, 'bool'
162
+ api.has_param :filter, 'object'
163
+ end
164
+ end
165
+
157
166
  has_edge :vehicles do |edge|
158
167
  edge.get 'Vehicle' do |api|
159
168
  api.has_param :bulk_pagination, 'bool'
@@ -76,6 +76,13 @@ module FacebookAds
76
76
  end
77
77
  end
78
78
 
79
+ has_edge :vehicle_offers do |edge|
80
+ edge.get 'VehicleOffer' do |api|
81
+ api.has_param :bulk_pagination, 'bool'
82
+ api.has_param :filter, 'object'
83
+ end
84
+ end
85
+
79
86
  has_edge :vehicles do |edge|
80
87
  edge.get 'Vehicle' do |api|
81
88
  api.has_param :bulk_pagination, 'bool'
@@ -47,6 +47,7 @@ module FacebookAds
47
47
 
48
48
  has_edge :messages do |edge|
49
49
  edge.get do |api|
50
+ api.has_param :source, { enum: %w{ALL USER }}
50
51
  api.has_param :user, 'int'
51
52
  end
52
53
  edge.post do |api|
@@ -25,43 +25,39 @@ 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 AdTopline < AdObject
28
+ class VehicleOffer < AdObject
29
29
 
30
- field :account_id, 'string'
31
- field :client_approval_date, 'datetime'
32
- field :created_by, 'string'
33
- field :created_date, 'datetime'
34
- field :description, 'string'
35
- field :flight_end_date, 'datetime'
36
- field :flight_start_date, 'datetime'
37
- field :func_cap_amount, 'string'
38
- field :func_cap_amount_with_offset, 'string'
39
- field :func_line_amount, 'string'
40
- field :func_line_amount_with_offset, 'string'
41
- field :func_price, 'string'
42
- field :func_price_with_offset, 'string'
43
- field :gender, 'string'
30
+ field :amount_currency, 'string'
31
+ field :amount_percentage, 'double'
32
+ field :amount_price, 'string'
33
+ field :amount_qualifier, 'string'
34
+ field :applinks, 'AppLinks'
35
+ field :body_style, 'string'
36
+ field :cashback_currency, 'string'
37
+ field :cashback_price, 'string'
38
+ field :currency, 'string'
39
+ field :dma_codes, { list: 'string' }
40
+ field :downpayment_currency, 'string'
41
+ field :downpayment_price, 'string'
42
+ field :downpayment_qualifier, 'string'
43
+ field :end_date, 'string'
44
+ field :end_time, 'int'
44
45
  field :id, 'string'
45
- field :impressions, 'int'
46
- field :io_number, 'int'
47
- field :is_bonus_line, 'int'
48
- field :keywords, 'string'
49
- field :last_updated_by, 'string'
50
- field :last_updated_date, 'datetime'
51
- field :line_number, 'int'
52
- field :line_position, 'int'
53
- field :line_type, 'string'
54
- field :location, 'string'
55
- field :max_age, 'string'
56
- field :max_budget, 'string'
57
- field :min_age, 'string'
58
- field :price_per_trp, 'string'
59
- field :product_type, 'string'
60
- field :rev_assurance_approval_date, 'datetime'
61
- field :targets, 'string'
62
- field :trp_updated_time, 'int'
63
- field :trp_value, 'string'
64
- field :uom, 'string'
46
+ field :images, { list: 'string' }
47
+ field :offer_description, 'string'
48
+ field :offer_disclaimer, 'string'
49
+ field :offer_type, 'string'
50
+ field :price, 'string'
51
+ field :sanitized_images, { list: 'string' }
52
+ field :start_date, 'string'
53
+ field :start_time, 'int'
54
+ field :term_length, 'int'
55
+ field :term_qualifier, 'string'
56
+ field :title, 'string'
57
+ field :trim, 'string'
58
+ field :url, 'string'
59
+ field :vehicle_offer_id, 'string'
60
+ field :year, 'int'
65
61
  has_no_post
66
62
  has_no_delete
67
63
 
@@ -30,6 +30,7 @@ module FacebookAds
30
30
  "ACCOUNT_UPDATE",
31
31
  "ALERT_UPDATE",
32
32
  "APPOINTMENT_UPDATE",
33
+ "AUTO_REPLY",
33
34
  "ISSUE_RESOLUTION",
34
35
  "PAYMENT_UPDATE",
35
36
  "PERSONAL_FINANCE_UPDATE",
@@ -70,7 +71,7 @@ module FacebookAds
70
71
  api.has_param :language, { list: 'string' }
71
72
  api.has_param :name, 'string'
72
73
  api.has_param :name_or_content, 'string'
73
- api.has_param :status, { list: { enum: %w{APPROVED DELETED PENDING PENDING_DELETION REJECTED }} }
74
+ api.has_param :status, { list: { enum: %w{APPROVED DELETED DISABLED PENDING PENDING_DELETION REJECTED }} }
74
75
  end
75
76
  edge.post 'WhatsAppBusinessAccount' do |api|
76
77
  api.has_param :category, { enum: -> { WhatsAppBusinessAccount::CATEGORY }}
@@ -33,6 +33,7 @@ module FacebookAds
33
33
  setting :api_version, FacebookAds::DEFAULT_API_VERSION
34
34
  setting :access_token, ENV['FB_ACCESS_TOKEN']
35
35
  setting :app_secret, ENV['FB_APP_SECRET']
36
+ setting :crash_logging_enabled, false
36
37
 
37
38
  setting :log_api_bodies, false
38
39
 
@@ -0,0 +1,108 @@
1
+ require 'facebook_ads/api_request'
2
+ require 'facebook_ads/api_response'
3
+
4
+ module FacebookAds
5
+ class CrashLogger
6
+ class << self
7
+ private
8
+ @@enabled = false
9
+ @@hasRegisteredCrashBlock = false
10
+
11
+ def logCrash
12
+ error = $!
13
+ if is_facebook_error(error)
14
+ app_id = get_app_id
15
+ # TODO: Determine what platform information should be logged
16
+ if app_id.nil?
17
+ puts "Unable to log the crash: We're missing an app id."
18
+ return
19
+ end
20
+ params = {
21
+ 'bizsdk_crash_report': {
22
+ 'reason': formatted_reason(error),
23
+ 'platform': "ruby #{RUBY_VERSION}",
24
+ 'callstack': error.backtrace
25
+ }
26
+ }
27
+ APIRequest.new(
28
+ :post,
29
+ "#{app_id}/instruments",
30
+ session: Session.anonymous_session,
31
+ params: params,
32
+ options: {} # batch options, not necessary for now
33
+ ).execute do |response|
34
+ puts response
35
+ end
36
+ end
37
+ end
38
+
39
+ def completion
40
+ if @@enabled && $! then
41
+ logCrash()
42
+ end
43
+ end
44
+
45
+ def is_facebook_error(error)
46
+ error.backtrace.any? { |frame|
47
+ frame.match? 'facebook_ads'
48
+ } if error
49
+ end
50
+
51
+ def formatted_reason(error)
52
+ if error.kind_of? APIError
53
+ reason = 'Server Error' if error.kind_of? ServerError
54
+ reason = 'Client Error' if error.kind_of? ClientError
55
+ reason += " #{error.message}"
56
+ else
57
+ reason = 'SDK Error'
58
+ end
59
+ reason
60
+ end
61
+
62
+ def get_app_id
63
+ params = {
64
+ 'input_token': Session.default_session.access_token,
65
+ 'fields': 'app_id'
66
+ }
67
+ begin
68
+ APIRequest.new(
69
+ :get,
70
+ '/debug_token',
71
+ session: Session.default_session,
72
+ params: params,
73
+ options: {} # batch options, not necessary for now
74
+ ).execute do |response|
75
+ if (response.result.has_key?('data') &&
76
+ response.result['data'].has_key?('app_id')
77
+ )
78
+ response.result['data']['app_id']
79
+ else
80
+ nil
81
+ end
82
+ end
83
+ rescue
84
+ nil
85
+ end
86
+ end
87
+
88
+ public
89
+ # Enable crash reporting
90
+ def enable
91
+ if !@@hasRegisteredCrashBlock then
92
+ at_exit do
93
+ completion()
94
+ end
95
+
96
+ @@hasRegisteredCrashBlock = true
97
+ end
98
+
99
+ @@enabled = true
100
+ end
101
+
102
+ # Disable crash reporting
103
+ def disable
104
+ @@enabled = false
105
+ end
106
+ end
107
+ end
108
+ end
@@ -40,7 +40,7 @@ module FacebookAds
40
40
  when :get, :post, :delete
41
41
  api_conn.send(method, path.gsub(/^\//,''), params) do |req|
42
42
  req.headers[:user_agent] = "fbbizsdk-ruby-v#{API_VERSION}".freeze
43
- req.params[:access_token] = access_token
43
+ req.params[:access_token] = access_token if access_token
44
44
  req.params[:appsecret_proof] = appsecret_proof if app_secret
45
45
  end
46
46
  else
@@ -75,6 +75,10 @@ module FacebookAds
75
75
  end
76
76
 
77
77
  class << self
78
+ def anonymous_session
79
+ new()
80
+ end
81
+
78
82
  def default_session
79
83
  # TODO
80
84
  @default_session ||= new( access_token: FacebookAds.config.access_token,
@@ -19,6 +19,6 @@
19
19
  # FB:AUTOGEN
20
20
 
21
21
  module FacebookAds
22
- VERSION = '0.4.0.8'
22
+ VERSION = '0.4.0.9'
23
23
  API_VERSION = '4.0'
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facebookbusiness
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0.8
4
+ version: 0.4.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Facebook
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-11 00:00:00.000000000 Z
11
+ date: 2019-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -208,6 +208,7 @@ files:
208
208
  - lib/facebook_ads/ad_objects/ad_account_reach_estimate.rb
209
209
  - lib/facebook_ads/ad_objects/ad_account_recommended_camapaign_budget.rb
210
210
  - lib/facebook_ads/ad_objects/ad_account_roas.rb
211
+ - lib/facebook_ads/ad_objects/ad_account_subscribed_apps.rb
211
212
  - lib/facebook_ads/ad_objects/ad_account_targeting_unified.rb
212
213
  - lib/facebook_ads/ad_objects/ad_account_tracking_data.rb
213
214
  - lib/facebook_ads/ad_objects/ad_account_user.rb
@@ -236,9 +237,9 @@ files:
236
237
  - lib/facebook_ads/ad_objects/ad_campaign_learning_stage_info.rb
237
238
  - lib/facebook_ads/ad_objects/ad_campaign_optimization_event.rb
238
239
  - lib/facebook_ads/ad_objects/ad_campaign_paced_bid_info.rb
239
- - lib/facebook_ads/ad_objects/ad_contract.rb
240
240
  - lib/facebook_ads/ad_objects/ad_creative.rb
241
241
  - lib/facebook_ads/ad_objects/ad_creative_collection_thumbnail_info.rb
242
+ - lib/facebook_ads/ad_objects/ad_creative_insights.rb
242
243
  - lib/facebook_ads/ad_objects/ad_creative_interactive_components_spec.rb
243
244
  - lib/facebook_ads/ad_objects/ad_creative_link_data.rb
244
245
  - lib/facebook_ads/ad_objects/ad_creative_link_data_app_link_spec.rb
@@ -295,8 +296,6 @@ files:
295
296
  - lib/facebook_ads/ad_objects/ad_study_cell.rb
296
297
  - lib/facebook_ads/ad_objects/ad_study_objective.rb
297
298
  - lib/facebook_ads/ad_objects/ad_study_objective_id.rb
298
- - lib/facebook_ads/ad_objects/ad_topline.rb
299
- - lib/facebook_ads/ad_objects/ad_topline_detail.rb
300
299
  - lib/facebook_ads/ad_objects/ad_video.rb
301
300
  - lib/facebook_ads/ad_objects/adgroup_activity.rb
302
301
  - lib/facebook_ads/ad_objects/adgroup_issues_info.rb
@@ -350,6 +349,7 @@ files:
350
349
  - lib/facebook_ads/ad_objects/business_user.rb
351
350
  - lib/facebook_ads/ad_objects/campaign.rb
352
351
  - lib/facebook_ads/ad_objects/campaign_group_brand_configuration.rb
352
+ - lib/facebook_ads/ad_objects/campaign_group_collaborative_ads_partner_info.rb
353
353
  - lib/facebook_ads/ad_objects/canvas.rb
354
354
  - lib/facebook_ads/ad_objects/canvas_ad_settings.rb
355
355
  - lib/facebook_ads/ad_objects/canvas_body_element.rb
@@ -358,6 +358,7 @@ files:
358
358
  - lib/facebook_ads/ad_objects/check_batch_request_status.rb
359
359
  - lib/facebook_ads/ad_objects/child_event.rb
360
360
  - lib/facebook_ads/ad_objects/client_transparency_status.rb
361
+ - lib/facebook_ads/ad_objects/collaborative_ads_partner_info_list_item.rb
361
362
  - lib/facebook_ads/ad_objects/collaborative_ads_share_settings.rb
362
363
  - lib/facebook_ads/ad_objects/comment.rb
363
364
  - lib/facebook_ads/ad_objects/commerce_settings.rb
@@ -593,6 +594,7 @@ files:
593
594
  - lib/facebook_ads/ad_objects/value_based_eligible_source.rb
594
595
  - lib/facebook_ads/ad_objects/vault_deleted_image.rb
595
596
  - lib/facebook_ads/ad_objects/vehicle.rb
597
+ - lib/facebook_ads/ad_objects/vehicle_offer.rb
596
598
  - lib/facebook_ads/ad_objects/video_copyright.rb
597
599
  - lib/facebook_ads/ad_objects/video_copyright_condition_group.rb
598
600
  - lib/facebook_ads/ad_objects/video_copyright_geo_gate.rb
@@ -614,6 +616,7 @@ files:
614
616
  - lib/facebook_ads/batch_api/batch.rb
615
617
  - lib/facebook_ads/batch_api/batch_proxy.rb
616
618
  - lib/facebook_ads/config.rb
619
+ - lib/facebook_ads/crash_logger.rb
617
620
  - lib/facebook_ads/edge.rb
618
621
  - lib/facebook_ads/errors.rb
619
622
  - lib/facebook_ads/field_types.rb
@@ -1,78 +0,0 @@
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 AdContract < AdObject
29
-
30
- field :account_id, 'string'
31
- field :account_mgr_fbid, 'string'
32
- field :account_mgr_name, 'string'
33
- field :adops_person_name, 'string'
34
- field :advertiser_address_fbid, 'string'
35
- field :advertiser_fbid, 'string'
36
- field :advertiser_name, 'string'
37
- field :agency_discount, 'double'
38
- field :agency_name, 'string'
39
- field :bill_to_address_fbid, 'string'
40
- field :bill_to_fbid, 'string'
41
- field :campaign_name, 'string'
42
- field :created_by, 'string'
43
- field :created_date, 'int'
44
- field :customer_io, 'string'
45
- field :io_number, 'int'
46
- field :io_terms, 'string'
47
- field :io_type, 'string'
48
- field :last_updated_by, 'string'
49
- field :last_updated_date, 'int'
50
- field :max_end_date, 'int'
51
- field :mdc_fbid, 'string'
52
- field :media_plan_number, 'string'
53
- field :min_start_date, 'int'
54
- field :msa_contract, 'string'
55
- field :payment_terms, 'string'
56
- field :rev_hold_flag, 'bool'
57
- field :rev_hold_released_by, 'int'
58
- field :rev_hold_released_on, 'int'
59
- field :salesrep_fbid, 'string'
60
- field :salesrep_name, 'string'
61
- field :sold_to_address_fbid, 'string'
62
- field :sold_to_fbid, 'string'
63
- field :status, 'string'
64
- field :subvertical, 'string'
65
- field :thirdparty_billed, 'int'
66
- field :thirdparty_password, 'string'
67
- field :thirdparty_uid, 'string'
68
- field :thirdparty_url, 'string'
69
- field :vat_country, 'string'
70
- field :version, 'int'
71
- field :vertical, 'string'
72
- has_no_id
73
- has_no_get
74
- has_no_post
75
- has_no_delete
76
-
77
- end
78
- end