facebookbusiness 0.7.0.0 → 0.8.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/lib/facebook_ads/ad_objects/ad.rb +0 -1
  3. data/lib/facebook_ads/ad_objects/ad_account.rb +17 -19
  4. data/lib/facebook_ads/ad_objects/ad_account_ad_volume.rb +23 -0
  5. data/lib/facebook_ads/ad_objects/ad_account_creation_request.rb +0 -1
  6. data/lib/facebook_ads/ad_objects/ad_account_delivery_estimate.rb +1 -0
  7. data/lib/facebook_ads/ad_objects/ad_account_matched_search_applications_edge_data.rb +1 -0
  8. data/lib/facebook_ads/ad_objects/ad_account_targeting_unified.rb +3 -0
  9. data/lib/facebook_ads/ad_objects/ad_activity.rb +8 -0
  10. data/lib/facebook_ads/ad_objects/ad_asset_feed_spec.rb +3 -0
  11. data/lib/facebook_ads/ad_objects/ad_campaign_activity.rb +2 -2
  12. data/lib/facebook_ads/ad_objects/ad_campaign_delivery_estimate.rb +1 -0
  13. data/lib/facebook_ads/ad_objects/ad_creative.rb +2 -3
  14. data/lib/facebook_ads/ad_objects/{atlas_url.rb → ad_creative_instagram_branded_content.rb} +1 -2
  15. data/lib/facebook_ads/ad_objects/ad_creative_interactive_components_spec.rb +1 -0
  16. data/lib/facebook_ads/ad_objects/ad_creative_link_data_call_to_action.rb +2 -0
  17. data/lib/facebook_ads/ad_objects/ad_network_analytics_sync_query_result.rb +2 -0
  18. data/lib/facebook_ads/ad_objects/ad_place_page_set.rb +6 -0
  19. data/lib/facebook_ads/ad_objects/ad_preview.rb +1 -0
  20. data/lib/facebook_ads/ad_objects/ad_report_spec.rb +0 -1
  21. data/lib/facebook_ads/ad_objects/ad_set.rb +2 -0
  22. data/lib/facebook_ads/ad_objects/ad_study.rb +2 -0
  23. data/lib/facebook_ads/ad_objects/ad_video.rb +12 -26
  24. data/lib/facebook_ads/ad_objects/adgroup_activity.rb +4 -4
  25. data/lib/facebook_ads/ad_objects/adgroup_placement_specific_review_feedback.rb +4 -0
  26. data/lib/facebook_ads/ad_objects/{ads_interest.rb → adoptable_pet.rb} +19 -5
  27. data/lib/facebook_ads/ad_objects/ads_insights.rb +9 -0
  28. data/lib/facebook_ads/ad_objects/ads_pixel.rb +3 -0
  29. data/lib/facebook_ads/ad_objects/album.rb +7 -0
  30. data/lib/facebook_ads/ad_objects/application.rb +26 -0
  31. data/lib/facebook_ads/ad_objects/atlas_campaign.rb +3 -3
  32. data/lib/facebook_ads/ad_objects/automotive_model.rb +1 -0
  33. data/lib/facebook_ads/ad_objects/business.rb +66 -118
  34. data/lib/facebook_ads/ad_objects/{business_creative_folder_sharing_agreement.rb → business_agreement.rb} +2 -5
  35. data/lib/facebook_ads/ad_objects/business_asset_group.rb +2 -3
  36. data/lib/facebook_ads/ad_objects/business_owned_object_on_behalf_of_request.rb +1 -0
  37. data/lib/facebook_ads/ad_objects/business_role_request.rb +10 -0
  38. data/lib/facebook_ads/ad_objects/business_unit.rb +1 -1
  39. data/lib/facebook_ads/ad_objects/business_user.rb +10 -0
  40. data/lib/facebook_ads/ad_objects/campaign.rb +258 -0
  41. data/lib/facebook_ads/ad_objects/catalog_sub_vertical_list.rb +88 -0
  42. data/lib/facebook_ads/ad_objects/comment.rb +1 -0
  43. data/lib/facebook_ads/ad_objects/commerce_merchant_settings.rb +126 -0
  44. data/lib/facebook_ads/ad_objects/{client_transparency_status.rb → commerce_merchant_settings_setup_status.rb} +6 -5
  45. data/lib/facebook_ads/ad_objects/commerce_order.rb +153 -0
  46. data/lib/facebook_ads/ad_objects/{business_creative.rb → commerce_order_transaction_detail.rb} +14 -12
  47. data/lib/facebook_ads/ad_objects/commerce_payout.rb +41 -0
  48. data/lib/facebook_ads/ad_objects/{creative_asset_tag.rb → connections_targeting.rb} +2 -2
  49. data/lib/facebook_ads/ad_objects/{brand_audience.rb → cpas_advertiser_partnership_recommendation.rb} +8 -9
  50. data/lib/facebook_ads/ad_objects/cpas_collaboration_request.rb +50 -0
  51. data/lib/facebook_ads/ad_objects/cpas_parent_catalog_settings.rb +1 -0
  52. data/lib/facebook_ads/ad_objects/custom_audience.rb +1 -4
  53. data/lib/facebook_ads/ad_objects/custom_audience_data_source.rb +1 -0
  54. data/lib/facebook_ads/ad_objects/custom_conversion.rb +1 -0
  55. data/lib/facebook_ads/ad_objects/da_check.rb +7 -0
  56. data/lib/facebook_ads/ad_objects/destination.rb +1 -0
  57. data/lib/facebook_ads/ad_objects/event.rb +12 -1
  58. data/lib/facebook_ads/ad_objects/extended_credit.rb +7 -0
  59. data/lib/facebook_ads/ad_objects/external_event_source.rb +1 -0
  60. data/lib/facebook_ads/ad_objects/flight.rb +1 -0
  61. data/lib/facebook_ads/ad_objects/group.rb +10 -1
  62. data/lib/facebook_ads/ad_objects/home_listing.rb +1 -0
  63. data/lib/facebook_ads/ad_objects/hotel.rb +1 -0
  64. data/lib/facebook_ads/ad_objects/ig_media.rb +1 -0
  65. data/lib/facebook_ads/ad_objects/ig_user.rb +1 -0
  66. data/lib/facebook_ads/ad_objects/life_event.rb +0 -8
  67. data/lib/facebook_ads/ad_objects/link.rb +0 -6
  68. data/lib/facebook_ads/ad_objects/live_video.rb +12 -16
  69. data/lib/facebook_ads/ad_objects/media_fingerprint.rb +0 -1
  70. data/lib/facebook_ads/ad_objects/native_offer_view.rb +0 -1
  71. data/lib/facebook_ads/ad_objects/offline_conversion_data_set.rb +0 -6
  72. data/lib/facebook_ads/ad_objects/oracle_transaction.rb +0 -7
  73. data/lib/facebook_ads/ad_objects/page.rb +75 -81
  74. data/lib/facebook_ads/ad_objects/page_admin_note.rb +1 -0
  75. data/lib/facebook_ads/ad_objects/page_call_to_action.rb +8 -0
  76. data/lib/facebook_ads/ad_objects/page_change_proposal.rb +2 -0
  77. data/lib/facebook_ads/ad_objects/page_post.rb +10 -0
  78. data/lib/facebook_ads/ad_objects/{request_history.rb → payment_subscription.rb} +24 -15
  79. data/lib/facebook_ads/ad_objects/photo.rb +6 -0
  80. data/lib/facebook_ads/ad_objects/post.rb +12 -2
  81. data/lib/facebook_ads/ad_objects/product_catalog.rb +50 -0
  82. data/lib/facebook_ads/ad_objects/product_feed.rb +31 -0
  83. data/lib/facebook_ads/ad_objects/{product_feed_upload_diagnostics.rb → product_feed_upload_diagnostics_report.rb} +2 -2
  84. data/lib/facebook_ads/ad_objects/product_group.rb +1 -0
  85. data/lib/facebook_ads/ad_objects/product_item.rb +2 -0
  86. data/lib/facebook_ads/ad_objects/product_set.rb +4 -0
  87. data/lib/facebook_ads/ad_objects/{custom_audience_prefill_state.rb → product_set_metadata.rb} +4 -3
  88. data/lib/facebook_ads/ad_objects/profile.rb +2 -0
  89. data/lib/facebook_ads/ad_objects/profile_picture_source.rb +4 -0
  90. data/lib/facebook_ads/ad_objects/publisher_block_list.rb +6 -0
  91. data/lib/facebook_ads/ad_objects/saved_audience.rb +1 -0
  92. data/lib/facebook_ads/ad_objects/security_settings.rb +0 -1
  93. data/lib/facebook_ads/ad_objects/server_side/content.rb +75 -13
  94. data/lib/facebook_ads/ad_objects/server_side/custom_data.rb +45 -6
  95. data/lib/facebook_ads/ad_objects/server_side/delivery_category.rb +33 -0
  96. data/lib/facebook_ads/ad_objects/server_side/event.rb +62 -3
  97. data/lib/facebook_ads/ad_objects/server_side/event_request.rb +86 -12
  98. data/lib/facebook_ads/ad_objects/{whats_app_business_profile.rb → server_side/event_request_async.rb} +9 -14
  99. data/lib/facebook_ads/ad_objects/server_side/user_data.rb +151 -17
  100. data/lib/facebook_ads/ad_objects/server_side/util.rb +216 -149
  101. data/lib/facebook_ads/ad_objects/system_user.rb +10 -4
  102. data/lib/facebook_ads/ad_objects/targeting.rb +4 -3
  103. data/lib/facebook_ads/ad_objects/{user_influence.rb → targeting_relaxation.rb} +2 -4
  104. data/lib/facebook_ads/ad_objects/third_party_measurement_report_dataset.rb +1 -0
  105. data/lib/facebook_ads/ad_objects/unified_thread.rb +1 -0
  106. data/lib/facebook_ads/ad_objects/user.rb +9 -27
  107. data/lib/facebook_ads/ad_objects/vehicle.rb +1 -0
  108. data/lib/facebook_ads/ad_objects/vehicle_offer.rb +1 -0
  109. data/lib/facebook_ads/ad_objects/whats_app_business_account.rb +26 -0
  110. data/lib/facebook_ads/errors.rb +1 -1
  111. data/lib/facebook_ads/version.rb +2 -2
  112. metadata +67 -30
  113. data/lib/facebook_ads/ad_objects/business_creative_folder.rb +0 -79
  114. data/lib/facebook_ads/ad_objects/business_image.rb +0 -94
  115. data/lib/facebook_ads/ad_objects/iterative_split_test_config.rb +0 -43
  116. data/lib/facebook_ads/ad_objects/messenger_platform_referral.rb +0 -39
  117. data/lib/facebook_ads/ad_objects/open_graph_object.rb +0 -70
  118. data/lib/facebook_ads/ad_objects/page_about_story.rb +0 -39
  119. data/lib/facebook_ads/ad_objects/split_test_config.rb +0 -41
  120. data/lib/facebook_ads/ad_objects/streaming_reaction.rb +0 -50
  121. data/lib/facebook_ads/ad_objects/user_taggable_friend.rb +0 -49
  122. data/lib/facebook_ads/ad_objects/video_game_show.rb +0 -39
