facebookbusiness 0.7.0.3 → 0.9.0.0
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_account.rb +24 -16
- data/lib/facebook_ads/ad_objects/ad_account_ad_volume.rb +24 -0
- data/lib/facebook_ads/ad_objects/ad_account_targeting_unified.rb +22 -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 +4 -0
- data/lib/facebook_ads/ad_objects/ad_creative.rb +6 -0
- 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 +4 -0
- data/lib/facebook_ads/ad_objects/ad_network_analytics_sync_query_result.rb +1 -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_rule_execution_spec.rb +4 -0
- data/lib/facebook_ads/ad_objects/ad_study.rb +1 -1
- data/lib/facebook_ads/ad_objects/ad_study_objective.rb +0 -4
- data/lib/facebook_ads/ad_objects/ad_video.rb +11 -0
- data/lib/facebook_ads/ad_objects/adgroup_activity.rb +2 -0
- data/lib/facebook_ads/ad_objects/adoptable_pet.rb +8 -0
- data/lib/facebook_ads/ad_objects/ads_insights.rb +1 -0
- data/lib/facebook_ads/ad_objects/ads_pixel.rb +4 -0
- data/lib/facebook_ads/ad_objects/application.rb +23 -0
- data/lib/facebook_ads/ad_objects/atlas_campaign.rb +1 -1
- data/lib/facebook_ads/ad_objects/automotive_model.rb +1 -0
- data/lib/facebook_ads/ad_objects/business.rb +62 -11
- data/lib/facebook_ads/ad_objects/business_asset_group.rb +1 -0
- data/lib/facebook_ads/ad_objects/business_role_request.rb +4 -0
- data/lib/facebook_ads/ad_objects/business_unit.rb +1 -2
- data/lib/facebook_ads/ad_objects/business_user.rb +4 -0
- data/lib/facebook_ads/ad_objects/campaign.rb +8 -0
- data/lib/facebook_ads/ad_objects/catalog_sub_vertical_list.rb +88 -0
- data/lib/facebook_ads/ad_objects/commerce_merchant_settings.rb +16 -19
- data/lib/facebook_ads/ad_objects/commerce_merchant_settings_setup_status.rb +1 -0
- data/lib/facebook_ads/ad_objects/commerce_order.rb +6 -0
- data/lib/facebook_ads/ad_objects/commerce_order_transaction_detail.rb +4 -0
- data/lib/facebook_ads/ad_objects/{work_meeting_link.rb → connections_targeting.rb} +3 -2
- data/lib/facebook_ads/ad_objects/{iterative_split_test_config.rb → cpas_advertiser_partnership_recommendation.rb} +9 -9
- data/lib/facebook_ads/ad_objects/{split_test_config.rb → cpas_collaboration_request.rb} +16 -7
- data/lib/facebook_ads/ad_objects/custom_audience_data_source.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 +1 -1
- data/lib/facebook_ads/ad_objects/extended_credit.rb +7 -1
- data/lib/facebook_ads/ad_objects/flight.rb +1 -0
- data/lib/facebook_ads/ad_objects/group.rb +8 -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/hotel_room.rb +1 -0
- data/lib/facebook_ads/ad_objects/life_event.rb +0 -4
- data/lib/facebook_ads/ad_objects/link.rb +6 -6
- data/lib/facebook_ads/ad_objects/live_video.rb +12 -16
- data/lib/facebook_ads/ad_objects/native_offer_view.rb +0 -1
- data/lib/facebook_ads/ad_objects/oracle_transaction.rb +0 -7
- data/lib/facebook_ads/ad_objects/page.rb +48 -70
- data/lib/facebook_ads/ad_objects/page_post.rb +2 -0
- data/lib/facebook_ads/ad_objects/photo.rb +6 -0
- data/lib/facebook_ads/ad_objects/playable_content.rb +1 -0
- data/lib/facebook_ads/ad_objects/post.rb +49 -2
- data/lib/facebook_ads/ad_objects/product_catalog.rb +43 -7
- data/lib/facebook_ads/ad_objects/product_feed.rb +31 -0
- data/lib/facebook_ads/ad_objects/product_group.rb +1 -0
- data/lib/facebook_ads/ad_objects/product_item.rb +4 -0
- data/lib/facebook_ads/ad_objects/product_set.rb +1 -0
- data/lib/facebook_ads/ad_objects/product_set_metadata.rb +1 -0
- data/lib/facebook_ads/ad_objects/publisher_block_list.rb +6 -0
- data/lib/facebook_ads/ad_objects/referral.rb +2 -0
- data/lib/facebook_ads/ad_objects/security_settings.rb +0 -1
- 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/custom_data.rb +21 -0
- data/lib/facebook_ads/ad_objects/{page_about_story.rb → server_side/delivery_category.rb} +10 -16
- data/lib/facebook_ads/ad_objects/server_side/event_request.rb +61 -14
- data/lib/facebook_ads/ad_objects/server_side/event_request_async.rb +43 -0
- data/lib/facebook_ads/ad_objects/{atlas_url.rb → server_side/http_method.rb} +7 -16
- 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/user_data.rb +20 -1
- 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 +3 -3
- data/lib/facebook_ads/ad_objects/third_party_measurement_report_dataset.rb +0 -1
- data/lib/facebook_ads/ad_objects/unified_thread.rb +1 -0
- data/lib/facebook_ads/ad_objects/user.rb +28 -30
- data/lib/facebook_ads/ad_objects/vehicle.rb +2 -0
- data/lib/facebook_ads/ad_objects/vehicle_offer.rb +1 -0
- data/lib/facebook_ads/ad_objects/whats_app_business_account.rb +25 -0
- data/lib/facebook_ads/errors.rb +1 -1
- data/lib/facebook_ads/session.rb +1 -1
- data/lib/facebook_ads/version.rb +2 -2
- metadata +30 -12
- data/lib/facebook_ads/ad_objects/user_taggable_friend.rb +0 -50
@@ -16,24 +16,18 @@
|
|
16
16
|
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
17
17
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
18
18
|
|
19
|
-
# FB:AUTOGEN
|
20
|
-
|
21
19
|
module FacebookAds
|
22
|
-
|
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.
|
20
|
+
module ServerSide
|
21
|
+
DeliveryCategory = Set[
|
27
22
|
|
28
|
-
|
23
|
+
# Customer needs to enter the store to get the purchased product.
|
24
|
+
'in_store',
|
29
25
|
|
30
|
-
|
31
|
-
|
32
|
-
field :entity_map, { list: 'object' }
|
33
|
-
field :id, 'string'
|
34
|
-
field :is_published, 'bool'
|
35
|
-
field :page_id, 'string'
|
36
|
-
field :title, 'string'
|
26
|
+
# Customer picks up their order by driving to a store and waiting inside their vehicle.
|
27
|
+
'curbside',
|
37
28
|
|
38
|
-
|
29
|
+
# Purchase is delivered to the customer's home.
|
30
|
+
'home_delivery'
|
31
|
+
]
|
32
|
+
end
|
39
33
|
end
|
@@ -51,6 +51,9 @@ module FacebookAds
|
|
51
51
|
# The origin/source of data for the dataset to be uploaded.
|
52
52
|
attr_accessor :upload_source
|
53
53
|
|
54
|
+
# The HttpServiceInterface client to use for executing the request.
|
55
|
+
attr_accessor :http_service_client
|
56
|
+
|
54
57
|
# @param [String] pixel_id
|
55
58
|
# @param [Array(FacebookAds::ServerSide::Event)] events
|
56
59
|
# @param [String] test_event_code
|
@@ -59,8 +62,10 @@ module FacebookAds
|
|
59
62
|
# @param [String] upload_id
|
60
63
|
# @param [String] upload_tag
|
61
64
|
# @param [String] upload_source
|
65
|
+
# @param [HttpServiceInterface] http_service_client
|
62
66
|
def initialize(pixel_id: nil, events: nil, test_event_code: nil, partner_agent: nil,
|
63
|
-
namespace_id: nil, upload_id: nil, upload_tag: nil, upload_source: nil
|
67
|
+
namespace_id: nil, upload_id: nil, upload_tag: nil, upload_source: nil,
|
68
|
+
http_service_client: nil)
|
64
69
|
unless pixel_id.nil?
|
65
70
|
self.pixel_id = pixel_id
|
66
71
|
end
|
@@ -85,6 +90,9 @@ module FacebookAds
|
|
85
90
|
unless upload_source.nil?
|
86
91
|
self.upload_source = upload_source
|
87
92
|
end
|
93
|
+
unless http_service_client.nil?
|
94
|
+
self.http_service_client = http_service_client
|
95
|
+
end
|
88
96
|
end
|
89
97
|
|
90
98
|
# build the object using the input hash
|
@@ -128,6 +136,10 @@ module FacebookAds
|
|
128
136
|
if attributes.has_key?(:'upload_source')
|
129
137
|
self.upload_source = attributes[:'upload_source']
|
130
138
|
end
|
139
|
+
|
140
|
+
if attributes.has_key?(:'http_service_client')
|
141
|
+
self.http_service_client = attributes[:'http_service_client']
|
142
|
+
end
|
131
143
|
end
|
132
144
|
|
133
145
|
# Execute request
|
@@ -135,19 +147,14 @@ module FacebookAds
|
|
135
147
|
unless valid?
|
136
148
|
raise list_invalid_properties
|
137
149
|
end
|
138
|
-
|
150
|
+
|
151
|
+
if http_service_client
|
152
|
+
return execute_with_client(http_service_client)
|
153
|
+
end
|
154
|
+
params = get_params()
|
155
|
+
params[:data] = normalize
|
139
156
|
ads_pixel = FacebookAds::AdsPixel.get(pixel_id)
|
140
|
-
response = ads_pixel.events.create(
|
141
|
-
{
|
142
|
-
data: normalized_events,
|
143
|
-
test_event_code: test_event_code,
|
144
|
-
partner_agent: partner_agent,
|
145
|
-
namespace_id: namespace_id,
|
146
|
-
upload_id: upload_id,
|
147
|
-
upload_tag: upload_tag,
|
148
|
-
upload_source: upload_source,
|
149
|
-
}
|
150
|
-
)
|
157
|
+
response = ads_pixel.events.create(params)
|
151
158
|
json_response_object = JSON.parse(JSON.generate(response), object_class: OpenStruct)
|
152
159
|
FacebookAds::ServerSide::EventResponse.new(
|
153
160
|
events_received: json_response_object.events_received,
|
@@ -164,6 +171,44 @@ module FacebookAds
|
|
164
171
|
normalized_events
|
165
172
|
end
|
166
173
|
|
174
|
+
def get_params
|
175
|
+
params = {}
|
176
|
+
params[:test_event_code] = test_event_code unless test_event_code.nil?
|
177
|
+
params[:partner_agent] = partner_agent unless partner_agent.nil?
|
178
|
+
params[:namespace_id] = namespace_id unless namespace_id.nil?
|
179
|
+
params[:upload_id] = upload_id unless upload_id.nil?
|
180
|
+
params[:upload_tag] = upload_tag unless upload_tag.nil?
|
181
|
+
params[:upload_source] = upload_source unless upload_source.nil?
|
182
|
+
params
|
183
|
+
end
|
184
|
+
|
185
|
+
def execute_with_client http_client
|
186
|
+
url = [
|
187
|
+
"https://#{FacebookAds::DEFAULT_HOST}",
|
188
|
+
FacebookAds::DEFAULT_API_VERSION,
|
189
|
+
pixel_id,
|
190
|
+
'events',
|
191
|
+
].join('/')
|
192
|
+
headers = {
|
193
|
+
'User-Agent' => "fbbizsdk-ruby-v#{FacebookAds::VERSION}"
|
194
|
+
}
|
195
|
+
params = get_params
|
196
|
+
params[:data] = events.map(&:normalize)
|
197
|
+
appsecret = FacebookAds.config.app_secret
|
198
|
+
access_token = FacebookAds.config.access_token
|
199
|
+
params[:access_token] = access_token
|
200
|
+
if appsecret
|
201
|
+
params[:appsecret_proof] = FacebookAds::ServerSide::HttpUtil.appsecret_proof(appsecret, access_token)
|
202
|
+
end
|
203
|
+
|
204
|
+
http_client.execute(
|
205
|
+
url,
|
206
|
+
FacebookAds::ServerSide::HttpMethod::POST,
|
207
|
+
headers,
|
208
|
+
params
|
209
|
+
)
|
210
|
+
end
|
211
|
+
|
167
212
|
# Show invalid properties with the reasons. Usually used together with valid?
|
168
213
|
# @return Array for valid properties with the reasons
|
169
214
|
def list_invalid_properties
|
@@ -193,7 +238,8 @@ module FacebookAds
|
|
193
238
|
namespace_id == o.namespace_id &&
|
194
239
|
upload_id == o.upload_id &&
|
195
240
|
upload_tag == o.upload_tag &&
|
196
|
-
upload_source == o.upload_source
|
241
|
+
upload_source == o.upload_source &&
|
242
|
+
http_service_client == o.http_service_client
|
197
243
|
end
|
198
244
|
|
199
245
|
# @see the `==` method
|
@@ -213,6 +259,7 @@ module FacebookAds
|
|
213
259
|
upload_id,
|
214
260
|
upload_tag,
|
215
261
|
upload_source,
|
262
|
+
http_service_client,
|
216
263
|
].hash
|
217
264
|
end
|
218
265
|
|
@@ -0,0 +1,43 @@
|
|
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
|
+
require 'concurrent'
|
20
|
+
|
21
|
+
module FacebookAds
|
22
|
+
module ServerSide
|
23
|
+
class EventRequestAsync < EventRequest
|
24
|
+
def execute
|
25
|
+
Concurrent::Promise.execute do
|
26
|
+
super
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def clone_without_events
|
31
|
+
FacebookAds::ServerSide::EventRequestAsync.new(
|
32
|
+
pixel_id: pixel_id,
|
33
|
+
test_event_code: test_event_code,
|
34
|
+
partner_agent: partner_agent,
|
35
|
+
namespace_id: namespace_id,
|
36
|
+
upload_id: upload_id,
|
37
|
+
upload_tag: upload_tag,
|
38
|
+
upload_source: upload_source,
|
39
|
+
)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -16,22 +16,13 @@
|
|
16
16
|
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
17
17
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
18
18
|
|
19
|
-
# FB:AUTOGEN
|
20
|
-
|
21
19
|
module FacebookAds
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
field :url, 'string'
|
31
|
-
has_no_id
|
32
|
-
has_no_get
|
33
|
-
has_no_post
|
34
|
-
has_no_delete
|
35
|
-
|
20
|
+
module ServerSide
|
21
|
+
class HttpMethod
|
22
|
+
POST = 'POST'
|
23
|
+
PUT = 'PUT'
|
24
|
+
GET = 'GET'
|
25
|
+
DELETE = 'DELETE'
|
26
|
+
end
|
36
27
|
end
|
37
28
|
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
|
+
|
20
|
+
module FacebookAds
|
21
|
+
module ServerSide
|
22
|
+
class HttpServiceInterface
|
23
|
+
|
24
|
+
# String url | The graph API endpoint that will be requested
|
25
|
+
# String request_method | The HTTP request method
|
26
|
+
# Hash headers | Contains HTTP request headers including User-Agent and Accept-Encoding
|
27
|
+
# Hash params | Contains request parameters including access_token, data, test_event_code, etc.
|
28
|
+
def execute(url, request_method, headers, params)
|
29
|
+
raise Exception.new("Method 'execute' not implemented")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,31 @@
|
|
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
|
+
class HttpUtil
|
22
|
+
def self.appsecret_proof(app_secret, access_token)
|
23
|
+
OpenSSL::HMAC.hexdigest(
|
24
|
+
OpenSSL::Digest.new('sha256'),
|
25
|
+
app_secret,
|
26
|
+
access_token
|
27
|
+
)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -91,6 +91,9 @@ module FacebookAds
|
|
91
91
|
# The subscription ID for the user in this transaction. This is similar to the order ID for an individual product.
|
92
92
|
attr_accessor :subscription_id
|
93
93
|
|
94
|
+
# The lead ID for the user in this transaction. This ID is associated with a lead generated by Facebook's Lead Ads.
|
95
|
+
attr_accessor :lead_id
|
96
|
+
|
94
97
|
# The first 5 letters of the first name.
|
95
98
|
attr_accessor :f5first
|
96
99
|
|
@@ -126,6 +129,7 @@ module FacebookAds
|
|
126
129
|
# @param [String] fbc
|
127
130
|
# @param [String] fbp
|
128
131
|
# @param [String] subscription_id
|
132
|
+
# @param [String] lead_id
|
129
133
|
# @param [String] f5first
|
130
134
|
# @param [String] f5last
|
131
135
|
# @param [String] fi
|
@@ -135,7 +139,7 @@ module FacebookAds
|
|
135
139
|
def initialize(email: nil, phone: nil, gender: nil, date_of_birth: nil,
|
136
140
|
last_name: nil, first_name: nil, city: nil, state: nil,
|
137
141
|
country_code: nil, zip_code: nil, external_id: nil, client_ip_address: nil,
|
138
|
-
client_user_agent: nil, fbc: nil, fbp: nil, subscription_id: nil,
|
142
|
+
client_user_agent: nil, fbc: nil, fbp: nil, subscription_id: nil, lead_id: nil,
|
139
143
|
f5first: nil, f5last: nil, fi: nil, dobd: nil, dobm: nil, doby: nil)
|
140
144
|
unless email.nil?
|
141
145
|
self.email = email
|
@@ -185,6 +189,9 @@ module FacebookAds
|
|
185
189
|
unless subscription_id.nil?
|
186
190
|
self.subscription_id = subscription_id
|
187
191
|
end
|
192
|
+
unless lead_id.nil?
|
193
|
+
self.lead_id = lead_id
|
194
|
+
end
|
188
195
|
unless f5first.nil?
|
189
196
|
self.f5first = f5first
|
190
197
|
end
|
@@ -273,6 +280,10 @@ module FacebookAds
|
|
273
280
|
self.fbp = attributes[:'fbp']
|
274
281
|
end
|
275
282
|
|
283
|
+
if attributes.has_key?(:'lead_id')
|
284
|
+
self.lead_id = attributes[:'lead_id']
|
285
|
+
end
|
286
|
+
|
276
287
|
if attributes.has_key?(:'f5first')
|
277
288
|
self.f5first = attributes[:'f5first']
|
278
289
|
end
|
@@ -318,6 +329,7 @@ module FacebookAds
|
|
318
329
|
fbc == o.fbc &&
|
319
330
|
fbp == o.fbp &&
|
320
331
|
subscription_id == o.subscription_id &&
|
332
|
+
lead_id == o.lead_id &&
|
321
333
|
f5first == o.f5first &&
|
322
334
|
f5last == o.f5last &&
|
323
335
|
fi == o.fi &&
|
@@ -351,6 +363,7 @@ module FacebookAds
|
|
351
363
|
fbc,
|
352
364
|
fbp,
|
353
365
|
subscription_id,
|
366
|
+
lead_id,
|
354
367
|
f5first,
|
355
368
|
f5last,
|
356
369
|
fi,
|
@@ -413,6 +426,9 @@ module FacebookAds
|
|
413
426
|
unless subscription_id.nil?
|
414
427
|
hash['subscription_id'] = subscription_id
|
415
428
|
end
|
429
|
+
unless lead_id.nil?
|
430
|
+
hash['lead_id'] = lead_id
|
431
|
+
end
|
416
432
|
unless f5first.nil?
|
417
433
|
hash['f5first'] = f5first
|
418
434
|
end
|
@@ -486,6 +502,9 @@ module FacebookAds
|
|
486
502
|
unless subscription_id.nil?
|
487
503
|
hash['subscription_id'] = subscription_id
|
488
504
|
end
|
505
|
+
unless lead_id.nil?
|
506
|
+
hash['lead_id'] = lead_id
|
507
|
+
end
|
489
508
|
unless f5first.nil?
|
490
509
|
hash['f5first'] = FacebookAds::ServerSide::Util.normalize(f5first, 'f5first')
|
491
510
|
end
|
@@ -58,6 +58,8 @@ module FacebookAds
|
|
58
58
|
normalized_input = normalize_city input
|
59
59
|
when 'currency'
|
60
60
|
return normalize_currency input
|
61
|
+
when 'delivery_category'
|
62
|
+
return normalize_delivery_category input
|
61
63
|
when 'em'
|
62
64
|
normalized_input = normalize_email input
|
63
65
|
when 'ge'
|
@@ -277,6 +279,17 @@ module FacebookAds
|
|
277
279
|
end
|
278
280
|
doby
|
279
281
|
end
|
282
|
+
|
283
|
+
# Normalizes the input delivery category and returns valid value (or throw exception if invalid).
|
284
|
+
def self.normalize_delivery_category(delivery_category)
|
285
|
+
|
286
|
+
unless FacebookAds::ServerSide::DeliveryCategory.include?(delivery_category)
|
287
|
+
raise ArgumentError.new("Invalid delivery_category passed: " + delivery_category + ". Please use one of the defined values #{FacebookAds::ServerSide::DeliveryCategory.to_a.join(',')}" )
|
288
|
+
end
|
289
|
+
|
290
|
+
delivery_category;
|
291
|
+
end
|
292
|
+
|
280
293
|
end
|
281
294
|
end
|
282
295
|
end
|
@@ -26,20 +26,6 @@ module FacebookAds
|
|
26
26
|
# pull request for this class.
|
27
27
|
|
28
28
|
class SystemUser < AdObject
|
29
|
-
ROLE = [
|
30
|
-
"ADMIN",
|
31
|
-
"ADS_RIGHTS_REVIEWER",
|
32
|
-
"DEVELOPER",
|
33
|
-
"EMPLOYEE",
|
34
|
-
"FINANCE_ANALYST",
|
35
|
-
"FINANCE_EDITOR",
|
36
|
-
"PARTNER_CENTER_ADMIN",
|
37
|
-
"PARTNER_CENTER_ANALYST",
|
38
|
-
"PARTNER_CENTER_EDUCATION",
|
39
|
-
"PARTNER_CENTER_MARKETING",
|
40
|
-
"PARTNER_CENTER_OPERATIONS",
|
41
|
-
]
|
42
|
-
|
43
29
|
|
44
30
|
field :created_by, 'User'
|
45
31
|
field :created_time, 'datetime'
|
@@ -47,8 +33,6 @@ module FacebookAds
|
|
47
33
|
field :id, 'string'
|
48
34
|
field :ip_permission, 'string'
|
49
35
|
field :name, 'string'
|
50
|
-
field :role, { enum: -> { ROLE }}
|
51
|
-
field :system_user_id, 'int'
|
52
36
|
has_no_post
|
53
37
|
has_no_delete
|
54
38
|
|
@@ -70,9 +54,5 @@ module FacebookAds
|
|
70
54
|
edge.get 'ProductCatalog'
|
71
55
|
end
|
72
56
|
|
73
|
-
has_edge :updated_by do |edge|
|
74
|
-
edge.get 'User'
|
75
|
-
end
|
76
|
-
|
77
57
|
end
|
78
58
|
end
|