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.
- checksums.yaml +4 -4
- data/lib/facebook_ads/ad_objects/ad.rb +0 -1
- data/lib/facebook_ads/ad_objects/ad_account.rb +17 -19
- data/lib/facebook_ads/ad_objects/ad_account_ad_volume.rb +23 -0
- data/lib/facebook_ads/ad_objects/ad_account_creation_request.rb +0 -1
- data/lib/facebook_ads/ad_objects/ad_account_delivery_estimate.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_account_matched_search_applications_edge_data.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_account_targeting_unified.rb +3 -0
- data/lib/facebook_ads/ad_objects/ad_activity.rb +8 -0
- data/lib/facebook_ads/ad_objects/ad_asset_feed_spec.rb +3 -0
- data/lib/facebook_ads/ad_objects/ad_campaign_activity.rb +2 -2
- data/lib/facebook_ads/ad_objects/ad_campaign_delivery_estimate.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_creative.rb +2 -3
- data/lib/facebook_ads/ad_objects/{atlas_url.rb → ad_creative_instagram_branded_content.rb} +1 -2
- data/lib/facebook_ads/ad_objects/ad_creative_interactive_components_spec.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_creative_link_data_call_to_action.rb +2 -0
- data/lib/facebook_ads/ad_objects/ad_network_analytics_sync_query_result.rb +2 -0
- data/lib/facebook_ads/ad_objects/ad_place_page_set.rb +6 -0
- data/lib/facebook_ads/ad_objects/ad_preview.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_report_spec.rb +0 -1
- data/lib/facebook_ads/ad_objects/ad_set.rb +2 -0
- data/lib/facebook_ads/ad_objects/ad_study.rb +2 -0
- data/lib/facebook_ads/ad_objects/ad_video.rb +12 -26
- data/lib/facebook_ads/ad_objects/adgroup_activity.rb +4 -4
- data/lib/facebook_ads/ad_objects/adgroup_placement_specific_review_feedback.rb +4 -0
- data/lib/facebook_ads/ad_objects/{ads_interest.rb → adoptable_pet.rb} +19 -5
- data/lib/facebook_ads/ad_objects/ads_insights.rb +9 -0
- data/lib/facebook_ads/ad_objects/ads_pixel.rb +3 -0
- data/lib/facebook_ads/ad_objects/album.rb +7 -0
- data/lib/facebook_ads/ad_objects/application.rb +26 -0
- data/lib/facebook_ads/ad_objects/atlas_campaign.rb +3 -3
- data/lib/facebook_ads/ad_objects/automotive_model.rb +1 -0
- data/lib/facebook_ads/ad_objects/business.rb +66 -118
- data/lib/facebook_ads/ad_objects/{business_creative_folder_sharing_agreement.rb → business_agreement.rb} +2 -5
- data/lib/facebook_ads/ad_objects/business_asset_group.rb +2 -3
- data/lib/facebook_ads/ad_objects/business_owned_object_on_behalf_of_request.rb +1 -0
- data/lib/facebook_ads/ad_objects/business_role_request.rb +10 -0
- data/lib/facebook_ads/ad_objects/business_unit.rb +1 -1
- data/lib/facebook_ads/ad_objects/business_user.rb +10 -0
- data/lib/facebook_ads/ad_objects/campaign.rb +258 -0
- data/lib/facebook_ads/ad_objects/catalog_sub_vertical_list.rb +88 -0
- data/lib/facebook_ads/ad_objects/comment.rb +1 -0
- data/lib/facebook_ads/ad_objects/commerce_merchant_settings.rb +126 -0
- data/lib/facebook_ads/ad_objects/{client_transparency_status.rb → commerce_merchant_settings_setup_status.rb} +6 -5
- data/lib/facebook_ads/ad_objects/commerce_order.rb +153 -0
- data/lib/facebook_ads/ad_objects/{business_creative.rb → commerce_order_transaction_detail.rb} +14 -12
- data/lib/facebook_ads/ad_objects/commerce_payout.rb +41 -0
- data/lib/facebook_ads/ad_objects/{creative_asset_tag.rb → connections_targeting.rb} +2 -2
- data/lib/facebook_ads/ad_objects/{brand_audience.rb → cpas_advertiser_partnership_recommendation.rb} +8 -9
- data/lib/facebook_ads/ad_objects/cpas_collaboration_request.rb +50 -0
- data/lib/facebook_ads/ad_objects/cpas_parent_catalog_settings.rb +1 -0
- data/lib/facebook_ads/ad_objects/custom_audience.rb +1 -4
- data/lib/facebook_ads/ad_objects/custom_audience_data_source.rb +1 -0
- data/lib/facebook_ads/ad_objects/custom_conversion.rb +1 -0
- data/lib/facebook_ads/ad_objects/da_check.rb +7 -0
- data/lib/facebook_ads/ad_objects/destination.rb +1 -0
- data/lib/facebook_ads/ad_objects/event.rb +12 -1
- data/lib/facebook_ads/ad_objects/extended_credit.rb +7 -0
- data/lib/facebook_ads/ad_objects/external_event_source.rb +1 -0
- data/lib/facebook_ads/ad_objects/flight.rb +1 -0
- data/lib/facebook_ads/ad_objects/group.rb +10 -1
- data/lib/facebook_ads/ad_objects/home_listing.rb +1 -0
- data/lib/facebook_ads/ad_objects/hotel.rb +1 -0
- data/lib/facebook_ads/ad_objects/ig_media.rb +1 -0
- data/lib/facebook_ads/ad_objects/ig_user.rb +1 -0
- data/lib/facebook_ads/ad_objects/life_event.rb +0 -8
- data/lib/facebook_ads/ad_objects/link.rb +0 -6
- data/lib/facebook_ads/ad_objects/live_video.rb +12 -16
- data/lib/facebook_ads/ad_objects/media_fingerprint.rb +0 -1
- data/lib/facebook_ads/ad_objects/native_offer_view.rb +0 -1
- data/lib/facebook_ads/ad_objects/offline_conversion_data_set.rb +0 -6
- data/lib/facebook_ads/ad_objects/oracle_transaction.rb +0 -7
- data/lib/facebook_ads/ad_objects/page.rb +75 -81
- data/lib/facebook_ads/ad_objects/page_admin_note.rb +1 -0
- data/lib/facebook_ads/ad_objects/page_call_to_action.rb +8 -0
- data/lib/facebook_ads/ad_objects/page_change_proposal.rb +2 -0
- data/lib/facebook_ads/ad_objects/page_post.rb +10 -0
- data/lib/facebook_ads/ad_objects/{request_history.rb → payment_subscription.rb} +24 -15
- data/lib/facebook_ads/ad_objects/photo.rb +6 -0
- data/lib/facebook_ads/ad_objects/post.rb +12 -2
- data/lib/facebook_ads/ad_objects/product_catalog.rb +50 -0
- data/lib/facebook_ads/ad_objects/product_feed.rb +31 -0
- data/lib/facebook_ads/ad_objects/{product_feed_upload_diagnostics.rb → product_feed_upload_diagnostics_report.rb} +2 -2
- data/lib/facebook_ads/ad_objects/product_group.rb +1 -0
- data/lib/facebook_ads/ad_objects/product_item.rb +2 -0
- data/lib/facebook_ads/ad_objects/product_set.rb +4 -0
- data/lib/facebook_ads/ad_objects/{custom_audience_prefill_state.rb → product_set_metadata.rb} +4 -3
- data/lib/facebook_ads/ad_objects/profile.rb +2 -0
- data/lib/facebook_ads/ad_objects/profile_picture_source.rb +4 -0
- data/lib/facebook_ads/ad_objects/publisher_block_list.rb +6 -0
- data/lib/facebook_ads/ad_objects/saved_audience.rb +1 -0
- data/lib/facebook_ads/ad_objects/security_settings.rb +0 -1
- data/lib/facebook_ads/ad_objects/server_side/content.rb +75 -13
- data/lib/facebook_ads/ad_objects/server_side/custom_data.rb +45 -6
- data/lib/facebook_ads/ad_objects/server_side/delivery_category.rb +33 -0
- data/lib/facebook_ads/ad_objects/server_side/event.rb +62 -3
- data/lib/facebook_ads/ad_objects/server_side/event_request.rb +86 -12
- data/lib/facebook_ads/ad_objects/{whats_app_business_profile.rb → server_side/event_request_async.rb} +9 -14
- data/lib/facebook_ads/ad_objects/server_side/user_data.rb +151 -17
- data/lib/facebook_ads/ad_objects/server_side/util.rb +216 -149
- data/lib/facebook_ads/ad_objects/system_user.rb +10 -4
- data/lib/facebook_ads/ad_objects/targeting.rb +4 -3
- data/lib/facebook_ads/ad_objects/{user_influence.rb → targeting_relaxation.rb} +2 -4
- data/lib/facebook_ads/ad_objects/third_party_measurement_report_dataset.rb +1 -0
- data/lib/facebook_ads/ad_objects/unified_thread.rb +1 -0
- data/lib/facebook_ads/ad_objects/user.rb +9 -27
- data/lib/facebook_ads/ad_objects/vehicle.rb +1 -0
- data/lib/facebook_ads/ad_objects/vehicle_offer.rb +1 -0
- data/lib/facebook_ads/ad_objects/whats_app_business_account.rb +26 -0
- data/lib/facebook_ads/errors.rb +1 -1
- data/lib/facebook_ads/version.rb +2 -2
- metadata +67 -30
- data/lib/facebook_ads/ad_objects/business_creative_folder.rb +0 -79
- data/lib/facebook_ads/ad_objects/business_image.rb +0 -94
- data/lib/facebook_ads/ad_objects/iterative_split_test_config.rb +0 -43
- data/lib/facebook_ads/ad_objects/messenger_platform_referral.rb +0 -39
- data/lib/facebook_ads/ad_objects/open_graph_object.rb +0 -70
- data/lib/facebook_ads/ad_objects/page_about_story.rb +0 -39
- data/lib/facebook_ads/ad_objects/split_test_config.rb +0 -41
- data/lib/facebook_ads/ad_objects/streaming_reaction.rb +0 -50
- data/lib/facebook_ads/ad_objects/user_taggable_friend.rb +0 -49
- 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|
|
data/lib/facebook_ads/ad_objects/{custom_audience_prefill_state.rb → product_set_metadata.rb}
RENAMED
@@ -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
|
28
|
+
class ProductSetMetadata < AdObject
|
29
29
|
|
30
|
+
field :cover_image_url, 'string'
|
30
31
|
field :description, 'string'
|
31
|
-
field :
|
32
|
-
field :
|
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 }}
|
@@ -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'
|
@@ -22,20 +22,23 @@ module FacebookAds
|
|
22
22
|
# Content object contains information about the products.
|
23
23
|
class Content
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
|
-
|
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
|
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
|
|