@@ -297,6 +297,7 @@ module FacebookAds
297
297
  field :brand, 'string'
298
298
  field :capability_to_review_status, 'hash'
299
299
  field :category, 'string'
300
+ field :category_specific_fields, 'CatalogSubVerticalList'
300
301
  field :color, 'string'
301
302
  field :commerce_insights, 'ProductItemCommerceInsights'
302
303
  field :condition, { enum: -> { CONDITION }}
@@ -309,6 +310,7 @@ module FacebookAds
309
310
  field :custom_label_4, 'string'
310
311
  field :description, 'string'
311
312
  field :expiration_date, 'string'
313
+ field :fb_product_category, 'string'
312
314
  field :gender, { enum: -> { GENDER }}
313
315
  field :gtin, 'string'
314
316
  field :id, 'string'
@@ -30,9 +30,13 @@ module FacebookAds
30
30
  field :auto_creation_url, 'string'
31
31
  field :filter, 'string'
32
32
  field :id, 'string'
33
+ field :latest_metadata, 'ProductSetMetadata'
34
+ field :live_metadata, 'ProductSetMetadata'
33
35
  field :name, 'string'
34
36
  field :product_catalog, 'ProductCatalog'
35
37
  field :product_count, 'int'
38
+ field :retailer_id, 'string'
39
+ field :metadata, 'hash'
36
40
 
