myChips SDK
  • Introduction
  • Getting Started
    • Create a Publisher Account
    • Create your App/Site
    • Create an AdUnit
    • Test in Sanbox mode
  • Reward Handling
    • Webhook S2S Postback
    • Validating the Webhook S2S
    • Rejected S2S Webhook Postback
  • Billing
  • Unity
    • Install SDK
    • Reward User
    • FAQ
  • Android
    • Install SDK
    • Reward User
  • React Native
    • Install SDK
    • Reward User
  • RN Expo
    • Install SDK
    • Reward User
  • iOS
    • Install SDK
    • Reward User
  • Flutter
    • Install SDK
    • Reward User
  • iFrame
  • WebView & Direct Link
  • Revenue API
Powered by GitBook
On this page
  1. iOS

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)
                            }
                    }
                })
        }
    }
}
class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?
    
    var firstActive = true
    func sceneDidBecomeActive(_ scene: UIScene) {
        if (firstActive) {
            //at the app start initialize the sdk
            let _ = MCOfferwallSDK(apiKey: "YOUR_API_KEY")
            //optionally set user id
            MCOfferwallSDK.setUserId(userId: "YOUR_USER_ID")
            firstActive = false
        }
        
        //other the start or resume check for the reward and do something
        MCOfferwallSDK.getReward(
            adunitId: "YOUR_AD_UNIT_ID") { reward in
                print(reward.virtualCurrencyReward)
            } onError: { error in
                print(error)
            }
    }
    
    //...OTHER SCENEDELEGATE FUNCTIONS

}

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.

If you are testing in Sandbox mode, the value of the macro {user_payout} will be 0.

PreviousInstall SDKNextFlutter

Last updated 7 days ago