Reward User

1. Fully Managed by MyChips

Use this method only if you have selected Self-Managed Currency. If you already support S2S postback please skip this snippet.

To check for a reward use the getReward function. It requires your adunitId, a reward callback(which will be called if the checks shows that there is a reward), and an on error callback.

MCOfferwallSDK.shared.getReward(adunitId: "YOUR_AD_UNIT_ID") { reward in
        //do something with the reward, here we just print it
        print(reward.virtualCurrencyReward)
    } onError: { error in
        //do something with the error, here we just print it
        print(error)
    }

If there is no reward and no error, nothing will happen

You should check for the reward whenever the app is started or resumed. Example integration:

// Import necessary modules for SwiftUI and the custom SDK.
import SwiftUI
import MyChipsSdk

// Main entry point of the SwiftUI app, marked with @main attribute.
@main
struct MyChipsSdkSwiftUIExampleApp: App {
    
    // Access the current scene phase (e.g., active, inactive, background) using @Environment.
    @Environment(\.scenePhase) var scenePhase
    
    // State variable to track whether the app is being activated for the first time.
    @State private var firstActive = true
    
    // Define the body property, specifying the app's main scene.
    var body: some Scene {
        // The main window group of the app.
        WindowGroup {
            // The root view of the app is ContentView.
            ContentView()
                // Perform actions when the scene phase changes (e.g., active, inactive, background).
                .onChange(of: scenePhase, perform: { phase in
                    // Check if the app is currently active.
                    if phase == .active {
                        // If this is the first activation (app startup):
                        if firstActive {
                            // Initialize the SDK with the API key.
                            MCOfferwallSDK.shared.configure(apiKey: "YOUR_API_KEY")
                            
                            // Optionally set a user ID for tracking or personalization.
                            MCOfferwallSDK.shared.setUserId(userId: "YOUR_USER_ID")
                            
                            // Mark firstActive as false so this block won't execute again.
                            firstActive = false
                        }
                        
                        // Check for any rewards when the app starts or resumes.
                        MCOfferwallSDK.shared.getReward(
                            adunitId: "YOUR_AD_UNIT_ID") { reward in
                                // Handle successful reward retrieval by printing the reward amount.
                                print(reward.virtualCurrencyReward)
                            } onError: { error in
                                // Handle any errors encountered during reward retrieval.
                                print(error)
                            }
                    }
                })
        }
    }
}

2. Server-to-Server (S2S) Postbacks

If you prefer server-to-server communication, MyChips can send a postback to your server with bonus information. The configuration for postbacks is available in your publisher dashboard. This method is useful for validating and securely rewarding users without client-side manipulation.

Last updated