facebookbusiness 0.8.0.2 → 0.9.0.2
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.
- checksums.yaml +4 -4
- data/lib/facebook_ads/ad_objects/ad.rb +3 -0
- data/lib/facebook_ads/ad_objects/ad_account.rb +21 -13
- data/lib/facebook_ads/ad_objects/ad_account_ad_volume.rb +1 -0
- 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 +23 -5
- data/lib/facebook_ads/ad_objects/ad_activity.rb +0 -1
- data/lib/facebook_ads/ad_objects/ad_asset_feed_spec.rb +5 -0
- data/lib/facebook_ads/ad_objects/ad_async_request.rb +2 -0
- data/lib/facebook_ads/ad_objects/ad_campaign_activity.rb +6 -2
- data/lib/facebook_ads/ad_objects/ad_campaign_delivery_estimate.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_creative.rb +7 -0
- data/lib/facebook_ads/ad_objects/ad_creative_link_data_call_to_action.rb +5 -0
- data/lib/facebook_ads/ad_objects/{ad_creative_instagram_branded_content.rb → ad_creative_omnichannel_link_spec.rb} +3 -1
- data/lib/facebook_ads/ad_objects/ad_preview.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_report_run.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_rule_execution_spec.rb +4 -0
- data/lib/facebook_ads/ad_objects/ad_set.rb +3 -1
- data/lib/facebook_ads/ad_objects/ad_study.rb +0 -1
- data/lib/facebook_ads/ad_objects/ad_study_objective.rb +0 -4
- data/lib/facebook_ads/ad_objects/ad_video.rb +5 -10
- data/lib/facebook_ads/ad_objects/adgroup_activity.rb +2 -0
- data/lib/facebook_ads/ad_objects/adoptable_pet.rb +7 -0
- data/lib/facebook_ads/ad_objects/ads_insights.rb +1 -0
- data/lib/facebook_ads/ad_objects/ads_pixel.rb +1 -0
- data/lib/facebook_ads/ad_objects/album.rb +0 -10
- data/lib/facebook_ads/ad_objects/application.rb +2 -10
- data/lib/facebook_ads/ad_objects/business.rb +15 -12
- data/lib/facebook_ads/ad_objects/business_asset_group.rb +1 -1
- data/lib/facebook_ads/ad_objects/business_role_request.rb +4 -4
- data/lib/facebook_ads/ad_objects/business_unit.rb +0 -1
- data/lib/facebook_ads/ad_objects/business_user.rb +4 -4
- data/lib/facebook_ads/ad_objects/campaign.rb +11 -1
- data/lib/facebook_ads/ad_objects/{friend_list.rb → catalog_item_channels_to_integrity_status.rb} +5 -5
- data/lib/facebook_ads/ad_objects/commerce_merchant_settings.rb +2 -24
- data/lib/facebook_ads/ad_objects/commerce_merchant_settings_setup_status.rb +1 -0
- data/lib/facebook_ads/ad_objects/custom_audience.rb +8 -0
- data/lib/facebook_ads/ad_objects/extended_credit.rb +0 -1
- data/lib/facebook_ads/ad_objects/group.rb +26 -10
- data/lib/facebook_ads/ad_objects/hotel_room.rb +1 -0
- data/lib/facebook_ads/ad_objects/ig_media.rb +0 -1
- data/lib/facebook_ads/ad_objects/ig_user.rb +0 -1
- data/lib/facebook_ads/ad_objects/link.rb +0 -4
- data/lib/facebook_ads/ad_objects/live_video.rb +12 -12
- data/lib/facebook_ads/ad_objects/messenger_profile.rb +1 -0
- data/lib/facebook_ads/ad_objects/page.rb +23 -15
- data/lib/facebook_ads/ad_objects/page_post.rb +0 -10
- data/lib/facebook_ads/ad_objects/{event_tour.rb → payment_engine_payment.rb} +35 -18
- data/lib/facebook_ads/ad_objects/payment_subscription.rb +3 -3
- data/lib/facebook_ads/ad_objects/photo.rb +0 -10
- data/lib/facebook_ads/ad_objects/playable_content.rb +1 -0
- data/lib/facebook_ads/ad_objects/post.rb +46 -29
- data/lib/facebook_ads/ad_objects/product_catalog.rb +3 -7
- data/lib/facebook_ads/ad_objects/product_feed.rb +1 -0
- data/lib/facebook_ads/ad_objects/product_feed_schedule.rb +2 -0
- data/lib/facebook_ads/ad_objects/product_group.rb +8 -0
- data/lib/facebook_ads/ad_objects/product_item.rb +15 -0
- data/lib/facebook_ads/ad_objects/referral.rb +2 -0
- data/lib/facebook_ads/ad_objects/server_side/action_source.rb +48 -0
- data/lib/facebook_ads/ad_objects/server_side/batch_processor.rb +73 -0
- data/lib/facebook_ads/ad_objects/server_side/content.rb +23 -4
- data/lib/facebook_ads/ad_objects/server_side/event.rb +32 -6
- data/lib/facebook_ads/ad_objects/server_side/event_request.rb +60 -13
- data/lib/facebook_ads/ad_objects/server_side/event_request_async.rb +12 -0
- data/lib/facebook_ads/ad_objects/{user_payment_modules_options.rb → server_side/http_method.rb} +7 -19
- data/lib/facebook_ads/ad_objects/server_side/http_service_interface.rb +33 -0
- data/lib/facebook_ads/ad_objects/server_side/http_util.rb +31 -0
- data/lib/facebook_ads/ad_objects/server_side/util.rb +13 -0
- data/lib/facebook_ads/ad_objects/system_user.rb +0 -20
- data/lib/facebook_ads/ad_objects/targeting.rb +0 -2
- data/lib/facebook_ads/ad_objects/third_party_measurement_report_dataset.rb +0 -1
- data/lib/facebook_ads/ad_objects/unified_thread.rb +0 -1
- data/lib/facebook_ads/ad_objects/user.rb +31 -26
- data/lib/facebook_ads/ad_objects/vehicle.rb +1 -0
- data/lib/facebook_ads/ad_objects/whats_app_business_account.rb +3 -0
- data/lib/facebook_ads/ad_objects/{offline_terms_of_service.rb → whats_app_business_profile.rb} +2 -4
- data/lib/facebook_ads/session.rb +1 -1
- data/lib/facebook_ads/version.rb +2 -2
- metadata +13 -10
- data/lib/facebook_ads/ad_objects/ad_account_creation_request.rb +0 -71
- data/lib/facebook_ads/ad_objects/user_payment_methods_info.rb +0 -43
@@ -25,31 +25,48 @@ 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 PaymentEnginePayment < AdObject
|
29
|
+
REASON = [
|
30
|
+
"BANNED_USER",
|
31
|
+
"DENIED_REFUND",
|
32
|
+
"GRANTED_REPLACEMENT_ITEM",
|
33
|
+
]
|
29
34
|
|
30
|
-
|
31
|
-
field :
|
32
|
-
field :
|
35
|
+
|
36
|
+
field :actions, { list: 'object' }
|
37
|
+
field :application, 'Application'
|
38
|
+
field :country, 'string'
|
39
|
+
field :created_time, 'datetime'
|
40
|
+
field :disputes, { list: 'object' }
|
41
|
+
field :fraud_status, 'string'
|
42
|
+
field :fulfillment_status, 'string'
|
33
43
|
field :id, 'string'
|
34
|
-
field :
|
35
|
-
field :
|
36
|
-
field :
|
37
|
-
field :
|
38
|
-
field :
|
39
|
-
field :
|
40
|
-
field :
|
41
|
-
field :
|
42
|
-
field :
|
43
|
-
field :
|
44
|
+
field :is_from_ad, 'bool'
|
45
|
+
field :is_from_page_post, 'bool'
|
46
|
+
field :items, { list: 'object' }
|
47
|
+
field :payout_foreign_exchange_rate, 'double'
|
48
|
+
field :phone_support_eligible, 'bool'
|
49
|
+
field :refundable_amount, 'CurrencyAmount'
|
50
|
+
field :request_id, 'string'
|
51
|
+
field :tax, 'string'
|
52
|
+
field :tax_country, 'string'
|
53
|
+
field :test, 'int'
|
54
|
+
field :user, 'User'
|
44
55
|
has_no_post
|
45
56
|
has_no_delete
|
46
57
|
|
47
|
-
has_edge :
|
48
|
-
edge.
|
58
|
+
has_edge :dispute do |edge|
|
59
|
+
edge.post 'PaymentEnginePayment' do |api|
|
60
|
+
api.has_param :reason, { enum: -> { PaymentEnginePayment::REASON }}
|
61
|
+
end
|
49
62
|
end
|
50
63
|
|
51
|
-
has_edge :
|
52
|
-
edge.
|
64
|
+
has_edge :refunds do |edge|
|
65
|
+
edge.post 'PaymentEnginePayment' do |api|
|
66
|
+
api.has_param :amount, 'double'
|
67
|
+
api.has_param :currency, 'string'
|
68
|
+
api.has_param :reason, { enum: -> { PaymentEnginePayment::REASON }}
|
69
|
+
end
|
53
70
|
end
|
54
71
|
|
55
72
|
end
|
@@ -29,13 +29,13 @@ module FacebookAds
|
|
29
29
|
|
30
30
|
field :amount, 'string'
|
31
31
|
field :app_param_data, 'string'
|
32
|
-
field :application, '
|
32
|
+
field :application, 'Application'
|
33
33
|
field :billing_period, 'string'
|
34
34
|
field :canceled_reason, 'string'
|
35
35
|
field :created_time, 'datetime'
|
36
36
|
field :currency, 'string'
|
37
37
|
field :id, 'string'
|
38
|
-
field :last_payment, '
|
38
|
+
field :last_payment, 'PaymentEnginePayment'
|
39
39
|
field :next_bill_time, 'datetime'
|
40
40
|
field :next_period_amount, 'string'
|
41
41
|
field :next_period_currency, 'string'
|
@@ -50,7 +50,7 @@ module FacebookAds
|
|
50
50
|
field :trial_currency, 'string'
|
51
51
|
field :trial_expiry_time, 'datetime'
|
52
52
|
field :updated_time, 'datetime'
|
53
|
-
field :user, '
|
53
|
+
field :user, 'User'
|
54
54
|
has_no_post
|
55
55
|
has_no_delete
|
56
56
|
|
@@ -125,16 +125,6 @@ module FacebookAds
|
|
125
125
|
end
|
126
126
|
end
|
127
127
|
|
128
|
-
has_edge :reactions do |edge|
|
129
|
-
edge.get 'Profile' do |api|
|
130
|
-
api.has_param :type, { enum: -> { Profile::TYPE }}
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
has_edge :sharedposts do |edge|
|
135
|
-
edge.get 'Post'
|
136
|
-
end
|
137
|
-
|
138
128
|
has_edge :sponsor_tags do |edge|
|
139
129
|
edge.get 'Page'
|
140
130
|
end
|
@@ -35,6 +35,51 @@ module FacebookAds
|
|
35
35
|
"year",
|
36
36
|
]
|
37
37
|
|
38
|
+
CHECKIN_ENTRY_POINT = [
|
39
|
+
"BRANDING_CHECKIN",
|
40
|
+
"BRANDING_OTHER",
|
41
|
+
"BRANDING_PHOTO",
|
42
|
+
"BRANDING_STATUS",
|
43
|
+
]
|
44
|
+
|
45
|
+
FORMATTING = [
|
46
|
+
"MARKDOWN",
|
47
|
+
"PLAINTEXT",
|
48
|
+
]
|
49
|
+
|
50
|
+
PLACE_ATTACHMENT_SETTING = [
|
51
|
+
"1",
|
52
|
+
"2",
|
53
|
+
]
|
54
|
+
|
55
|
+
POST_SURFACES_BLACKLIST = [
|
56
|
+
"1",
|
57
|
+
"2",
|
58
|
+
"3",
|
59
|
+
"4",
|
60
|
+
"5",
|
61
|
+
]
|
62
|
+
|
63
|
+
POSTING_TO_REDSPACE = [
|
64
|
+
"disabled",
|
65
|
+
"enabled",
|
66
|
+
]
|
67
|
+
|
68
|
+
TARGET_SURFACE = [
|
69
|
+
"STORY",
|
70
|
+
"TIMELINE",
|
71
|
+
]
|
72
|
+
|
73
|
+
UNPUBLISHED_CONTENT_TYPE = [
|
74
|
+
"ADS_POST",
|
75
|
+
"DRAFT",
|
76
|
+
"INLINE_CREATED",
|
77
|
+
"PUBLISHED",
|
78
|
+
"REVIEWABLE_BRANDED_CONTENT",
|
79
|
+
"SCHEDULED",
|
80
|
+
"SCHEDULED_RECURRING",
|
81
|
+
]
|
82
|
+
|
38
83
|
FEED_STORY_VISIBILITY = [
|
39
84
|
"hidden",
|
40
85
|
"visible",
|
@@ -59,22 +104,17 @@ module FacebookAds
|
|
59
104
|
field :comments_mirroring_domain, 'string'
|
60
105
|
field :coordinates, 'object'
|
61
106
|
field :created_time, 'datetime'
|
62
|
-
field :delivery_growth_optimizations, { list: 'string' }
|
63
107
|
field :description, 'string'
|
64
|
-
field :entities, 'object'
|
65
108
|
field :event, 'Event'
|
66
109
|
field :expanded_height, 'int'
|
67
110
|
field :expanded_width, 'int'
|
68
111
|
field :feed_targeting, 'object'
|
69
|
-
field :formatting, 'string'
|
70
112
|
field :from, 'object'
|
71
113
|
field :full_picture, 'string'
|
72
114
|
field :height, 'int'
|
73
115
|
field :icon, 'string'
|
74
116
|
field :id, 'string'
|
75
|
-
field :implicit_place, 'Place'
|
76
117
|
field :instagram_eligibility, 'string'
|
77
|
-
field :instream_eligibility, 'string'
|
78
118
|
field :is_app_share, 'bool'
|
79
119
|
field :is_eligible_for_promotion, 'bool'
|
80
120
|
field :is_expired, 'bool'
|
@@ -84,8 +124,7 @@ module FacebookAds
|
|
84
124
|
field :is_popular, 'bool'
|
85
125
|
field :is_published, 'bool'
|
86
126
|
field :is_spherical, 'bool'
|
87
|
-
field :link, '
|
88
|
-
field :live_video_eligibility, { list: 'string' }
|
127
|
+
field :link, 'object'
|
89
128
|
field :message, 'string'
|
90
129
|
field :message_tags, { list: 'string' }
|
91
130
|
field :multi_share_end_card, 'bool'
|
@@ -96,12 +135,10 @@ module FacebookAds
|
|
96
135
|
field :permalink_url, 'object'
|
97
136
|
field :picture, 'string'
|
98
137
|
field :place, 'Place'
|
99
|
-
field :poll, 'object'
|
100
138
|
field :privacy, 'Privacy'
|
101
139
|
field :promotable_id, 'string'
|
102
140
|
field :promotion_status, 'string'
|
103
141
|
field :properties, { list: 'string' }
|
104
|
-
field :publishing_stats, 'int'
|
105
142
|
field :scheduled_publish_time, 'double'
|
106
143
|
field :shares, 'object'
|
107
144
|
field :source, 'string'
|
@@ -112,13 +149,11 @@ module FacebookAds
|
|
112
149
|
field :target, 'Profile'
|
113
150
|
field :targeting, 'object'
|
114
151
|
field :timeline_visibility, 'string'
|
115
|
-
field :translations, 'hash'
|
116
152
|
field :type, 'string'
|
117
153
|
field :updated_time, 'datetime'
|
118
154
|
field :via, 'object'
|
119
155
|
field :video_buying_eligibility, { list: 'string' }
|
120
156
|
field :width, 'int'
|
121
|
-
field :will_be_autocropped_when_deliver_to_instagram, 'bool'
|
122
157
|
|
123
158
|
has_edge :attachments do |edge|
|
124
159
|
edge.get
|
@@ -172,24 +207,6 @@ module FacebookAds
|
|
172
207
|
end
|
173
208
|
end
|
174
209
|
|
175
|
-
has_edge :promotions do |edge|
|
176
|
-
edge.post do |api|
|
177
|
-
api.has_param :ad_account_id, 'string'
|
178
|
-
api.has_param :ad_conversion_pixel_id, 'int'
|
179
|
-
api.has_param :audience, { enum: %w{AUTO_LOOKALIKE AUTO_PAGE_LOOKALIKE AUTO_TARGETING COUNTRY_AND_INTEREST CREATE_NEW CUSTOM_AUDIENCE DISTRICT EVENT_CUSTOM_AUDIENCES EVENT_ENGAGEMENT FANS GROUPER HEC_AUDIENCE IG_PROMOTED_POST_AUTO LOCAL LOOKALIKE MARKETPLACE_DEFAULT MARKETPLACE_NATIONWIDE_AUDIENCE MARKETPLACE_SAVED_AUDIENCE MULT_CUSTOM_AUDIENCES NCPP SAVED_AUDIENCE SMART_AUDIENCE }}
|
180
|
-
api.has_param :audience_id, 'string'
|
181
|
-
api.has_param :bid_amount, 'int'
|
182
|
-
api.has_param :budget, 'int'
|
183
|
-
api.has_param :cta_type, { enum: %w{ADD_TO_CART APPLY_NOW BOOK_TRAVEL BUY BUY_NOW BUY_TICKETS CALL CALL_ME CONTACT CONTACT_US DONATE DONATE_NOW DOWNLOAD EVENT_RSVP FIND_A_GROUP FIND_YOUR_GROUPS FOLLOW_NEWS_STORYLINE FOLLOW_PAGE FOLLOW_USER GET_DIRECTIONS GET_OFFER GET_OFFER_VIEW GET_QUOTE GET_SHOWTIMES INSTALL_APP INSTALL_MOBILE_APP LEARN_MORE LIKE_PAGE LISTEN_MUSIC LISTEN_NOW MESSAGE_PAGE MOBILE_DOWNLOAD MOMENTS NO_BUTTON OPEN_LINK ORDER_NOW PAY_TO_ACCESS PLAY_GAME PURCHASE_GIFT_CARDS RECORD_NOW REQUEST_TIME SAY_THANKS SEE_MORE SELL_NOW SEND_A_GIFT SHARE SHOP_NOW SIGN_UP SOTTO_SUBSCRIBE SUBSCRIBE UPDATE_APP USE_APP USE_MOBILE_APP VIDEO_ANNOTATION VISIT_PAGES_FEED WATCH_MORE WATCH_VIDEO WHATSAPP_MESSAGE WOODHENGE_SUPPORT }}
|
184
|
-
api.has_param :currency, 'string'
|
185
|
-
api.has_param :flow_id, 'string'
|
186
|
-
api.has_param :placement, 'string'
|
187
|
-
api.has_param :start_time, 'int'
|
188
|
-
api.has_param :stop_time, 'int'
|
189
|
-
api.has_param :targeting, 'Targeting'
|
190
|
-
end
|
191
|
-
end
|
192
|
-
|
193
210
|
has_edge :reactions do |edge|
|
194
211
|
edge.get 'Profile' do |api|
|
195
212
|
api.has_param :type, { enum: -> { Profile::TYPE }}
|
@@ -35,6 +35,7 @@ module FacebookAds
|
|
35
35
|
"home_listings",
|
36
36
|
"hotels",
|
37
37
|
"jobs",
|
38
|
+
"local_delivery_shipping_profiles",
|
38
39
|
"local_service_businesses",
|
39
40
|
"offer_items",
|
40
41
|
"offline_commerce",
|
@@ -110,7 +111,6 @@ module FacebookAds
|
|
110
111
|
field :catalog_segment_product_set_id, 'string'
|
111
112
|
field :destination_catalog_settings, 'hash'
|
112
113
|
field :flight_catalog_settings, 'hash'
|
113
|
-
field :onsite_commerce_merchant, 'object'
|
114
114
|
field :parent_catalog_id, 'string'
|
115
115
|
|
116
116
|
has_edge :agencies do |edge|
|
@@ -274,12 +274,6 @@ module FacebookAds
|
|
274
274
|
end
|
275
275
|
end
|
276
276
|
|
277
|
-
has_edge :onsite_commerce_merchant do |edge|
|
278
|
-
edge.post 'ProductCatalog' do |api|
|
279
|
-
api.has_param :onsite_commerce_merchant, 'object'
|
280
|
-
end
|
281
|
-
end
|
282
|
-
|
283
277
|
has_edge :pricing_variables_batch do |edge|
|
284
278
|
edge.get 'ProductCatalogPricingVariablesBatch' do |api|
|
285
279
|
api.has_param :handle, 'string'
|
@@ -305,6 +299,7 @@ module FacebookAds
|
|
305
299
|
api.has_param :feed_type, { enum: -> { ProductFeed::FEED_TYPE }}
|
306
300
|
api.has_param :file_name, 'string'
|
307
301
|
api.has_param :item_sub_type, { enum: -> { ProductFeed::ITEM_SUB_TYPE }}
|
302
|
+
api.has_param :migrated_from_feed_id, 'string'
|
308
303
|
api.has_param :name, 'string'
|
309
304
|
api.has_param :override_type, { enum: -> { ProductFeed::OVERRIDE_TYPE }}
|
310
305
|
api.has_param :override_value, 'string'
|
@@ -354,6 +349,7 @@ module FacebookAds
|
|
354
349
|
edge.post 'ProductItem' do |api|
|
355
350
|
api.has_param :additional_image_files, { list: 'file' }
|
356
351
|
api.has_param :additional_image_urls, { list: 'string' }
|
352
|
+
api.has_param :additional_uploaded_image_ids, { list: 'string' }
|
357
353
|
api.has_param :additional_variant_attributes, 'hash'
|
358
354
|
api.has_param :android_app_name, 'string'
|
359
355
|
api.has_param :android_class, 'string'
|
@@ -116,6 +116,7 @@ module FacebookAds
|
|
116
116
|
field :id, 'string'
|
117
117
|
field :item_sub_type, 'string'
|
118
118
|
field :latest_upload, 'ProductFeedUpload'
|
119
|
+
field :migrated_from_feed_id, 'string'
|
119
120
|
field :name, 'string'
|
120
121
|
field :override_type, 'string'
|
121
122
|
field :product_count, 'int'
|
@@ -32,6 +32,14 @@ module FacebookAds
|
|
32
32
|
field :retailer_id, 'string'
|
33
33
|
field :variants, { list: 'ProductVariant' }
|
34
34
|
|
35
|
+
has_edge :ar_data do |edge|
|
36
|
+
edge.post do |api|
|
37
|
+
api.has_param :effect_icon, 'file'
|
38
|
+
api.has_param :state, { enum: %w{DISABLED ENABLED TEST }}
|
39
|
+
api.has_param :surfaces, { list: { enum: %w{SHOPS TEST_CAPABILITY UNIVERSAL_CHECKOUT US_MARKETPLACE }} }
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
35
43
|
has_edge :products do |edge|
|
36
44
|
edge.get 'ProductItem'
|
37
45
|
edge.post 'ProductItem' do |api|
|
@@ -316,12 +316,14 @@ module FacebookAds
|
|
316
316
|
field :id, 'string'
|
317
317
|
field :image_cdn_urls, 'hash'
|
318
318
|
field :image_url, 'string'
|
319
|
+
field :images, { list: 'string' }
|
319
320
|
field :inventory, 'int'
|
320
321
|
field :manufacturer_part_number, 'string'
|
321
322
|
field :material, 'string'
|
322
323
|
field :mobile_link, 'string'
|
323
324
|
field :name, 'string'
|
324
325
|
field :ordering_index, 'int'
|
326
|
+
field :parent_product_id, 'string'
|
325
327
|
field :pattern, 'string'
|
326
328
|
field :price, 'string'
|
327
329
|
field :product_catalog, 'ProductCatalog'
|
@@ -343,6 +345,7 @@ module FacebookAds
|
|
343
345
|
field :url, 'string'
|
344
346
|
field :visibility, { enum: -> { VISIBILITY }}
|
345
347
|
field :additional_image_files, { list: 'file' }
|
348
|
+
field :additional_uploaded_image_ids, { list: 'string' }
|
346
349
|
field :android_app_name, 'string'
|
347
350
|
field :android_class, 'string'
|
348
351
|
field :android_package, 'string'
|
@@ -367,6 +370,18 @@ module FacebookAds
|
|
367
370
|
field :windows_phone_app_name, 'string'
|
368
371
|
field :windows_phone_url, 'string'
|
369
372
|
|
373
|
+
has_edge :ar_data do |edge|
|
374
|
+
edge.post do |api|
|
375
|
+
api.has_param :container_effect, { enum: %w{MAKEUP }}
|
376
|
+
api.has_param :effect_parameters, 'hash'
|
377
|
+
api.has_param :picker_icon, 'file'
|
378
|
+
end
|
379
|
+
end
|
380
|
+
|
381
|
+
has_edge :channels_to_integrity_status do |edge|
|
382
|
+
edge.get 'CatalogItemChannelsToIntegrityStatus'
|
383
|
+
end
|
384
|
+
|
370
385
|
has_edge :product_sets do |edge|
|
371
386
|
edge.get 'ProductSet'
|
372
387
|
end
|
@@ -34,10 +34,12 @@ module FacebookAds
|
|
34
34
|
field :namespace, 'string'
|
35
35
|
field :need_promo_code, 'bool'
|
36
36
|
field :offer_origin, 'string'
|
37
|
+
field :privacy_policy_link, 'string'
|
37
38
|
field :promotion_text, 'string'
|
38
39
|
field :receiver_benefits_text, 'string'
|
39
40
|
field :referral_link_uri, 'string'
|
40
41
|
field :sender_benefits_text, 'string'
|
42
|
+
field :terms_and_condition_link, 'string'
|
41
43
|
|
42
44
|
end
|
43
45
|
end
|
@@ -0,0 +1,48 @@
|
|
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
|
+
ActionSource = Set[
|
22
|
+
|
23
|
+
# Conversion happened over email.
|
24
|
+
'email',
|
25
|
+
|
26
|
+
# Conversion was made on your website.
|
27
|
+
'website',
|
28
|
+
|
29
|
+
# Conversion was made using your app.
|
30
|
+
'app',
|
31
|
+
|
32
|
+
# Conversion was made over the phone.
|
33
|
+
'phone_call',
|
34
|
+
|
35
|
+
# Conversion was made via a messaging app, SMS, or online messaging feature.
|
36
|
+
'chat',
|
37
|
+
|
38
|
+
# Conversion was made in person at your physical store.
|
39
|
+
'physical_store',
|
40
|
+
|
41
|
+
# Conversion happened automatically, for example, a subscription renewal that's set on auto-pay each month.
|
42
|
+
'system_generated',
|
43
|
+
|
44
|
+
# Conversion happened in a way that is not listed.
|
45
|
+
'other'
|
46
|
+
]
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,73 @@
|
|
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::ServerSide
|
20
|
+
class BatchProcessor
|
21
|
+
attr_accessor :batch_size
|
22
|
+
attr_accessor :concurrent_requests
|
23
|
+
|
24
|
+
# Initializes the object
|
25
|
+
# @param [Integer] batch_size The number of events to send in each request
|
26
|
+
# @param [Integer] concurrent_requests The number of threads to use when making requests concurrently
|
27
|
+
def initialize(batch_size=50, concurrent_requests=4)
|
28
|
+
self.batch_size = batch_size
|
29
|
+
self.concurrent_requests = concurrent_requests
|
30
|
+
end
|
31
|
+
|
32
|
+
def process_event_requests(event_requests_async)
|
33
|
+
generator = self.process_event_requests_generator(event_requests_async)
|
34
|
+
generator.each do |batch|
|
35
|
+
Concurrent::Promise.zip(*batch).execute.value!
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def process_events(event_request_async_to_clone, events)
|
40
|
+
generator = self.process_events_generator(event_request_async_to_clone, events)
|
41
|
+
generator.each do |batch|
|
42
|
+
Concurrent::Promise.zip(*batch).execute.value!
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def process_event_requests_generator(event_requests_async)
|
47
|
+
index = 0
|
48
|
+
Enumerator.new do |generator|
|
49
|
+
while index < event_requests_async.size do
|
50
|
+
batch = event_requests_async[index, concurrent_requests].map(&:execute)
|
51
|
+
generator.yield *[batch]
|
52
|
+
index += concurrent_requests
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def process_events_generator(event_request_async_to_clone, events)
|
58
|
+
index = 0
|
59
|
+
Enumerator.new do |generator|
|
60
|
+
while index < events.size do
|
61
|
+
batch = []
|
62
|
+
while index < events.size && batch.size < concurrent_requests do
|
63
|
+
event_request_async = event_request_async_to_clone.clone_without_events
|
64
|
+
event_request_async.events = events[index, batch_size]
|
65
|
+
batch << event_request_async
|
66
|
+
index += batch_size
|
67
|
+
end
|
68
|
+
generator.yield *[batch.map(&:execute)]
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|