in templates/ruby/lib/facebook_ads/ad_objects/helpers/custom_audience_helpers.rb [60:106]
def prepare_params(data,
schema,
app_ids: nil,
page_ids: nil,
pre_hashed: false,
namespace: nil,
session: nil,
data_source: nil)
unless schema.is_a?(Array) || schema.split(',').length > 1
schema = schema.upcase
unless is_valid_single_key?(schema) || is_combinational_key?(schema)
raise InvalidParameterError, "#{schema} is not a valid schema"
end
data = pre_hashed ? data : data.map { |entry| generate_hash(entry, schema)}
is_raw = !is_combinational_key?(schema)
else
schema = schema.split(',') unless schema.is_a?(Array)
data = data.map do |row|
raise 'Schema size and data size mismatch' if row.length != schema.length
row.each_with_index.map do |val, idx|
pre_hashed ? val : generate_hash(val, schema[idx])
end
end
is_raw = !(schema.map { |s| is_combinational_key?(s) }.any?)
end
{
payload: {
schema: schema,
data: data,
is_raw: is_raw,
app_ids: app_ids,
page_ids: page_ids,
data_source: data_source,
}.compact,
namespace: namespace,
session: session,
}.compact
end