37
41
  has_edge :automotive_models do |edge|
38
42
  edge.get 'AutomotiveModel' do |api|
@@ -25,11 +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 CustomAudiencePrefillState < AdObject
28
+ class ProductSetMetadata < AdObject
29
29
 
30
+ field :cover_image_url, 'string'
30
31
  field :description, 'string'
31
- field :num_added, 'int'
32
- field :status, 'string'
32
+ field :external_url, 'string'
33
+ field :integrity_review_status, 'string'
33
34
  has_no_id
34
35
  has_no_get
35
36
  has_no_post
@@ -36,6 +36,7 @@ module FacebookAds
36
36
 
37
37
  TYPE = [
38
38
  "ANGRY",
39
+ "CARE",
39
40
  "HAHA",
40
41
  "LIKE",
41
42
  "LOVE",
@@ -63,6 +64,7 @@ module FacebookAds
63
64
 
64
65
  has_edge :picture do |edge|
65
66
  edge.get 'ProfilePictureSource' do |api|
67
+ api.has_param :breaking_change, { enum: -> { ProfilePictureSource::BREAKING_CHANGE }}
66
68
  api.has_param :height, 'int'
67
69
  api.has_param :redirect, 'bool'
68
70
  api.has_param :type, { enum: -> { ProfilePictureSource::TYPE }}
@@ -32,6 +32,10 @@ module FacebookAds
32
32
  "thumbnail",
33
33
  ]
