iOS User

Use NetmeraUser class to send information about your application's users to Netmera in a structured way. Typical place to inform Netmera about application user's attributes is after your users has logged in to your application.

Setting Attributes

After you have information about your user, you should create a NetmeraUser object, set values, then call [Netmera updateUser:] method like below.

// Set user's properties
let user = NetmeraUser()
user.userId = "johnny.appleseed"
user.email = "johnny.appleseed@apple.com"
user.msisdn = "00905XXXXXXXXX"
user.name = "Johnny"
user.surname = "Appleseed"
user.language = NSLocale.preferredLanguages[0]
var birthComponents = DateComponents()
birthComponents.year = 1774
birthComponents.month = 9
birthComponents.day = 26
let calendar = Calendar(identifier: .gregorian)
user.dateOfBirth = calendar.date(from: birthComponents)
user.gender = NetmeraProfileAttributeGender.male
user.maritalStatus = NetmeraProfileAttributeMaritalStatus.married
user.numberOfChildren = 10
user.country = "United States"
user.state = "MA"
user.city = "Leominster"
user.district = "Leominster"
user.occupation = "Farmer"
user.industry = "Agriculture"
user.favouriteTeam = "FAVOURITE_TEAM"
user.externalSegments = ["segment1", "segment2"]
// Send data to Netmera
Netmera.update(user)

You can also update any attribute independent from the others.

Removing Attributes

If you need to remove a previously set attribute from Netmera, you must set [NSNull null] object for corresponding attribute. Attribute must be an object type. Here is an example:

// This will remove previously set `email` value from Netmera
let user = NetmeraUser()
user.email = ""
Netmera.update(user)

UserId cannot be removed:

userId cannot be removed even if you set null to it.

Adding Custom Attributes to User

Similar to events, you can generate a custom NetmeraUser subclass using Netmera Dashboard if the set of built-in attributes is not enough for use case.

If the custom attribute is to be created on the Netmera, it must first be defined in the panel on (Developers->Profile Attributes).

Netmera will automatically generate the source files for your custom user class, so that you can easily use them to send information about your custom attributes.

Generated Code:

For all custom profile attributes, you can find the generated code at the bottom of the 'Profile Attribute' page under the 'Generate Code' section. Be sure to include this generated code in your Netmera Panel under the title Profile Attributes > User Class.

Private info

The sharing of private datas are prohibited under KVKK law. In the profile and event definitions in the application, firstly the user defines the attributes in the Netmera panel. When the Private Information feature is selected while defining, the value of the attribute is not passed to the backend by the Netmera SDK. This check is done on the SDK side (Netmera.update(user)), the request does not go backend.

fetchCoupon

Utilize this method to retrieve and showcase the coupons that users have earned within your iOS application using Swift.

let filter = NetmeraCouponFilter()
        filter.page = Int32(pageSize)
        filter.max = Int32(max)

        Netmera.fetchCoupon(using: filter) { coupons, error in
            self.coupons = coupons ?? []
            self.tableView.reloadData()
        }

User Update

You can continue using the existing method, and with version 3.11.1, you now have the option to listen for results by adding a listener.

Netmera.update(user) { success, error in
      if success {
      } else {
      }
    }

Last updated