Skip to main content

Send Customer Events

Use events to record customer actions (purchases, visits, interactions) and trigger Gameball automations and rewards.

Basic Usage

import Gameball

do {
    let event = try Event(
        events: [
            "purchase": [
                "amount": 120.50,
                "currency": "USD",
                "order_id": "order-123",
                "items": 3,
                "channel": "ios_app"
            ]
        ],
        customerId: "customer-123"
    )

    GameballApp.getInstance().sendEvent(event) { success, errorMessage in
        if success {
            print("Event sent")
        } else if let errorMessage = errorMessage {
            print("Gameball event error: \(errorMessage)")
        }
    }
} catch {
    print("Validation error: \(error.localizedDescription)")
}

Event Parameters

customerId
String
required
Permanent identifier for the customer.
events
[String: [String: Any]]
required
Dictionary of event names and metadata payloads.
email
String
Customer email (optional).
mobile
String
Customer mobile number (optional).
sessionToken
String
Optional session token override for this request.

Best Practices

1

Keep names consistent

Standardize event names and keys (e.g., snake_case).
2

Send after init

Call sendEvent only after the SDK and customer are initialized.
3

Include identifiers

Add order IDs, amounts, and channels to improve targeting.
4

Handle errors

Surface validation and API errors for quick debugging.