34
34
 
35
+ BREAKING_CHANGE = [
36
+ "PROFILE_PICTURE",
37
+ ]
38
+
35
39
 
36
40
  field :bottom, 'int'
37
41
  field :cache_key, 'string'
@@ -38,6 +38,12 @@ module FacebookAds
38
38
  field :owner_ad_account_id, 'string'
39
39
  field :web_publishers, { list: 'object' }
40
40
 
41
+ has_edge :append_publisher_urls do |edge|
42
+ edge.post do |api|
43
+ api.has_param :publisher_urls, { list: 'string' }
44
+ end
45
+ end
46
+
41
47
  has_edge :paged_web_publishers do |edge|
42
48
  edge.get do |api|
43
49
  api.has_param :draft_id, 'string'
@@ -40,6 +40,7 @@ module FacebookAds
40
40
  field :time_created, 'datetime'
41
41
  field :time_updated, 'datetime'
42
42
  has_no_post
43
+ has_no_delete
43
44
 
44
45
  end
45
46
  end
@@ -27,7 +27,6 @@ module FacebookAds
27
27
 
28
28
  class SecuritySettings < AdObject
29
29
 
30
- field :secure_browsing, 'object'
31
30
  has_no_id
32
31
  has_no_get
33
32
  has_no_post
@@ -22,20 +22,23 @@ module FacebookAds
22
22
  # Content object contains information about the products.
