facebookbusiness 0.4.0.8 → 0.4.0.9

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