atom-ios is the official ironSource.atom SDK for the IOS platform.
Installation from CocoaPods.
Add dependency in your pod file
pod 'AtomSDK'
The Tracker is used for sending events to Atom based on several conditions
- Every 10 seconds (default)
- Number of accumulated events has reached 50 (default)
- Size of accumulated events has reached 64KB (default)
Case of server side failure (500) the tracker uses an exponential back off mechanism with jitter.
To see the full code check the example section
Example of sending an event in Swift:
// initialize atom-sdk api object
var apiTracker_ = ISAtomTracker()
apiTracker_!.enableDebug(true)
apiTracker_!.setAuth("<YOUR_AUTH_KEY>")
apiTracker_!.setBulkSize(<BULK_COUNT>)
apiTracker_!.setBulkBytesSize(<MAX_BULK_SIZE_IN_BYTES>)
apiTracker_!.setEndPoint("https://track.atom-data.io/")
// track event
apiTracker_!.trackWithStream("<YOUR_STREAM_NAME>",
data: "{\"test\":\"test\"}")
// flush all data in tracker
apiTracker_!.flush()
Example of sending an event in Objective-C:
// initialize atom-sdk api object
ISAtomTracker* apiTracker_ = [[ISAtomTracker alloc] init];
[apiTracker_ enableDebug:true];
[apiTracker_ setBulkSize:<BULK_COUNT>];
[apiTracker_ setBulkBytesSize:<MAX_BULK_SIZE_IN_BYTES>];
[apiTracker_ setEndPoint:@"https://track.atom-data.io/"];
// track event
[apiTracker_ trackWithStream: @"<YOUR_STREAM_NAME>" data: @"{\"test\":\"test\"}"
token: @"<YOUR_AUTH_KEY>"];
// flush all data in tracker
[apiTracker_ flush];
The Low Level SDK has 2 methods:
- putEvent - Sends a single event to Atom
- putEvents - Sends a bulk (batch) of events to Atom
Example of sending an event in Swift:
// initialize atom-sdk api object
var api_ = ISAtom()
// print debug info in console
api_!.enableDebug(true)
api_!.setAuth("<YOUR_AUTH_KEY>")
// send POST request
api_!.putEventWithStream("<YOUR_STREAM_NAME>",
data: "{\"test\":\"test\"}",
callback: {response in
let errorStr = (response.error == "") ? "nil" : "\"\(response.error)\""
let dataStr = (response.data == "") ? "nil" : "\"\(response.data)\""
let statusStr = "\(response.status)"
})
// send Bulk request
api_!.putEventsWithStream("<YOUR_STREAM_NAME>",
arrayData: ["{\"test\":\"test\"}", "{\"test\":\"test\"}"],
callback: { response in
let errorStr = (response.error == "") ? "nil" : "\"\(response.error)\""
let dataStr = (response.data == "") ? "nil" : "\"\(response.data)\""
let statusStr = "\(response.status)"
let responseStr = "{\n\t\"error\": \(errorStr), " +
"\n\t\"data\": \(dataStr), " +
"\n\t\"status\": \(statusStr)\n}"
})
// check health of server
api_!.health()
Example of sending an event in Objective-C:
// initialize atom-sdk api object
ISAtom* api_ = [[ISAtom alloc] init];
// print debug info in console
[api_ enableDebug:true];
[api_ setAuth: @"<YOUR_AUTH_KEY>"];
// send POST request
ISRequestCallback callback = ^(ISResponse* response) {
// reponse data from server
};
[api_ putEventWithStream: @"<YOUR_STREAM_NAME>"
data: @"{\"test\":\"test\"}"
callback: callback];
// send Bulk request
NSArray* data = [NSArray arrayWithObjects:@"{\"test\":\"test\"}", @"{\"test\":\"test\"}", nil];
[api_ putEventsWithStream: @"<YOUR_STREAM_NAME>"
arrayData: data
callback: callback];
// check health of server
[api_ health];
There is a legacy swift version of the sdk.
it is considered beta and it is not officially supported.
- Full re-write to Objective C
- Adding Cococapods release
- Changing CommonCrypto to Arcane
- Bugfix - fixing the case when there are multiple streams that need to be flushed
while there is a bad response from server (retry Qs). - Increased coverage
- Basic features: putEvent, putEvents and Tracker
You can use our example for sending data to Atom: