Integration process in details

How Monetizr integrates in the game

Monetizr integrates in game as a rewarding system. You will need to decide on the appropriate method of integration in your game. You will need to define specific placements in your game and create rewards for each of those placements. To learn more of the processes, you can view processes flowchart

Placement examples in games

In this example, game publisher has chosen to integrate Monetizr as rewards for their Whale players. If the player accomplishes specific task, game publisher calls Monetizr API and initiates reward fulfillment process. This integration mirrors integration with brand rewards.

In the second example, game publisher has chosen to integrate real merchandise and placed Monetizr rewards in games shop next to other in-game items.

The third example of integration: show rewards as a list of collectibles inside the game.

Rewards can be created from Monetizr console, they can be turned on and off or changed from console without making changes in the game. To start integrating Monetizr rewards you will need to register and create at least one reward from console. You can find out more use cases at https://www.themonetizr.com/case-studies.

You can integrate Monetizr in React Native as well.

Log into Monetizr console and create rewards

Head to app.themonetizr.com and log in with Google or sign up with your email. Monetizr uses your Google account information to process login authorization; identify platform features for your account; understand platform usage statistics.

Creating Monetizr account is free. You don't need to be on any of the pricing plans to log in and test platforms' basic functionalities. With a free account, you can log in, create rewards, and preview them through plugins and API. You will be able to integrate all functionality and fulfillment cycle and Monetizr will contact you before fulfilling any rewards.

Access to console

After authorization you will have access to guides, statistics, catalog of rewards, segments, team management and Monetizr will create game plan if you will want one.

Every new user will have a test reward generated upon registration. Once you have logged in you can find your pubic API Key that is specific for your app. You can view it inside an offer in My Offers section. Use this token in the authentication method in each of the plugins and REST API. The API Key includes privileges with read access to the public API. Remember that you should keep your API Key safe. You can give your API Key to the third parties if you want additional exposure, keep in mind that Monetizr can include extra charges for your access if it creates additional traffic.

After you have acquired API Key, you are ready to integrate Monetizr. You can always check the latest integration guides for each platform API](doc:about-api), iOS, Unity or Android.

To invoke an Offer from API or from SDK you will need to use unique Offer tag available from console. You can change this tag or deactivate this offer altogether. To keep offers tag and change attached offer, just change the tag of previous offer and rename the new offer to the tag.

Calling Offers

To call Offer from API or from SDK`s you will need to use this newly created unique offer tag and your API Key. You can always find detailed information of the requests in API reference.

## Use your API Key and offer tag from console
curl --request GET \
  --url https://api3.themonetizr.com/api/products/giftcard_netflix \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 4D2E54389EB489966658DDD83E2D1'
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api3.themonetizr.com/api/products/giftcard_netflix")
  .get()
  .addHeader("Accept", "application/json")
  .addHeader("Authorization", "Bearer 4D2E54389EB489966658DDD83E2D1")
  .build();

Response response = client.newCall(request).execute();
import Foundation

let headers = [
  "Accept": "application/json",
  "Authorization": "Bearer 4D2E54389EB489966658DDD83E2D1"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://api3.themonetizr.com/api/products/giftcard_netflix")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var client = new RestClient("https://api3.themonetizr.com/api/products/giftcard_netflix");
var request = new RestRequest(Method.GET);
request.AddHeader("Accept", "application/json");
request.AddHeader("Authorization", "Bearer 4D2E54389EB489966658DDD83E2D1");
IRestResponse response = client.Execute(request);
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(hnd, CURLOPT_URL, "https://api3.themonetizr.com/api/products/giftcard_netflix");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, "Authorization: Bearer 4D2E54389EB489966658DDD83E2D1");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

CURLcode ret = curl_easy_perform(hnd);
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api3.themonetizr.com/api/products/giftcard_netflix")
  .get()
  .addHeader("Accept", "application/json")
  .addHeader("Authorization", "Bearer 4D2E54389EB489966658DDD83E2D1")
  .build();

Response response = client.newCall(request).execute();
fetch("https://api3.themonetizr.com/api/products/giftcard_netflix", {
  "method": "GET",
  "headers": {
    "Accept": "application/json",
    "Authorization": "Bearer 4D2E54389EB489966658DDD83E2D1"
  }
})
.then(response => {
  console.log(response);
})
.catch(err => {
  console.error(err);
});

Calling offers using SDK`s

