Skip to content

Impression-Level User Revenue API for MMPs

This API uses a publisher-subscriber architecture. The MAX SDK broadcasts MAX ad revenue events and MMPs subscribe to the max_revenue_events topic. AppLovin recommends that you subscribe to that topic immediately after your app launches. That way, you will not miss events. Each broadcast event includes the following parameters:

NameDescriptionExample
ad_formatThe ad format of the ad.BANNER, MREC, INTER, REWARDED
country_codeThe revenue’s country code.US (for the United States)
idUnique internal ID for the serve.19017d954ffcded6c42772b09ec36699efe0bfc2
max_ad_unit_idThe MAX Ad Unit ID.65d8d0195e50bda6
network_nameDisplay name of the network that shows the ad.AppLovin
revenueA double representing the revenue amount.0.002067201
third_party_ad_placement_idThe ad’s placement ID, if any (bidding may not have one).inter_regular
user_segmentThe user segment of the user to whom the ad shows.experiment5

The following example shows how you subscribe to and process the events that the SDK broadcasts.

#import "ExampleViewController.h"
#import <AppLovinSDK/AppLovinSDK.h>
@interface ExampleViewController()<ALCSubscriber>
@end
@implementation ExampleViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[[ALCCommunicator defaultCommunicator] subscribe: self forTopic: @"max_revenue_events"];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear: animated];
// Unsubscribe when subscription is no longer needed
[[ALCCommunicator defaultCommunicator] unsubscribe: self forTopic: @"max_revenue_events"];
}
#pragma mark - AppLovin Communicator Subscriber Protocol
- (void)didReceiveMessage:(ALCMessage *)message
{
// If you are subscribed to multiple topics, check for the desired one
if ( [@"max_revenue_events" isEqualToString: message.topic] )
{
double revenue = [message.data[@"revenue"] doubleValue];
// MAX revenue event messages will also contain the same info as MAX ad event messages, but without the "type"
NSString *countryCode = message.data[@"country_code"]; // "US" for the United States, etc - Note: Do not confuse this with currency code which is "USD"
NSString *networkName = message.data[@"network_name"]; // Display name of the network which showed the ad
NSString *adUnitIdentifier = message.data[@"max_ad_unit_id"]; // The MAX Ad Unit ID
NSString *thirdPartyAdPlacementIdentifier = message.data[@"third_party_ad_placement_id"]; // The ad's placement id, if any (bidding may not have one)
NSString *adFormat = message.data[@"ad_format"]; // The ad format of the ad (e.g. "BANNER", "MREC", "INTER", "REWARDED")
NSString *userSegment = message.data[@"user_segment"]; // The user segment of the user to whom the ad was shown
}
}
- (NSString *)communicatorIdentifier;
{
return @"«your_company_name_in_snake_case»";
}
@end