이 API는 발행자-구독자(publisher-subscriber) 아키텍처를 사용합니다.
MAX SDK가 MAX ad revenue 이벤트를 브로드캐스트하면 MMP가 max_revenue_events 토픽을 구독합니다.
AppLovin은 앱이 출시된 직후에 해당 토픽을 구독할 것을 권장합니다.
이렇게 하면 이벤트를 놓치지 않을 수 있습니다.
각 브로드캐스트 이벤트에는 다음 파라미터가 포함됩니다.
| 이름 | 설명 | 예시 |
|---|---|---|
ad_format | 광고의 ad format. | BANNER, MREC, INTER, REWARDED |
country_code | revenue의 국가 코드. | US (미국의 경우) |
id | 노출에 대한 고유 내부 ID. | 19017d954ffcded6c42772b09ec36699efe0bfc2 |
max_ad_unit_id | MAX Ad Unit ID. | 65d8d0195e50bda6 |
network_name | 광고를 게재한 network의 표시 이름. | AppLovin |
revenue | revenue 금액을 나타내는 double 값. | 0.002067201 |
third_party_ad_placement_id | 광고의 placement ID (있는 경우, bidding에는 없을 수 있음). | inter_regular |
user_segment | 광고가 노출된 사용자의 user segment. | experiment5 |
MMP는 이러한 파라미터의 값을 설정할 책임이 있습니다. 하나 이상의 파라미터에 대한 데이터를 받지 못하거나 해당 데이터가 신뢰할 수 없는 경우, MMP와 협력하여 관련 파라미터를 모두 지원하는지 확인하십시오.
다음 예시는 SDK가 브로드캐스트하는 이벤트를 구독하고 처리하는 방법을 보여줍니다.
package «your.package.name»;
public class ExampleActivity
extends Activity
implements AppLovinCommunicatorSubscriber
{
@Override
protected void onCreate(@Nullable final Bundle savedInstanceState)
{
super.onCreate( savedInstanceState );
AppLovinCommunicator.getInstance( getApplicationContext() ).subscribe( this, "max_revenue_events" );
}
@Override
protected void onDestroy()
{
// 구독이 더 이상 필요하지 않을 때 구독 해제
AppLovinCommunicator.getInstance( getApplicationContext() ).unsubscribe( this, "max_revenue_events" );
super.onDestroy();
}
@Override
public void onMessageReceived(final AppLovinCommunicatorMessage message)
{
// 여러 토픽을 구독 중인 경우, 원하는 토픽인지 확인
if ( "max_revenue_events".equals( message.getTopic() ) )
{
Bundle data = message.getMessageData();
double revenue = data.getDouble( "revenue" );
// 기타 데이터
String countryCode = data.getString( "country_code" ); // 미국의 경우 "US" 등 - 참고: 통화 코드인 "USD"와 혼동하지 마십시오.
String networkName = data.getString( "network_name" ); // 광고를 게재한 network의 표시 이름
String adUnitId = data.getString( "max_ad_unit_id" ); // MAX Ad Unit ID
String thirdPartyAdPlacementId = data.getString( "third_party_ad_placement_id" ); // 광고의 placement ID (있는 경우, bidding에는 없을 수 있음)
String adFormat = data.getString( "ad_format" ); // 광고의 ad format (예: "BANNER", "MREC", "INTER", "REWARDED", "REWARDED_INTER")
}
}
@Override
public String getCommunicatorId()
{
return "«your_company_name_in_snake_case»";
}
}
package «your.package.name»
class ExampleActivity : Activity(), AppLovinCommunicatorSubscriber
{
override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate( savedInstanceState )
AppLovinCommunicator.getInstance( applicationContext ).subscribe( this, "max_revenue_events" )
}
override fun onDestroy()
{
// 구독이 더 이상 필요하지 않을 때 구독 해제
AppLovinCommunicator.getInstance( applicationContext ).unsubscribe( this, "max_revenue_events" )
super.onDestroy()
}
override fun onMessageReceived(message: AppLovinCommunicatorMessage)
{
// 여러 토픽을 구독 중인 경우, 원하는 토픽인지 확인
if ( "max_revenue_events" == message.topic )
{
val data: Bundle = message.messageData
val revenue = data.getDouble( "revenue" )
// 기타 데이터
val countryCode = data.getString( "country_code" ) // 미국의 경우 "US" 등 - 참고: 통화 코드인 "USD"와 혼동하지 마십시오.
val networkName = data.getString( "network_name" ) // 광고를 게재한 network의 표시 이름
val adUnitId = data.getString( "max_ad_unit_id" ) // MAX Ad Unit ID
val thirdPartyAdPlacementId = data.getString( "third_party_ad_placement_id" ) // 광고의 placement ID (있는 경우, bidding에는 없을 수 있음)
val adFormat = data.getString( "ad_format" ) // 광고의 ad format (예: "BANNER", "MREC", "INTER", "REWARDED")
}
}
override fun getCommunicatorId(): String
{
return "«your_company_name_in_snake_case»"
}
}
"revenue"가 -1인 경우, 이는 오류를 나타냅니다.