23
23
  class Content
24
24
 
25
- # Product Id
26
- attr_accessor :product_id
27
-
28
- # number of product
29
- attr_accessor :quantity
30
-
31
- # Item Price.
32
- attr_accessor :item_price
25
+ attr_accessor :product_id,
26
+ :quantity,
27
+ :item_price,
28
+ :title,
29
+ :description,
30
+ :brand,
31
+ :category
33
32
 
34
33
  # Initializes the object
35
34
  # @param [String] product_id
36
35
  # @param [Integer] quantity
37
36
  # @param [Float] item_price
38
- def initialize(product_id: nil, quantity: nil, item_price: nil)
37
+ # @param [String] title
38
+ # @param [String] description
39
+ # @param [String] brand
40
+ # @param [String] category
41
+ def initialize(product_id: nil, quantity: nil, item_price: nil, title: nil, description: nil, brand: nil, category: nil)
39
42
  unless product_id.nil?
40
43
  self.product_id = String(product_id)
41
44
  end
@@ -45,6 +48,18 @@ module FacebookAds
45
48
  unless item_price.nil?
46
49
  self.item_price = Float(item_price)
47
50
  end
51
+ unless title.nil?
52
+ self.title = String(title)
53
+ end
54
+ unless description.nil?
55
+ self.description = String(description)
56
+ end
57
+ unless brand.nil?
58
+ self.brand = String(brand)
59
+ end
60
+ unless category.nil?
61
+ self.category = String(category)
62
+ end
48
63
  end
49
64
 
50
65
  # build the object using the input hash
@@ -66,15 +81,34 @@ module FacebookAds
66
81
  if attributes.has_key?(:'item_price')
67
82
  self.item_price = attributes[:'item_price']
68
83
  end
84
+
85
+ if attributes.has_key?(:'title')
86
+ self.title = attributes[:'title']
87
+ end
88
+
89
+ if attributes.has_key?(:'description')
90
+ self.description = attributes[:'description']
91
+ end
92
+
93
+ if attributes.has_key?(:'brand')
94
+ self.brand = attributes[:'brand']
95
+ end
96
+
97
+ if attributes.has_key?(:'category')
98
+ self.category = attributes[:'category']
99
+ end
69
100
  end
70
101
 
71
102
  # Checks equality by comparing each attribute.
72
103
  def ==(o)
73
- return true if self.equal?(o)
74
- self.class == o.class &&
104
+ return self.class == o.class &&
75
105
  product_id == o.product_id &&
76
106
  quantity == o.quantity &&
77
- item_price == o.item_price
107
+ item_price == o.item_price &&
108
+ title == o.title &&
109
+ description == o.description &&
110
+ brand == o.brand &&
111
+ category == o.category
78
112
  end
79
113
 
80
114
  # @see the `==` method
@@ -88,7 +122,11 @@ module FacebookAds
88
122
  [
89
123
  product_id,
90
124
  quantity,
91
- item_price
125
+ item_price,
126
+ title,
127
+ description,
128
+ brand,
129
+ category
92
130
  ].hash
93
131
  end
94
132
 
@@ -106,6 +144,18 @@ module FacebookAds
106
144
  unless item_price.nil?
107
145
  hash['item_price'] = item_price
108
146
  end
147
+ unless title.nil?
148
+ hash['title'] = title
149
+ end
150
+ unless description.nil?
151
+ hash['description'] = description
152
+ end
153
+ unless brand.nil?
154
+ hash['brand'] = brand
155
+ end
156
+ unless category.nil?
157
+ hash['category'] = category
158
+ end
109
159
  hash.to_s
110
160
  end
111
161
 
@@ -121,6 +171,18 @@ module FacebookAds
121
171
  unless item_price.nil?
122
172
  hash['item_price'] = item_price
123
173
  end
