facebookbusiness 0.10.0.0 → 0.10.0.1
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_account.rb +2 -15
- data/lib/facebook_ads/ad_objects/ad_account_targeting_unified.rb +2 -0
- data/lib/facebook_ads/ad_objects/ad_creative.rb +7 -7
- data/lib/facebook_ads/ad_objects/ad_creative_portrait_customizations.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_preview.rb +1 -0
- data/lib/facebook_ads/ad_objects/ad_rule_execution_spec.rb +1 -2
- data/lib/facebook_ads/ad_objects/ad_study.rb +8 -0
- data/lib/facebook_ads/ad_objects/ad_study_objective.rb +2 -0
- data/lib/facebook_ads/ad_objects/ad_video.rb +15 -5
- data/lib/facebook_ads/ad_objects/adgroup_activity.rb +0 -2
- data/lib/facebook_ads/ad_objects/adoptable_pet.rb +18 -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/application.rb +21 -0
- data/lib/facebook_ads/ad_objects/atlas_campaign.rb +0 -8
- data/lib/facebook_ads/ad_objects/automotive_model.rb +18 -0
- data/lib/facebook_ads/ad_objects/business.rb +16 -3
- data/lib/facebook_ads/ad_objects/business_asset_group.rb +1 -0
- data/lib/facebook_ads/ad_objects/catalog_sub_vertical_list.rb +0 -1
- data/lib/facebook_ads/ad_objects/comment.rb +2 -1
- data/lib/facebook_ads/ad_objects/commerce_merchant_settings.rb +1 -0
- data/lib/facebook_ads/ad_objects/content_delivery_report.rb +4 -0
- data/lib/facebook_ads/ad_objects/cpas_parent_catalog_settings.rb +1 -0
- data/lib/facebook_ads/ad_objects/custom_audience.rb +0 -2
- data/lib/facebook_ads/ad_objects/custom_audience_data_source.rb +1 -0
- data/lib/facebook_ads/ad_objects/delivery_window.rb +287 -0
- data/lib/facebook_ads/ad_objects/destination.rb +18 -0
- data/lib/facebook_ads/ad_objects/flight.rb +18 -0
- data/lib/facebook_ads/ad_objects/group.rb +17 -0
- data/lib/facebook_ads/ad_objects/home_listing.rb +18 -0
- data/lib/facebook_ads/ad_objects/hotel.rb +18 -0
- data/lib/facebook_ads/ad_objects/ig_media.rb +2 -0
- data/lib/facebook_ads/ad_objects/{invoice_campaign.rb → invoice_campaign_new.rb} +1 -1
- data/lib/facebook_ads/ad_objects/live_video.rb +8 -1
- data/lib/facebook_ads/ad_objects/omega_customer_trx.rb +64 -0
- data/lib/facebook_ads/ad_objects/oracle_transaction.rb +1 -6
- data/lib/facebook_ads/ad_objects/page.rb +18 -6
- data/lib/facebook_ads/ad_objects/private_lift_study_instance.rb +46 -0
- data/lib/facebook_ads/ad_objects/product_catalog.rb +15 -0
- data/lib/facebook_ads/ad_objects/product_feed.rb +16 -0
- data/lib/facebook_ads/ad_objects/product_item.rb +10 -0
- data/lib/facebook_ads/ad_objects/product_item_ar_data.rb +1 -0
- data/lib/facebook_ads/ad_objects/product_set.rb +7 -0
- data/lib/facebook_ads/ad_objects/saved_audience.rb +1 -0
- data/lib/facebook_ads/ad_objects/server_side/user_data.rb +290 -96
- data/lib/facebook_ads/ad_objects/server_side/util.rb +15 -0
- data/lib/facebook_ads/ad_objects/vehicle.rb +18 -0
- data/lib/facebook_ads/ad_objects/vehicle_offer.rb +18 -0
- data/lib/facebook_ads/ad_objects/whats_app_business_account.rb +1 -0
- data/lib/facebook_ads/ad_objects/whats_app_business_profile.rb +1 -0
- data/lib/facebook_ads/version.rb +1 -1
- metadata +6 -3
@@ -139,6 +139,10 @@ module FacebookAds
|
|
139
139
|
end
|
140
140
|
end
|
141
141
|
|
142
|
+
has_edge :auto_markets do |edge|
|
143
|
+
edge.get
|
144
|
+
end
|
145
|
+
|
142
146
|
has_edge :automotive_models do |edge|
|
143
147
|
edge.get 'AutomotiveModel' do |api|
|
144
148
|
api.has_param :bulk_pagination, 'bool'
|
@@ -159,6 +163,10 @@ module FacebookAds
|
|
159
163
|
end
|
160
164
|
end
|
161
165
|
|
166
|
+
has_edge :autos do |edge|
|
167
|
+
edge.get
|
168
|
+
end
|
169
|
+
|
162
170
|
has_edge :batch do |edge|
|
163
171
|
edge.post 'ProductCatalog' do |api|
|
164
172
|
api.has_param :allow_upsert, 'bool'
|
@@ -287,6 +295,13 @@ module FacebookAds
|
|
287
295
|
end
|
288
296
|
end
|
289
297
|
|
298
|
+
has_edge :media_titles do |edge|
|
299
|
+
edge.get do |api|
|
300
|
+
api.has_param :bulk_pagination, 'bool'
|
301
|
+
api.has_param :filter, 'object'
|
302
|
+
end
|
303
|
+
end
|
304
|
+
|
290
305
|
has_edge :pricing_variables_batch do |edge|
|
291
306
|
edge.get 'ProductCatalogPricingVariablesBatch' do |api|
|
292
307
|
api.has_param :handle, 'string'
|
@@ -53,6 +53,7 @@ module FacebookAds
|
|
53
53
|
|
54
54
|
FEED_TYPE = [
|
55
55
|
"AUTO",
|
56
|
+
"AUTOMOTIVE_MODEL",
|
56
57
|
"DESTINATION",
|
57
58
|
"FLIGHT",
|
58
59
|
"HOME_LISTING",
|
@@ -128,6 +129,10 @@ module FacebookAds
|
|
128
129
|
field :rules, { list: 'string' }
|
129
130
|
field :selected_override_fields, { list: 'string' }
|
130
131
|
|
132
|
+
has_edge :auto_markets do |edge|
|
133
|
+
edge.get
|
134
|
+
end
|
135
|
+
|
131
136
|
has_edge :automotive_models do |edge|
|
132
137
|
edge.get 'AutomotiveModel' do |api|
|
133
138
|
api.has_param :bulk_pagination, 'bool'
|
@@ -135,6 +140,10 @@ module FacebookAds
|
|
135
140
|
end
|
136
141
|
end
|
137
142
|
|
143
|
+
has_edge :autos do |edge|
|
144
|
+
edge.get
|
145
|
+
end
|
146
|
+
|
138
147
|
has_edge :destinations do |edge|
|
139
148
|
edge.get 'Destination' do |api|
|
140
149
|
api.has_param :bulk_pagination, 'bool'
|
@@ -163,6 +172,13 @@ module FacebookAds
|
|
163
172
|
end
|
164
173
|
end
|
165
174
|
|
175
|
+
has_edge :media_titles do |edge|
|
176
|
+
edge.get do |api|
|
177
|
+
api.has_param :bulk_pagination, 'bool'
|
178
|
+
api.has_param :filter, 'object'
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
166
182
|
has_edge :products do |edge|
|
167
183
|
edge.get 'ProductItem' do |api|
|
168
184
|
api.has_param :bulk_pagination, 'bool'
|
@@ -62,6 +62,15 @@ module FacebookAds
|
|
62
62
|
"unisex",
|
63
63
|
]
|
64
64
|
|
65
|
+
IMAGE_FETCH_STATUS = [
|
66
|
+
"DIRECT_UPLOAD",
|
67
|
+
"FETCHED",
|
68
|
+
"FETCH_FAILED",
|
69
|
+
"NO_STATUS",
|
70
|
+
"OUTDATED",
|
71
|
+
"PARTIAL_FETCH",
|
72
|
+
]
|
73
|
+
|
65
74
|
REVIEW_STATUS = [
|
66
75
|
"",
|
67
76
|
"approved",
|
@@ -317,6 +326,7 @@ module FacebookAds
|
|
317
326
|
field :gtin, 'string'
|
318
327
|
field :id, 'string'
|
319
328
|
field :image_cdn_urls, 'hash'
|
329
|
+
field :image_fetch_status, { enum: -> { IMAGE_FETCH_STATUS }}
|
320
330
|
field :image_url, 'string'
|
321
331
|
field :images, { list: 'string' }
|
322
332
|
field :inventory, 'int'
|
@@ -73,6 +73,13 @@ module FacebookAds
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
+
has_edge :media_titles do |edge|
|
77
|
+
edge.get do |api|
|
78
|
+
api.has_param :bulk_pagination, 'bool'
|
79
|
+
api.has_param :filter, 'object'
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
76
83
|
has_edge :products do |edge|
|
77
84
|
edge.get 'ProductItem' do |api|
|
78
85
|
api.has_param :bulk_pagination, 'bool'
|
@@ -22,53 +22,157 @@ module FacebookAds
|
|
22
22
|
# UserData is a set of identifiers Facebook can use for targeted attribution
|
23
23
|
class UserData
|
24
24
|
|
25
|
+
# A list of email addresses, in lowercase.
|
26
|
+
# Example: ['joe@eg.com']
|
27
|
+
attr_accessor :emails
|
28
|
+
|
25
29
|
# An email address, in lowercase.
|
26
30
|
# Example: joe@eg.com
|
27
|
-
|
31
|
+
def email
|
32
|
+
@emails ? @emails[0] : nil
|
33
|
+
end
|
34
|
+
def email=(email)
|
35
|
+
@emails = [email]
|
36
|
+
end
|
37
|
+
|
38
|
+
# A list of phone numbers. Include only digits with country code, area code, and number.
|
39
|
+
# Example: ['16505551212']
|
40
|
+
attr_accessor :phones
|
28
41
|
|
29
42
|
# A phone number. Include only digits with country code, area code, and number.
|
30
43
|
# Example: 16505551212
|
31
|
-
|
44
|
+
def phone
|
45
|
+
@phones ? @phones[0] : nil
|
46
|
+
end
|
47
|
+
def phone=(phone)
|
48
|
+
@phones = [phone]
|
49
|
+
end
|
50
|
+
|
51
|
+
# A list of genders, in lowercase.
|
52
|
+
# Example: ['f']
|
53
|
+
attr_accessor :genders
|
32
54
|
|
33
55
|
# Gender, in lowercase. Either f or m.
|
34
|
-
|
56
|
+
def gender
|
57
|
+
@genders ? @genders[0] : nil
|
58
|
+
end
|
59
|
+
def gender=(gender)
|
60
|
+
@genders = [gender]
|
61
|
+
end
|
62
|
+
|
63
|
+
# A list of dates of birth given as year, month, and day.
|
64
|
+
# Format should be 'YYYYMMDD'
|
65
|
+
# Example: ['19971226'] for December 26, 1997.
|
66
|
+
attr_accessor :dates_of_birth
|
35
67
|
|
36
68
|
# A date of birth given as year, month, and day.
|
37
69
|
# Format should be 'YYYYMMDD'
|
38
70
|
# Example: 19971226 for December 26, 1997.
|
39
|
-
|
71
|
+
def date_of_birth
|
72
|
+
@dates_of_birth ? @dates_of_birth[0] : nil
|
73
|
+
end
|
74
|
+
def date_of_birth=(date_of_birth)
|
75
|
+
@dates_of_birth = [date_of_birth]
|
76
|
+
end
|
77
|
+
|
78
|
+
# A list of last names in lowercase.
|
79
|
+
# Example: ['smith']
|
80
|
+
attr_accessor :last_names
|
40
81
|
|
41
82
|
# A last name in lowercase.
|
42
83
|
# Example: smith
|
43
|
-
|
84
|
+
def last_name
|
85
|
+
@last_names ? @last_names[0] : nil
|
86
|
+
end
|
87
|
+
def last_name=(last_name)
|
88
|
+
@last_names = [last_name]
|
89
|
+
end
|
90
|
+
|
91
|
+
# A list of first names in lowercase.
|
92
|
+
# Example: ['joe']
|
93
|
+
attr_accessor :first_names
|
44
94
|
|
45
95
|
# A first name in lowercase.
|
46
96
|
# Example: joe
|
47
|
-
|
97
|
+
def first_name
|
98
|
+
@first_names ? @first_names[0] : nil
|
99
|
+
end
|
100
|
+
def first_name=(first_name)
|
101
|
+
@first_names = [first_name]
|
102
|
+
end
|
103
|
+
|
104
|
+
# A list of cities in lower-case without spaces or punctuation.
|
105
|
+
# Example: ['menlopark']
|
106
|
+
attr_accessor :cities
|
48
107
|
|
49
108
|
# A city in lower-case without spaces or punctuation.
|
50
109
|
# Example: menlopark
|
51
|
-
|
110
|
+
def city
|
111
|
+
@cities ? @cities[0] : nil
|
112
|
+
end
|
113
|
+
def city=(city)
|
114
|
+
@cities = [city]
|
115
|
+
end
|
116
|
+
|
117
|
+
# A list of two-letter country codes in lowercase.
|
118
|
+
# Example: ['us']
|
119
|
+
attr_accessor :country_codes
|
52
120
|
|
53
121
|
# A two-letter country code in lowercase.
|
54
122
|
# Example: us
|
55
|
-
|
123
|
+
def country_code
|
124
|
+
@country_codes ? @country_codes[0] : nil
|
125
|
+
end
|
126
|
+
def country_code=(country_code)
|
127
|
+
@country_codes = [country_code]
|
128
|
+
end
|
129
|
+
|
130
|
+
# A list of two-letter state codes in lowercase.
|
131
|
+
# Example: ['ca']
|
132
|
+
attr_accessor :states
|
56
133
|
|
57
134
|
# A two-letter state code in lowercase.
|
58
135
|
# Example: ca
|
59
|
-
|
136
|
+
def state
|
137
|
+
@states ? @states[0] : nil
|
138
|
+
end
|
139
|
+
def state=(state)
|
140
|
+
@states = [state]
|
141
|
+
end
|
142
|
+
|
143
|
+
# A list of five-digit zip codes for United States.
|
144
|
+
# For other locations, follow each country's standards.
|
145
|
+
# Example: ['94035'] (for United States)
|
146
|
+
attr_accessor :zip_codes
|
60
147
|
|
61
148
|
# A five-digit zip code for United States.
|
62
149
|
# For other locations, follow each country's standards.
|
63
150
|
# Example: 94035 (for United States)
|
64
|
-
|
151
|
+
def zip_code
|
152
|
+
@zip_codes ? @zip_codes[0] : nil
|
153
|
+
end
|
154
|
+
def zip_code=(zip_code)
|
155
|
+
@zip_codes = [zip_code]
|
156
|
+
end
|
157
|
+
|
158
|
+
# A list of unique IDs from the advertiser, such as loyalty membership IDs, user IDs, and external cookie IDs.
|
159
|
+
# In the Offline Conversions API (https://www.facebook.com/business/help/104039186799009),
|
160
|
+
# this is known as extern_id. For more information, see Offline Conversions, Providing External IDs.
|
161
|
+
# If External ID is being sent via other channels, then it should be sent in the same format
|
162
|
+
# via the Conversions API.
|
163
|
+
attr_accessor :external_ids
|
65
164
|
|
66
165
|
# Any unique ID from the advertiser, such as loyalty membership IDs, user IDs, and external cookie IDs.
|
67
166
|
# In the Offline Conversions API (https://www.facebook.com/business/help/104039186799009),
|
68
167
|
# this is known as extern_id. For more information, see Offline Conversions, Providing External IDs.
|
69
168
|
# If External ID is being sent via other channels, then it should be sent in the same format
|
70
|
-
# via the
|
71
|
-
|
169
|
+
# via the Conversions API.
|
170
|
+
def external_id
|
171
|
+
@external_ids ? @external_ids[0] : nil
|
172
|
+
end
|
173
|
+
def external_id=(external_id)
|
174
|
+
@external_ids = [external_id]
|
175
|
+
end
|
72
176
|
|
73
177
|
# The IP address of the browser corresponding to the event.
|
74
178
|
attr_accessor :client_ip_address
|
@@ -78,13 +182,13 @@ module FacebookAds
|
|
78
182
|
|
79
183
|
# The Facebook click ID value stored in the _fbc browser cookie under your domain.
|
80
184
|
# See Managing fbc and fbp Parameters for how to get this value
|
81
|
-
# (https://developers.facebook.com/docs/marketing-api/facebook-pixel/
|
185
|
+
# (https://developers.facebook.com/docs/marketing-api/facebook-pixel/conversions-api/parameters#fbc),
|
82
186
|
# or generate this value from a fbclid query parameter.
|
83
187
|
attr_accessor :fbc
|
84
188
|
|
85
189
|
# The Facebook browser ID value stored in the _fbp browser cookie under your domain.
|
86
190
|
# See Managing fbc and fbp Parameters for how to get this value
|
87
|
-
# (https://developers.facebook.com/docs/marketing-api/facebook-pixel/
|
191
|
+
# (https://developers.facebook.com/docs/marketing-api/facebook-pixel/conversions-api/parameters#fbc),
|
88
192
|
# or generate this value from a fbclid query parameter.
|
89
193
|
attr_accessor :fbp
|
90
194
|
|
@@ -109,21 +213,32 @@ module FacebookAds
|
|
109
213
|
# The date of birth month.
|
110
214
|
attr_accessor :dobm
|
111
215
|
|
112
|
-
#
|
216
|
+
# The date of birth year.
|
113
217
|
attr_accessor :doby
|
114
218
|
|
115
219
|
#UserData is a set of identifiers Facebook can use for targeted attribution
|
116
220
|
# @param [String] email
|
221
|
+
# @param [Array<String>] emails
|
117
222
|
# @param [String] phone
|
223
|
+
# @param [Array<String>] phones
|
118
224
|
# @param [String] gender
|
225
|
+
# @param [Array<String>] genders
|
119
226
|
# @param [String] date_of_birth
|
227
|
+
# @param [Array<String>] dates_of_births
|
120
228
|
# @param [String] last_name
|
229
|
+
# @param [Array<String>] last_names
|
121
230
|
# @param [String] first_name
|
231
|
+
# @param [Array<String>] first_names
|
122
232
|
# @param [String] city
|
233
|
+
# @param [Array<String>] cities
|
123
234
|
# @param [String] state
|
235
|
+
# @param [Array<String>] states
|
124
236
|
# @param [String] country_code
|
237
|
+
# @param [Array<String>] country_codes
|
125
238
|
# @param [String] zip_code
|
239
|
+
# @param [Array<String>] zip_codes
|
126
240
|
# @param [String] external_id
|
241
|
+
# @param [Array<String>] external_ids
|
127
242
|
# @param [String] client_ip_address
|
128
243
|
# @param [String] client_user_agent
|
129
244
|
# @param [String] fbc
|
@@ -136,44 +251,91 @@ module FacebookAds
|
|
136
251
|
# @param [String] dobd
|
137
252
|
# @param [String] dobm
|
138
253
|
# @param [String] doby
|
139
|
-
def initialize(email: nil, phone: nil, gender: nil,
|
140
|
-
|
141
|
-
|
254
|
+
def initialize(email: nil, emails: nil, phone: nil, phones: nil, gender: nil, genders: nil,
|
255
|
+
date_of_birth: nil, dates_of_birth: nil, last_name: nil, last_names: nil,
|
256
|
+
first_name: nil, first_names: nil, city: nil, cities: nil, state: nil, states: nil,
|
257
|
+
country_code: nil, country_codes: nil, zip_code: nil, zip_codes: nil,
|
258
|
+
external_id: nil, external_ids: nil, client_ip_address: nil,
|
142
259
|
client_user_agent: nil, fbc: nil, fbp: nil, subscription_id: nil, lead_id: nil,
|
143
260
|
f5first: nil, f5last: nil, fi: nil, dobd: nil, dobm: nil, doby: nil)
|
261
|
+
validate_constructor_values(emails, email, 'emails', 'email')
|
262
|
+
validate_constructor_values(phones, phone, 'phones', 'phone')
|
263
|
+
validate_constructor_values(genders, gender, 'genders', 'gender')
|
264
|
+
validate_constructor_values(dates_of_birth, date_of_birth, 'dates_of_birth', 'date_of_birth')
|
265
|
+
validate_constructor_values(first_names, first_name, 'first_names', 'first_name')
|
266
|
+
validate_constructor_values(last_names, last_name, 'last_names', 'last_name')
|
267
|
+
validate_constructor_values(cities, city, 'cities', 'city')
|
268
|
+
validate_constructor_values(country_codes, country_code, 'country_codes', 'country_code')
|
269
|
+
validate_constructor_values(states, state, 'states', 'state')
|
270
|
+
validate_constructor_values(zip_codes, zip_code, 'zip_codes', 'zip_code')
|
271
|
+
validate_constructor_values(external_ids, external_id, 'external_ids', 'external_id')
|
272
|
+
|
144
273
|
unless email.nil?
|
145
274
|
self.email = email
|
146
275
|
end
|
276
|
+
unless emails.nil?
|
277
|
+
self.emails = emails
|
278
|
+
end
|
147
279
|
unless phone.nil?
|
148
280
|
self.phone = phone
|
149
281
|
end
|
282
|
+
unless phones.nil?
|
283
|
+
self.phones = phones
|
284
|
+
end
|
150
285
|
unless gender.nil?
|
151
286
|
self.gender = gender
|
152
287
|
end
|
288
|
+
unless genders.nil?
|
289
|
+
self.genders = genders
|
290
|
+
end
|
153
291
|
unless date_of_birth.nil?
|
154
292
|
self.date_of_birth = date_of_birth
|
155
293
|
end
|
294
|
+
unless dates_of_birth.nil?
|
295
|
+
self.dates_of_birth = dates_of_birth
|
296
|
+
end
|
156
297
|
unless last_name.nil?
|
157
298
|
self.last_name = last_name
|
158
299
|
end
|
300
|
+
unless last_names.nil?
|
301
|
+
self.last_names = last_names
|
302
|
+
end
|
159
303
|
unless first_name.nil?
|
160
304
|
self.first_name = first_name
|
161
305
|
end
|
306
|
+
unless first_names.nil?
|
307
|
+
self.first_names = first_names
|
308
|
+
end
|
162
309
|
unless city.nil?
|
163
310
|
self.city = city
|
164
311
|
end
|
312
|
+
unless cities.nil?
|
313
|
+
self.cities = cities
|
314
|
+
end
|
165
315
|
unless state.nil?
|
166
316
|
self.state = state
|
167
317
|
end
|
318
|
+
unless states.nil?
|
319
|
+
self.states = states
|
320
|
+
end
|
168
321
|
unless country_code.nil?
|
169
322
|
self.country_code = country_code
|
170
323
|
end
|
324
|
+
unless country_codes.nil?
|
325
|
+
self.country_codes = country_codes
|
326
|
+
end
|
171
327
|
unless zip_code.nil?
|
172
328
|
self.zip_code = zip_code
|
173
329
|
end
|
330
|
+
unless zip_codes.nil?
|
331
|
+
self.zip_codes = zip_codes
|
332
|
+
end
|
174
333
|
unless external_id.nil?
|
175
334
|
self.external_id = external_id
|
176
335
|
end
|
336
|
+
unless external_ids.nil?
|
337
|
+
self.external_ids = external_ids
|
338
|
+
end
|
177
339
|
unless client_ip_address.nil?
|
178
340
|
self.client_ip_address = client_ip_address
|
179
341
|
end
|
@@ -220,48 +382,70 @@ module FacebookAds
|
|
220
382
|
# convert string to symbol for hash key
|
221
383
|
attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
|
222
384
|
|
223
|
-
if attributes.has_key?(:'
|
224
|
-
self.
|
385
|
+
if attributes.has_key?(:'emails')
|
386
|
+
self.emails = attributes[:'emails']
|
387
|
+
elsif attributes.has_key?(:'email')
|
388
|
+
self.emails = [attributes[:'email']]
|
225
389
|
end
|
226
390
|
|
227
|
-
if attributes.has_key?(:'
|
228
|
-
self.
|
391
|
+
if attributes.has_key?(:'phones')
|
392
|
+
self.phones = attributes[:'phones']
|
393
|
+
elsif attributes.has_key?(:'phone')
|
394
|
+
self.phones = [attributes[:'phone']]
|
229
395
|
end
|
230
396
|
|
231
|
-
if attributes.has_key?(:'
|
232
|
-
self.
|
397
|
+
if attributes.has_key?(:'genders')
|
398
|
+
self.genders = attributes[:'genders']
|
399
|
+
elsif attributes.has_key?(:'gender')
|
400
|
+
self.genders = [attributes[:'gender']]
|
233
401
|
end
|
234
402
|
|
235
|
-
if attributes.has_key?(:'
|
236
|
-
self.
|
403
|
+
if attributes.has_key?(:'dates_of_birth')
|
404
|
+
self.dates_of_birth = attributes[:'dates_of_birth']
|
405
|
+
elsif attributes.has_key?(:'date_of_birth')
|
406
|
+
self.dates_of_birth = [attributes[:'date_of_birth']]
|
237
407
|
end
|
238
408
|
|
239
|
-
if attributes.has_key?(:'
|
240
|
-
self.
|
409
|
+
if attributes.has_key?(:'last_names')
|
410
|
+
self.last_names = attributes[:'last_names']
|
411
|
+
elsif attributes.has_key?(:'last_name')
|
412
|
+
self.last_names = [attributes[:'last_name']]
|
241
413
|
end
|
242
414
|
|
243
|
-
if attributes.has_key?(:'
|
244
|
-
self.
|
415
|
+
if attributes.has_key?(:'first_names')
|
416
|
+
self.first_names = attributes[:'first_names']
|
417
|
+
elsif attributes.has_key?(:'first_name')
|
418
|
+
self.first_names = [attributes[:'first_name']]
|
245
419
|
end
|
246
420
|
|
247
|
-
if attributes.has_key?(:'
|
248
|
-
self.
|
421
|
+
if attributes.has_key?(:'cities')
|
422
|
+
self.cities = attributes[:'cities']
|
423
|
+
elsif attributes.has_key?(:'city')
|
424
|
+
self.cities = [attributes[:'city']]
|
249
425
|
end
|
250
426
|
|
251
|
-
if attributes.has_key?(:'
|
252
|
-
self.
|
427
|
+
if attributes.has_key?(:'country_codes')
|
428
|
+
self.country_codes = attributes[:'country_codes']
|
429
|
+
elsif attributes.has_key?(:'country_code')
|
430
|
+
self.country_codes = [attributes[:'country_code']]
|
253
431
|
end
|
254
432
|
|
255
|
-
if attributes.has_key?(:'
|
256
|
-
self.
|
433
|
+
if attributes.has_key?(:'states')
|
434
|
+
self.states = attributes[:'states']
|
435
|
+
elsif attributes.has_key?(:'state')
|
436
|
+
self.states = [attributes[:'state']]
|
257
437
|
end
|
258
438
|
|
259
|
-
if attributes.has_key?(:'
|
260
|
-
self.
|
439
|
+
if attributes.has_key?(:'zip_codes')
|
440
|
+
self.zip_codes = attributes[:'zip_codes']
|
441
|
+
elsif attributes.has_key?(:'zip_code')
|
442
|
+
self.zip_codes = [attributes[:'zip_code']]
|
261
443
|
end
|
262
444
|
|
263
|
-
if attributes.has_key?(:'
|
264
|
-
self.
|
445
|
+
if attributes.has_key?(:'external_ids')
|
446
|
+
self.external_ids = attributes[:'external_ids']
|
447
|
+
elsif attributes.has_key?(:'external_id')
|
448
|
+
self.external_ids = [attributes[:'external_id']]
|
265
449
|
end
|
266
450
|
|
267
451
|
if attributes.has_key?(:'client_ip_address')
|
@@ -313,17 +497,17 @@ module FacebookAds
|
|
313
497
|
def ==(o)
|
314
498
|
return true if self.equal?(o)
|
315
499
|
self.class == o.class &&
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
500
|
+
emails == o.emails &&
|
501
|
+
phones == o.phones &&
|
502
|
+
genders == o.genders &&
|
503
|
+
dates_of_birth == o.dates_of_birth &&
|
504
|
+
last_names == o.last_names &&
|
505
|
+
first_names == o.first_names &&
|
506
|
+
cities == o.cities &&
|
507
|
+
country_codes == o.country_codes &&
|
508
|
+
states == o.states &&
|
509
|
+
zip_codes == o.zip_codes &&
|
510
|
+
external_ids == o.external_ids &&
|
327
511
|
client_ip_address == o.client_ip_address &&
|
328
512
|
client_user_agent == o.client_user_agent &&
|
329
513
|
fbc == o.fbc &&
|
@@ -347,17 +531,17 @@ module FacebookAds
|
|
347
531
|
# @return [Fixnum] Hash code
|
348
532
|
def hash
|
349
533
|
[
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
534
|
+
emails,
|
535
|
+
phones,
|
536
|
+
genders,
|
537
|
+
dates_of_birth,
|
538
|
+
last_names,
|
539
|
+
first_names,
|
540
|
+
cities,
|
541
|
+
country_codes,
|
542
|
+
states,
|
543
|
+
zip_codes,
|
544
|
+
external_ids,
|
361
545
|
client_ip_address,
|
362
546
|
client_user_agent,
|
363
547
|
fbc,
|
@@ -378,38 +562,38 @@ module FacebookAds
|
|
378
562
|
# @return [String] String presentation of the object
|
379
563
|
def to_s
|
380
564
|
hash = {}
|
381
|
-
unless
|
382
|
-
hash['
|
565
|
+
unless emails.nil?
|
566
|
+
hash['emails'] = emails
|
383
567
|
end
|
384
|
-
unless
|
385
|
-
hash['
|
568
|
+
unless phones.nil?
|
569
|
+
hash['phones'] = phones
|
386
570
|
end
|
387
|
-
unless
|
388
|
-
hash['
|
571
|
+
unless genders.nil?
|
572
|
+
hash['genders'] = genders
|
389
573
|
end
|
390
|
-
unless
|
391
|
-
hash['
|
574
|
+
unless dates_of_birth.nil?
|
575
|
+
hash['dates_of_birth'] = dates_of_birth
|
392
576
|
end
|
393
|
-
unless
|
394
|
-
hash['
|
577
|
+
unless last_names.nil?
|
578
|
+
hash['last_names'] = last_names
|
395
579
|
end
|
396
|
-
unless
|
397
|
-
hash['
|
580
|
+
unless first_names.nil?
|
581
|
+
hash['first_names'] = first_names
|
398
582
|
end
|
399
|
-
unless
|
400
|
-
hash['
|
583
|
+
unless cities.nil?
|
584
|
+
hash['cities'] = cities
|
401
585
|
end
|
402
|
-
unless
|
403
|
-
hash['
|
586
|
+
unless country_codes.nil?
|
587
|
+
hash['country_codes'] = country_codes
|
404
588
|
end
|
405
|
-
unless
|
406
|
-
hash['
|
589
|
+
unless states.nil?
|
590
|
+
hash['states'] = states
|
407
591
|
end
|
408
|
-
unless
|
409
|
-
hash['
|
592
|
+
unless zip_codes.nil?
|
593
|
+
hash['zip_codes'] = zip_codes
|
410
594
|
end
|
411
|
-
unless
|
412
|
-
hash['
|
595
|
+
unless external_ids.nil?
|
596
|
+
hash['external_ids'] = external_ids
|
413
597
|
end
|
414
598
|
unless client_ip_address.nil?
|
415
599
|
hash['client_ip_address'] = client_ip_address
|
@@ -455,37 +639,37 @@ module FacebookAds
|
|
455
639
|
def normalize
|
456
640
|
hash = {}
|
457
641
|
unless email.nil?
|
458
|
-
hash['em'] = FacebookAds::ServerSide::Util.
|
642
|
+
hash['em'] = FacebookAds::ServerSide::Util.normalize_array(emails, 'em')
|
459
643
|
end
|
460
644
|
unless phone.nil?
|
461
|
-
hash['ph'] = FacebookAds::ServerSide::Util.
|
645
|
+
hash['ph'] = FacebookAds::ServerSide::Util.normalize_array(phones, 'ph')
|
462
646
|
end
|
463
647
|
unless gender.nil?
|
464
|
-
hash['ge'] = FacebookAds::ServerSide::Util.
|
648
|
+
hash['ge'] = FacebookAds::ServerSide::Util.normalize_array(genders, 'ge')
|
465
649
|
end
|
466
650
|
unless date_of_birth.nil?
|
467
|
-
hash['db'] = FacebookAds::ServerSide::Util.
|
651
|
+
hash['db'] = FacebookAds::ServerSide::Util.normalize_array(dates_of_birth, 'db')
|
468
652
|
end
|
469
653
|
unless last_name.nil?
|
470
|
-
hash['ln'] = FacebookAds::ServerSide::Util.
|
654
|
+
hash['ln'] = FacebookAds::ServerSide::Util.normalize_array(last_names, 'ln')
|
471
655
|
end
|
472
656
|
unless first_name.nil?
|
473
|
-
hash['fn'] = FacebookAds::ServerSide::Util.
|
657
|
+
hash['fn'] = FacebookAds::ServerSide::Util.normalize_array(first_names, 'fn')
|
474
658
|
end
|
475
659
|
unless city.nil?
|
476
|
-
hash['ct'] = FacebookAds::ServerSide::Util.
|
660
|
+
hash['ct'] = FacebookAds::ServerSide::Util.normalize_array(cities, 'ct')
|
477
661
|
end
|
478
662
|
unless country_code.nil?
|
479
|
-
hash['country'] = FacebookAds::ServerSide::Util.
|
663
|
+
hash['country'] = FacebookAds::ServerSide::Util.normalize_array(country_codes, 'country')
|
480
664
|
end
|
481
665
|
unless state.nil?
|
482
|
-
hash['st'] = FacebookAds::ServerSide::Util.
|
666
|
+
hash['st'] = FacebookAds::ServerSide::Util.normalize_array(states, 'st')
|
483
667
|
end
|
484
668
|
unless zip_code.nil?
|
485
|
-
hash['zp'] = FacebookAds::ServerSide::Util.
|
669
|
+
hash['zp'] = FacebookAds::ServerSide::Util.normalize_array(zip_codes, 'zp')
|
486
670
|
end
|
487
671
|
unless external_id.nil?
|
488
|
-
hash['external_id'] =
|
672
|
+
hash['external_id'] = external_ids
|
489
673
|
end
|
490
674
|
unless client_ip_address.nil?
|
491
675
|
hash['client_ip_address'] = client_ip_address
|
@@ -523,7 +707,17 @@ module FacebookAds
|
|
523
707
|
unless doby.nil?
|
524
708
|
hash['doby'] = FacebookAds::ServerSide::Util.normalize(doby, 'doby')
|
525
709
|
end
|
526
|
-
hash
|
710
|
+
hash.select{|k, v| !v.nil?}
|
711
|
+
end
|
712
|
+
|
713
|
+
def validate_constructor_values(multi_value, single_value, multi_string, single_string)
|
714
|
+
if !multi_value.nil? && !single_value.nil?
|
715
|
+
raise ArgumentError.new(
|
716
|
+
'Cannot set both %s and %s parameters via constructor. ' % [
|
717
|
+
multi_string, single_string
|
718
|
+
] + 'Please set either the multi or single parameter, not both.'
|
719
|
+
)
|
720
|
+
end
|
527
721
|
end
|
528
722
|
end
|
529
723
|
end
|