Class: AmplitudeExperiment::User

Inherits:
Object
  • Object
show all
Defined in:
lib/experiment/user.rb

Overview

Defines a user context for evaluation. ‘device_id` and `user_id` are used for identity resolution. All other predefined fields and user properties are used for rule based user targeting.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(device_id: nil, user_id: nil, country: nil, city: nil, region: nil, dma: nil, ip_address: nil, language: nil, platform: nil, version: nil, os: nil, device_manufacturer: nil, device_brand: nil, device_model: nil, carrier: nil, library: nil, user_properties: nil) ⇒ User



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/experiment/user.rb', line 92

def initialize(device_id: nil, user_id: nil, country: nil, city: nil, region: nil, dma: nil, ip_address: nil, language: nil,
               platform: nil, version: nil, os: nil, device_manufacturer: nil, device_brand: nil,
               device_model: nil, carrier: nil, library: nil, user_properties: nil)
  @device_id = device_id
  @user_id = user_id
  @country = country
  @city = city
  @region = region
  @dma = dma
  @ip_address = ip_address
  @language = language
  @platform = platform
  @version = version
  @os = os
  @device_manufacturer = device_manufacturer
  @device_brand = device_brand
  @device_model = device_model
  @carrier = carrier
  @library = library
  @user_properties = user_properties
end

Instance Attribute Details

#carrierString?

Predefined field, must be manually provided



65
66
67
# File 'lib/experiment/user.rb', line 65

def carrier
  @carrier
end

#cityString?

Predefined field, must be manually provided



21
22
23
# File 'lib/experiment/user.rb', line 21

def city
  @city
end

#countryString?

Predefined field, must be manually provided



17
18
19
# File 'lib/experiment/user.rb', line 17

def country
  @country
end

#device_brandString?

Predefined field, must be manually provided



57
58
59
# File 'lib/experiment/user.rb', line 57

def device_brand
  @device_brand
end

#device_idString?

Device ID for associating with an identity in Amplitude



9
10
11
# File 'lib/experiment/user.rb', line 9

def device_id
  @device_id
end

#device_manufacturerString?

Predefined field, must be manually provided



53
54
55
# File 'lib/experiment/user.rb', line 53

def device_manufacturer
  @device_manufacturer
end

#device_modelString?

Predefined field, must be manually provided



61
62
63
# File 'lib/experiment/user.rb', line 61

def device_model
  @device_model
end

#dmaString?

Predefined field, must be manually provided



29
30
31
# File 'lib/experiment/user.rb', line 29

def dma
  @dma
end

#ip_addressString?

Predefined field, must be manually provided



33
34
35
# File 'lib/experiment/user.rb', line 33

def ip_address
  @ip_address
end

#languageString?

Predefined field, must be manually provided



37
38
39
# File 'lib/experiment/user.rb', line 37

def language
  @language
end

#libraryString?

Predefined field, auto populated, can be manually overridden



69
70
71
# File 'lib/experiment/user.rb', line 69

def library
  @library
end

#osString?

Predefined field, must be manually provided



49
50
51
# File 'lib/experiment/user.rb', line 49

def os
  @os
end

#platformString?

Predefined field, must be manually provided



41
42
43
# File 'lib/experiment/user.rb', line 41

def platform
  @platform
end

#regionString?

Predefined field, must be manually provided



25
26
27
# File 'lib/experiment/user.rb', line 25

def region
  @region
end

#user_idString?

User ID for associating with an identity in Amplitude



13
14
15
# File 'lib/experiment/user.rb', line 13

def user_id
  @user_id
end

#user_propertiesHash?

Custom user properties



73
74
75
# File 'lib/experiment/user.rb', line 73

def user_properties
  @user_properties
end

#versionString?

Predefined field, must be manually provided



45
46
47
# File 'lib/experiment/user.rb', line 45

def version
  @version
end

Instance Method Details

#as_json(_options = {}) ⇒ Hash

Return User as Hash.



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/experiment/user.rb', line 116

def as_json(_options = {})
  {
    device_id: @device_id,
    user_id: @user_id,
    country: @country,
    city: @city,
    region: @region,
    dma: @dma,
    ip_address: @ip_address,
    language: @language,
    platform: @platform,
    version: @version,
    os: @os,
    device_manufacturer: @device_manufacturer,
    device_brand: @device_brand,
    device_model: @device_model,
    carrier: @carrier,
    library: @library,
    user_properties: @user_properties
  }
end

#to_json(*options) ⇒ String

Return user information as JSON string.



140
141
142
# File 'lib/experiment/user.rb', line 140

def to_json(*options)
  as_json(*options).to_json(*options)
end