Our documentation is changing, please click here to enjoy it!

Skip to end of metadata
Go to start of metadata

By implementing the library in your app, you will automatically gather information about every single one of your app users: device model, OS version, language, country, time zone, app version, install date, the number of visits and more. You can also collect additional custom information.

All collected information can be used for targeting and personalization purposes.


The user's associated fields are single-value type fields. Each update will erase currently stored values except when it's an incrementation (or decrementation).

Custom fields

In addition to the information collected by the library, you can enrich your user's information with additional customized data. To do so, use the updateDeviceInfo: method.


    Make sure that your custom_field is already created in the database. Otherwise, the data will be ignored.
    Check our user guide to have an overview of your app's associated database and how to create a new field.

    Update date-type data

    To update date-type fields, you should format your date object in yyyy-MM-dd HH:mm:ss zzz string. The library provides a helper. Use the normalizedStringForDate: method to format your date objects.

      Update counter-type data

      To update counter-type data, you can increment (or decrement) your field by prefixing the value with the positive sign + (or negative -).

        Update fields from an URL

        In addition to the native updateDeviceInfo: method, the library parses the URLs in the following cases and triggers the updateDeviceInfo: method if you've added the needed parameters to your URL query.

        • The URL associated with the Push action
        • The URLs associated with the interactive Push button actions
        • The URLs and redirections loaded in web In-App content
        • The URLs associated with In-App actions
        • The URLs associated with Inbox message actions
        • Incoming URLs handled by the application:openURL:sourceApplication:annotation: or application:openURL:options: method of your AppDelegate.

        In the last case, make sure that you have already created a custom URL scheme as explained in this section and added the following method implementations to your AppDelegate:

        Uncomment the handleOpenURL: call if you've disabled the automatic integration.

          If your app supports Universal Links also add:

            Now you're ready to update fields using URLs. To do so, add a bma4sudi to your URL query with a JSON encoded string. For example, to update the field custom_field with the value new_value:

            1. Create a JSON object: {"custom_field":"new_value"}
            2. URL Encode it: %7B%22custom_field%22%3A%22new_value%22%7D
            3. Add the bma4sudi key to your URL query with the encoded string as value ...?bma4sudi=%7B%22custom_field%22%3A%22new_value%22%7D


            User location

            You can benefit from your users' location data to target them using their past location.

            To update the user's current location, call the following method with a CLLocation object:

              Static lists subscriptions

              With Accengage, you can use two types of segments: Dynamic segments and Static lists.

              A dynamic segment is a segment which is defined by one or more criteria. It is, therefore, liable to change as the values in the database are collected, imported, deleted and modified.

              Unlike a dynamic segment whose volume can evolve according to the criteria defined in the interface, a static list is a set of mobile users whose volume is static at a given time, in order, for example, to be used during a specific campaign or as an exclusion of a dynamic segment. Once created, a static list can be populated through the SDK.

              The library provides several methods to manage the subscription to static lists.


              First, make sure that you've created your static list with an external_id. The external_id is required to populate your list through the SDK. To find out more, check out our guide.

              Subscribe to a list

              In order to subscribe a user to a Static List, create an ACCList object:

                You can also set a subscription expiration date. Once your subscription expires the user will be automatically removed from the static list.

                  Add the user to a list or a set of lists:

                    Unsubscribe from list

                    As for a subscription, first create an ACCList object then you can remove the user from the list: 

                      Get a subscription status

                      To check if the user is currently added to a list (or set of lists), call the following method with a set of ACCList objects: 

                        Get the list subscriptions

                        You can also retrieve all the user's subscriptions. To do so:

                          • No labels