In case you are using one of SDK`s your offer offer call will be a bit different:

// Unity integration https://docs.themonetizr.com/docs/unity
MonetizrClient.Instance.ShowProductForTag("giftcard_netflix");
// iOS setup instructions https://docs.themonetizr.com/docs/ios
Monetizr.shared.showProduct(tag: giftcard_netflix, presenter: UIViewController?, presentationStyle: UIModalPresentationStyle?) { success, error, product in ()}
// Android instructions https://docs.themonetizr.com/docs/android
MonetizrSdk.showProductForTag("giftcard_netflix")

Create new offer

If you want to create new offers from available catalog, you will need to navigate to the Catalog and click on "Add to my" button. Then the offer will be added to your own application and made available for your rewards.

Deactivate offer

If you decide that the offer should not be active you have to navigate to the specific offer and deactivate it. For usability purposes Monetizr would still return detailed information if the request to the offer with this tag will be invoked.

Updating offer details

You can update data of this offer by editing information in offers detail view. The changes will be available through API in less than two minutes as we are caching offers details for better performance. You can change offers title, description and upload new media files. We support pnh, jpg and gif formats.

Adding translations

You can add translations to the offer from console as well. To do that you will need to navigate to Offers detail view and go to the Translations tab. There you will be able to add translations to supported languages.

Requesting custom design

If the design of the reward does not fulfill your requirements, you can always request a new design from console and Monetizr will prepare Offers design for your requirements.

How to add reward to a game achievement

In video gaming an achievement, also sometimes known as a trophy, badge, award, stamp, medal, challenge, cheevo or in game achievement, is a meta-goal defined outside a game's parameters. Unlike the in-game systems of quests, tasks, and/or levels that usually define the goals of a video game and have a direct effect on further gameplay, the management of achievements usually takes place outside the confines of the game environment and architecture. Meeting the fulfillment conditions, and receiving recognition of fulfillment by the game, is referred to as unlocking the achievement (Source).

Achievements therefore are mostly managed outside the confines of the game environment and architecture. This is the achievements rewarding system where Monetizr works as plug-n-play service.
The idea for game achievements can be traced back to 1982, with Activision's patches for high scores. This was a system by which game manuals instructed players to achieve a particular high score, take a photo of score display on the television, and send in the photo to receive a physical, iron-on style patch in a fashion somewhat similar to a Boy Scout earning a Scout badge (Source).

Monetizr works in similar fashion, covering the fulfillment of physical or digital rewards - game designers define achievements and gameplay, developers create the magic behind the scenes and Monetizr covers fulfillment process. To use the same analogy of early game achievements:

  • game manuals instructed players to achieve a particular high score: Nowadays, the game itself most of the times contains instructions for players to achieve specific milestones. For example collect 50 hidden collectibles in game.
  • take a photo of score display on the television, and send in the photo. The same narrative still applies for games. Instead of sending photo game instructs to achieve other specific milestone that confirms players eligibility to receive reward.
  • receive a physical, iron-on style patch. Game publishers can choose to provide digital rewards or physical rewards and even brand sponsored rewards for players. At this stage of achievements lifecycle Monetizr rewards are linked with game architecture.

How to add the reward

Achievements are created in gameplay and developed by game designers and publishers. Achievements system therefore is still a part of game logic and are not controlled by Monetizr. A specific achievement or achievements however can be linked with Monetizr rewarding system at the fulfillment stage.

Brand/sponsored/claimable rewards

To link achievement with Monetizr reward the developers will have to use either Rest API, Unity SDK, iOS SDK or Android SDK. A casual workflow for a sponsored/claimable/brand reward would is following:

  • authorize in Console
  • create an Offer
  • convert offer to claimable and provide a valid webhook to approve players eligibility. Keep in mind that Monetizr does not sponsor rewards, you will need to contact Monetizr before using claimable offers in production
  • if you need to grab offers details to show them in game, you will need to use either offers list endpoint or offers details endpoint. You can include additional assets for your reward following instructions for assets. Read about Connecting to API to find your rewards tags and API keys
  • when you need to claim a sponsored reward from game, you will need to call either claim if your reward does not have a specific options that has to be specified by player, for example size/color/gender. Or you will need to implement checkout experience in case when player has to specify options, then you will need to call more advanced claim method. Read more about Claim orders for advanced reward versions.
  • if you want to add additional assets on claim response, you will need to take a look into Offer claiming section . You can include custom assets on claim response to customize what you want to present your players

Non sponsored rewards

For non sponsored rewards (not for free), the workflow would differ:

How to create game event

After the initial game launch hype, one of the best ways to retain players is by creating regularly scheduled in-game events.

In-game events are a way to give players new goals to come back to. Events also help to extend the life of your game so you don’t have to invest in developing new games just to start over.

For players, the benefits of in-game events are obvious - they get a new goal that replaces the routine and grind of normal gameplay once they’ve plateaued. With more players coming back and engaging with your game, the more chances you’ll have to convert these players into paying customers.

The best event items that will generate the most revenue are usually the ones that do something genuinely new and unexpected.

Another thing to keep in mind is that in-game events must offer items and rewards that feed directly into existing gameplay.

By crafting an in-game event around the goals of the core game, you ensure players feel like they’re working towards something bigger and not just completing a challenge.

On a technical level, in-game events should be pushed out to players on the server-side. This means players won’t have to download an update in order to participate in an event, which adds a layer of unwanted friction. It’s also better from a development standpoint as you won't need code support from your engineering team.

As for timing in-game events, look to seasonal events like Valentine’s Day, Halloween, Thanksgiving and Christmas for inspiration and to get a head start generating assets.

In-game events should also occur outside of major holidays, so use your best judgement and AB test what works and doesn’t with your in-game events. Read full article about about in-game events here.

A game event is created by the game developers and the offer items and rewards can then be connected with valuable items from Monetizr.


Did this page help you?