What is ATOM ?

ATOM (or Anonymous Targeting on Mobile) offers privacy-first targeting and monetization capabilities that puts user privacy at the forefront. Mobile app developers can monetise their unaddressable users without relying on persistent and diminishing iOS device identifiers, like IDFA.

ATOM is a small library that is integrated with an ad SDK of the app. ATOM monitors app usage patterns anonymously and enriches the ad requests with relevant cohorts at a time. The enriched ad requests can be targeted by an advertiser seamlessly, when a specific campaign includes the selected cohorts.

Why ATOM ?

So how does ATOM help you, as a developer? ATOM enables marketers to continue reaching the right audiences without compromising on privacy. ATOM also helps publishers and developers like you, monetise effectively in a privacy-safe way.

  • Reclaim Pre-IDFA eCPMs on anonymized users. Monetization with ATOM delivers higher eCPMs, compared to no-IDFA traffic.
  • Enrich bid-level signals for brand targeting. Ensure that 100% of your inventory and your users are addressable by advertisers, even without IDFA.
  • Match anonymous users to relevant cohorts. Further, learn which cohorts and ads drive your users. ATOM currently supports 10+ standard cohorts that are constantly updated frequently.
  • Above all, monetise effectively in a privacy-safe way. ATOM complies with the Apple ATT guidelines and delivers fully anonymous user engagement, requiring no PII (or personally identifiable information).


ATOM is designed to fully operate without any personal data and strictly adheres to GDPR requirements. By default, an integrated ATOM library does not require MAC-addresses, advertising IDs or any other identifier that can be used to identify the user. The data used for cohort calculations is purely executed on the device. The actual cohort data IDs that enrich bid requests are anonymous with no PII.
To update cohorts, ATOM sends anonymous app usage history to the Verve data center in EMEA. This data is aggregated across all ATOM users and does not include PII and it does not allow to fingerprint or trace back the user.

ATOM Cohorts and Taxonomy

By definition, a cohort is a group of people who have something in common. The ATOM SDK relies on the following anonymous signals to analyse and calculate on-device cohorts.

Device: Device OS, Manufacturer, Model, Timezone, Sensors.
App: Bundle ID / App ID, App starts, Session time, Dayparts.
Ad: Ad events, Clicks, Video started, Cohort affinity.

We offer 14 standard cohorts today.

Night OwlA group of people that frequently use the app in the night time unlike other users of the app.
Tech EnthusiastsA group of people that are excited about technology, new gadgets and software.
Active GamerA group of people that play the game of the app actively, more than 75% of the players.
Casual GamerA group of people that play the game of the app casually, similarly to most other players.
ImpulsiveA group of people that use the app more often and shorter periods than an average app user.
Healthy lifestyleA group of people that are into a healthy lifestyle and maintain a steady sleeping rhythm.
EmployedA group of people that are employed and uses the app mostly outside of work.
Income higher than averageA group of people with high income
LoyaltyA group of people that frequently use the app.
Bored peopleA group of people that have not much else to do than play the app.
Social interaction seekersA group of people that interact with social media activities.
Information seekersA group of people that actively look for news and other information throughout the day.
TravelerA group of people that frequently travel.
Sports fanA group of people that follow sports every day.

ATOM Installation Guide

Currently ATOM can be added into your project via:


In order to add ATOM into your project by using Cocoapods you need to add the following line to your

pod 'ATOM-Standalone', '2.0.0'

Drag & Drop

  1. Download a copy of ATOM, or clone its repository and make sure you check out the latest tagged version.
  2. Embed the ATOM.xcframework project in your own project.
  3. Add the ATOM target in the Target Dependencies section of the Build Phases tab of your application target.
  4. Add the ATOM.xcframework to the Embedded Binaries section of the General tab of your application target.


Currently ATOM is functioning only when HyBid version 2.18.1 and above is installed in your project. In this case you only need to install ATOM into your project with one of the above-provided methods.

In the v2 we provide additional delegate methods to make it easier to respond to changes and updates.

  • ATOMEventMatchDelegate class:
    • The ATOMEventMatchDelegate class provides a method called matchedEvent(withName:withValue:) that can be utilized to receive notifications when any of your events are matched.
      The method takes two parameters:
      • name: A string parameter representing the name of the matched event.
      • value: An optional parameter that represents the value associated with the matched event.

Whenever an event is matched, the matchedEvent(withName:withValue:) method will be triggered, allowing you to perform actions or update the UI accordingly.

  • AtomDelegate class:
    • The AtomDelegate class offers a method called cohortsUpdated() that enables you to receive instant notifications when cohorts calculation is updated.
      This method can be useful when you want to stay informed about any changes in the cohorts and take appropriate actions.
      Whenever the cohorts calculation is updated, the cohortsUpdated() method will be triggered, allowing you to handle the update and make necessary UI changes.

Both delegate classes mentioned above are designed to assist you in staying notified about recent changes and updating the UI accordingly.

To utilize these delegate classes effectively, you need to:

  • Conform to the delegate protocols in your class by implementing the required methods.
  • Set an instance of the conforming class as the delegate for the respective delegate class.
  • Implement the necessary actions or UI updates within the delegate methods to respond to the notifications appropriately.

By following this approach, you can ensure that your app stays up-to-date with the latest events and cohorts changes, allowing you to provide a more dynamic and responsive user experience.

Event API feature
Starting from the second version, publishers have the ability to fire their own events. These events are compared to a set of rules established by the publishers, and if there is a match, the corresponding cohorts will be assigned to the user.
Follow these steps to fire an event using the SDK:

  • Identify the event you want to fire:
    Determine the name and value of the event you want to fire. The event name should be a descriptive string that represents the action or interaction you want to track. The event value is an optional parameter that can be any supported data type: Bool, Int, Double, or String.
  • Use the fire method:
    The fire method provided by the SDK allows you to fire an event. It has the following signature:
static public func fire(eventWithName name: String, 
                        eventWithValue value: Any? = nil, 
                        withDelegate delegate: ATOMEventMatchDelegate? = nil)

The parameters are as follows:

  • name: The name of the event as a String.
  • value: The optional value associated with the event. It can be of type Bool, Int, Double, or String.
  • delegate: An optional delegate that conforms to the ATOMEventMatchDelegate protocol. This delegate can handle callbacks or actions related to event matching.
  • Fire the event: Use the fire method to fire the desired event. Here's an example:


Atom.fire(eventWithName: "Game Purchase", 
          eventWithValue: "Minecraft", 
          withDelegate: self)

Remember to include the necessary import statements and ensure that the SDK is properly integrated into your project before firing events.

App Classification feature
To enable the App Classification feature in your app and allow the SDK to calculate cohorts based on installed apps on users' devices, you need to add the LSApplicationQueriesSchemes key to your app's Info.plist file. Follow these steps to ensure the feature works correctly:

  • Open your Xcode project.
  • Locate the Info.plist file in the project navigator.
  • Click on the Info.plist file to open it in the editor.

Now, you need to add the necessary entries under the LSApplicationQueriesSchemes key:


By adding the necessary entries under the LSApplicationQueriesSchemes key, you have enabled the App Classification feature in your app. The SDK will now be able to calculate cohorts based on the installed apps on users' devices.


Both HyBid and ATOM has to be installed in the same way, via Cocoapods or Drag & Drop, to function as intended.