174
+ unless title.nil?
175
+ hash['title'] = title
176
+ end
177
+ unless description.nil?
178
+ hash['description'] = description
179
+ end
180
+ unless brand.nil?
181
+ hash['brand'] = brand
182
+ end
183
+ unless category.nil?
184
+ hash['category'] = category
185
+ end
124
186
  hash
125
187
  end
126
188
  end
@@ -69,7 +69,15 @@ module FacebookAds
69
69
  # Use only with Search events. A search query made by a user.
70
70
  # Example: 'lettuce'.
71
71
  attr_accessor :search_string
72
-
72
+
73
+ # Type of delivery for a purchase event
74
+ # Example: 'home_delivery'.
75
+ attr_accessor :delivery_category
76
+
77
+ # The item number.
78
+ # Example: 'item1234'.
79
+ attr_accessor :item_number
80
+
73
81
  # Custom Properties bag for storing other custom fields
74
82
  attr_accessor :custom_properties
75
83
 
@@ -86,6 +94,8 @@ module FacebookAds
86
94
  # @param [Integer] num_items
87
95
  # @param [String] status
88
96
  # @param [String] search_string
97
+ # @param [String] delivery_category
98
+ # @param [String] item_number
89
99
  # @param [String] custom_properties
90
100
  def initialize(value: nil,
91
101
  currency: nil,
@@ -99,6 +109,8 @@ module FacebookAds
99
109
  num_items: nil,
100
110
  status: nil,
101
111
  search_string: nil,
112
+ delivery_category: nil,
113
+ item_number: nil,
102
114
  custom_properties: {})
103
115
 
104
116
  unless value.nil?
@@ -137,6 +149,12 @@ module FacebookAds
137
149
  unless search_string.nil?
138
150
  self.search_string = search_string
139
151
  end
152
+ unless delivery_category.nil?
153
+ self.delivery_category = delivery_category
154
+ end
155
+ unless item_number.nil?
156
+ self.item_number = item_number
157
+ end
140
158
  unless custom_properties.nil?
141
159
  self.custom_properties = custom_properties
142
160
  end
@@ -203,6 +221,14 @@ module FacebookAds
203
221
  self.search_string = attributes[:'search_string']
204
222
  end
205
223
 
224
+ if attributes.has_key?(:'delivery_category')
225
+ self.delivery_category = attributes[:'delivery_category']
226
+ end
227
+
228
+ if attributes.has_key?(:'item_number')
229
+ self.item_number = attributes[:'item_number']
230
+ end
231
+
206
232
  if attributes.has_key?(:'custom_properties')
207
233
  self.custom_properties = attributes[:'custom_properties']
208
234
  end
@@ -224,6 +250,8 @@ module FacebookAds
224
250
  num_items == o.num_items &&
225
251
  status == o.status &&
226
252
  search_string == o.search_string &&
253
+ delivery_category == o.delivery_category &&
254
+ item_number == o.item_number &&
227
255
  custom_properties == o.custom_properties
228
256
  end
229
257
 
@@ -248,6 +276,8 @@ module FacebookAds
248
276
  num_items,
249
277
  status,
250
278
  search_string,
279
+ delivery_category,
280
+ item_number,
251
281
  custom_properties
252
282
  ].hash
253
283
  end
@@ -292,25 +322,28 @@ module FacebookAds
292
322
  unless search_string.nil?
293
323
  hash['search_string'] = search_string
294
324
  end
325
+ unless delivery_category.nil?
326
+ hash['delivery_category'] = delivery_category
327
+ end
295
328
  unless custom_properties.nil?
296
329
  hash['custom_properties'] = custom_properties
297
- end
330
+ end
298
331
  hash.to_s
299
332
  end
300
333
 
301
334
  # Add other custom fields to custom properties.
302
335
  def add_custom_property(key, value)
303
- custom_properties[key] = value;
336
+ custom_properties[key] = value;
304
337
  end
