Former iOS User

Important Note :

We strongly recommend referring to the updated SDK on Swift SDK Integration for incorporating Netmera into your projects. The previous iOS method, which you can find here, is being phased out and will not be supported in the long term. Transitioning to the new SDK will ensure that you have access to the latest features, improvements, and technical support.


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.

User ID Management: For optimal performance and data integrity, we strongly recommend updating user information at the point of login. Ensure that the same userId value is assigned exclusively to users who log in with the corresponding account credentials. Assigning the same userId to multiple users can lead to data inconsistencies and is not considered a best practice.

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.

Before Generating a Custom Profile Attribute

Before generating a custom profile attribute, ensure that it is first defined in the Netmera Panel. Custom attributes must be created and configured within the panel before they can be used. For detailed instructions on setting up custom profile attributes, please refer to the guide: Creating Custom Profile Attributes.

  • Expand Developers section from left menu. Click on Profile Attributes > Create Attribute.

  • After you click Create Attribute, you will see Name, Label, Description, Data Type and Is Array fields. Fill those fields like the image below

  • After you click Save, your new attribute will be saved and you will be able to add this attribute to your users.

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