305
338
 
306
339
  # Normalize input fields to server request format.
307
- def normalize
340
+ def normalize
308
341
  hash = {}
309
342
  unless value.nil?
310
343
  hash['value'] = value
311
344
  end
312
345
  unless currency.nil?
313
- hash['currency'] = FacebookAds::ServerSide::normalize(currency, 'currency')
346
+ hash['currency'] = FacebookAds::ServerSide::Util.normalize(currency, 'currency')
314
347
  end
315
348
  unless content_name.nil?
316
349
  hash['content_name'] = content_name
@@ -339,6 +372,12 @@ module FacebookAds
339
372
  unless search_string.nil?
340
373
  hash['search_string'] = search_string
341
374
  end
375
+ unless delivery_category.nil?
376
+ hash['delivery_category'] = FacebookAds::ServerSide::Util.normalize(delivery_category, 'delivery_category')
377
+ end
378
+ unless item_number.nil?
379
+ hash['item_number'] = item_number
380
+ end
342
381
 
343
382
  unless contents.nil?
344
383
  content_array = []
@@ -348,7 +387,7 @@ module FacebookAds
348
387
  hash['contents'] = content_array
349
388
  end
350
389
 
351
- hash.merge!(custom_properties) unless custom_properties.nil?
390
+ hash.merge!(custom_properties) unless custom_properties.nil?
352
391
  hash
353
392
  end
354
393
  end
@@ -0,0 +1,33 @@
1
+ # Copyright (c) 2017-present, Facebook, Inc. All rights reserved.
2
+ #
3
+ # You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4
+ # copy, modify, and distribute this software in source code or binary form for use
5
+ # in connection with the web services and APIs provided by Facebook.
6
+ #
7
+ # As with any software that integrates with the Facebook platform, your use of
8
+ # this software is subject to the Facebook Platform Policy
9
+ # [http://developers.facebook.com/policy/]. This copyright notice shall be
10
+ # included in all copies or substantial portions of the software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
+
19
+ module FacebookAds
20
+ module ServerSide
21
+ DeliveryCategory = Set[
22
+
23
+ # Customer needs to enter the store to get the purchased product.
24
+ 'in_store',
25
+
26
+ # Customer picks up their order by driving to a store and waiting inside their vehicle.
27
+ 'curbside',
28
+
29
+ # Purchase is delivered to the customer's home.
30
+ 'home_delivery'
31
+ ]
32
+ end
33
+ end
@@ -52,6 +52,17 @@ module FacebookAds
52
52
  # An Object that includes additional business data about the event.
53
53
  attr_accessor :custom_data
54
54
 
55
+ # Processing options you would like to enable for a specific event.
56
+ # For more details see https://developers.facebook.com/docs/marketing-apis/data-processing-options
57
+ attr_accessor :data_processing_options
58
+
59
+ # A country that you want to associate to this data processing option
60
+ # For more details see https://developers.facebook.com/docs/marketing-apis/data-processing-options
61
+ attr_accessor :data_processing_options_country
62
+
63
+ # A state that you want to associate with this data processing option.
64
+ # For more details see https://developers.facebook.com/docs/marketing-apis/data-processing-options
65
+ attr_accessor :data_processing_options_state
55
66
 
56
67
  # @param [String] event_name
57
68
  # @param [int] event_time
@@ -60,13 +71,19 @@ module FacebookAds
60
71
  # @param [String] event_id
61
72
  # @param [FacebookAds::ServerSide::UserData] user_data
62
73
  # @param [FacebookAds::ServerSide::CustomData] custom_data
74
+ # @param [Array<String>] data_processing_options
75
+ # @param [int] data_processing_options_country
76
+ # @param [int] data_processing_options_state
63
77
  def initialize(event_name: nil,
64
78
  event_time: nil,
65
79
  event_source_url: nil,
66
80
  opt_out: nil,
67
81
  event_id: nil,
68
82
  user_data: nil,
69
- custom_data: nil)
83
+ custom_data: nil,
84
+ data_processing_options: nil,
85
+ data_processing_options_country: nil,
86
+ data_processing_options_state: nil)
70
87
 
71
88
  unless event_name.nil?
72
89
  self.event_name = event_name
@@ -89,6 +106,15 @@ module FacebookAds
89
106
  unless custom_data.nil?
90
107
  self.custom_data = custom_data
91
108
  end
109
+ unless data_processing_options.nil?
110
+ self.data_processing_options = data_processing_options
111
+ end
112
+ unless data_processing_options_country.nil?
113
+ self.data_processing_options_country = data_processing_options_country
114
+ end
115
+ unless data_processing_options_state.nil?
116
+ self.data_processing_options_state = data_processing_options_state
117
+ end
92
118
  end
93
119
 
94
120
  # build the object using the input hash
@@ -126,6 +152,18 @@ module FacebookAds
126
152
  if attributes.has_key?(:'custom_data')
127
153
  self.custom_data = attributes[:'custom_data']
128
154
  end
155
+
156
+ if attributes.has_key?(:'data_processing_options')
157
+ self.custom_data = attributes[:'data_processing_options']
158
+ end
159
+
160
+ if attributes.has_key?(:'data_processing_options_country')
161
+ self.custom_data = attributes[:'data_processing_options_country']
162
+ end
163
+
164
+ if attributes.has_key?(:'data_processing_options_state')
165
+ self.custom_data = attributes[:'data_processing_options_state']
166
+ end
129
167
  end
130
168
 
131
169
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -166,7 +204,10 @@ module FacebookAds
166
204
  opt_out == o.opt_out &&
167
205
  event_id == o.event_id &&
168
206
  user_data == o.user_data &&
169
- custom_data == o.custom_data
207
+ custom_data == o.custom_data &&
208
+ data_processing_options == o.data_processing_options &&
209
+ data_processing_options_country == o.data_processing_options_country &&
210
+ data_processing_options_state == o.data_processing_options_state
170
211
  end
171
212
 
172
213
  # @see the `==` method
@@ -177,7 +218,7 @@ module FacebookAds
177
218
  # Calculates hash code according to all attributes.
178
219
  # @return [Fixnum] Hash code
179
220
  def hash
180
- [event_name, event_time, event_source_url, opt_out, event_id, user_data, custom_data].hash
221
+ [event_name, event_time, event_source_url, opt_out, event_id, user_data, custom_data, data_processing_options, data_processing_options_country, data_processing_options_state].hash
181
222
  end
182
223
 
183
224
  def to_s
@@ -203,6 +244,15 @@ module FacebookAds
203
244
  unless custom_data.nil?
204
245
  hash['custom_data'] = custom_data.to_s
205
246
  end
247
+ unless data_processing_options.nil?
248
+ hash['data_processing_options'] = data_processing_options.to_s
249
+ end
250
+ unless data_processing_options_country.nil?
251
+ hash['data_processing_options_country'] = data_processing_options_country.to_s
252
+ end
253
+ unless data_processing_options_state.nil?
254
+ hash['data_processing_options_state'] = data_processing_options_state.to_s
255
+ end
206
256
  hash.to_s
207
257
  end
208
258
 
@@ -231,6 +281,15 @@ module FacebookAds
231
281
  unless custom_data.nil?
232
282
  hash['custom_data'] = custom_data.normalize
233
283
  end
284
+ unless data_processing_options.nil?
285
+ hash['data_processing_options'] = data_processing_options
286
+ end
287
+ unless data_processing_options_country.nil?
288
+ hash['data_processing_options_country'] = data_processing_options_country
289
+ end
290
+ unless data_processing_options_state.nil?
291
+ hash['data_processing_options_state'] = data_processing_options_state
292
+ end
234
293
  hash
235
294
  end
236
295