コンテンツにスキップ

S2S Rewarded Callback API

AppLovinのサーバーは、定義した外部サーバーに対して、サーバー間リワードコールバックを作成できます。 これらのコールバックは、アプリのユーザーがリワード広告のアクションを完了し、その結果としてユーザーがリワードの対象となったことを通知するものです。 これにより、リワード広告のアクションを完了せずにリワードを取得しようとする悪意のあるユーザーを阻止できます。

はじめに

AppLovinのサーバーは、MAXメディエーションを通じて配信されるリワード広告をユーザーが完了した後、外部エンドポイントにコールバックを送信できます。 どのエンドポイントがこれらのリクエストを受信するかを定義してください。 コールバックは、HTTP または HTTPSGETリクエスト形式です。 AppLovinは広告完了後すぐにこれらのコールバックを送信しますが、数分遅れることがあります。 インプレッションとコールバックの間に発生する遅延を補正するために、インプレッションタイムスタンプマクロを使用できます。

エンドポイントからの応答がないまま5秒が経過すると、コールバックリクエストはタイムアウトします。 コールバックリクエストがタイムアウトした場合、AppLovinはコールバックを最大2回再試行します。

これらのコールバックは、任意のリワード広告ユニットのEdit Ad Unitページで「Server Side Callback URL」の値を設定することによって構成できます。

https://myrewardedserver.com/rewards?idfa={IDFA}&user_id={USER_ID}&event={EVENT_ID}&token={EVENT_TOKEN}

利用可能なマクロ

以下の表にあるマクロのいずれかをコールバックURLに組み込むことができます。上記のURLの例は、{IDFA}{USER_ID}{EVENT_ID}{EVENT_TOKEN}のマクロを組み込んだものです。 AppLovinのサーバーは、エンドポイントにコールバックする際に、これらのマクロ名を正確な値に置き換えます。

名前説明
{AD_UNIT_ID}MAX広告ユニットID(16桁の16進文字列)9ad0816ac071552a
{AD_UNIT_NAME}広告ユニット名(URLエンコード済み)My%20App%20Banners
{AMOUNT}ユーザーに付与するために選択した通貨の金額。各広告ユニット編集ページでこれを設定します。100
{CC}ユーザーの2文字の国コードgb
{CURRENCY}ユーザーに付与するために選択した通貨の種類(URLエンコード)。各広告ユニットの広告ユニット編集ページでこれを設定します。coins
{CUSTOM_DATA}連携から渡されたカスタムデータ(URLエンコード)。AppLovinは、文字列を8192文字以下に維持することを推奨しています。my%20custom%20data
{EVENT_ID}ユニークイベントID、40桁の16進文字列8dc948013d71f…b226e08
{EVENT_TOKEN}sha1( EVENT_ID + Your-Event-Key )e000949f6d851…a43cf31
{EVENT_TOKEN_ALL}sha256(アルファベット順に1つのマクロすべて、URLデコード+イベントキー)eba615583ed59…5f218702a97a
{IDFA}iOS IDFAまたはGoogle 広告ID860635ea-…3b30b94
{IDFV}IDFV4CD1C3C4-…9387E60
{IP}ユーザーのIP(IPv6値はURLエンコード済み)162.1.1.1fe80%3A%3A…890a%0A
{NETWORK_NAME}MAXアドネットワーク名APPLOVIN_BIDDING
{PACKAGE_NAME}アプリのパッケージ名(Android)またはバンドルID(iOS)。URLエンコード。com.test.app
{PLACEMENT}パブリッシャー定義のMAX広告プレースメント名(URLエンコード)Launch%20Screen
{PLATFORM}プラットフォームandroidios
{TS}広告ロード時間のタイムスタンプ(整数、epochからの経過秒数)1546300800
{USER_ID}パブリッシャー定義のユーザーID(URLエンコード)。最長8192文字。7634657898

1注:EVENT_TOKEN がマクロの1つである場合、「All macros alphabetically」文字列から省略されます

広告プレースメント名を設定

以下のコードスニペットは、広告ユニットにプレースメント名を追加する方法を示しています。 プレースメント名の値は、ポストバックリクエストの {PLACEMENT} マクロを置き換えます。

ActionScript
AppLovinMAX.setBannerPlacement(«ad-unit-ID», «placement»);
Blueprint

Ad Unit Identifier. Create Banner: Ad Unit Identifier. Banner Position: Bottom Center. Set Banner Placement: Ad Unit Identifier, Placement: YOUR_BANNER_PLACEMENT.

C++
UAppLovinMAX::CreateBanner(«ad-unit-ID», «position»);
UAppLovinMAX::SetBannerPlacement(«ad-unit-ID», «placement»);
C#
MaxSdk.CreateBanner(«ad-unit-ID», «position»);
MaxSdk.SetBannerPlacement(«ad-unit-ID», "«placement»");
Dart
AppLovinMAX.createBanner(«ad-unit-ID», «position»);
AppLovinMAX.setBannerPlacement(«ad-unit-ID», «placement»);
GDScript
AppLovinMAX.createBanner(«ad-unit-ID», «position»);
AppLovinMAX.set_banner_placement(«ad-unit-ID», «placement»);
Java
adViewAd.setPlacement( "«placement»" );
JavaScript (Cordova)
AppLovinMAX.createBanner(«ad-unit-ID», «position»);
AppLovinMAX.setBannerPlacement(«ad-unit-ID», «placement»);
JavaScript (React Native)
AppLovinMAX.createBanner(«ad-unit-ID», «position»);
AppLovinMAX.setBannerPlacement(«ad-unit-ID», «placement»);
Kotlin
adView.setPlacement( "«placement»" )
Lua
applovin.create_banner(«ad-unit-ID», «position»)
applovin.set_banner_placement(«ad-unit-ID», «placement»)
Objective-C
adView.placement = @"«placement»";
[adView loadAd];
Swift
adView.placement = "«placement»"
adView.loadAd()

内部ユーザーIDを設定

以下のコードスニペットは、独自の内部ユーザーIDを使用してユーザーにタグ付けする方法を示しています。 ユーザーIDの文字列の最大文字数は8192文字です。

AppLovinMAX.setUserId("«user-ID»");

リワード広告の金額と通貨を設定

リワード額と通貨にアクセスするには、リワードコールバックをオーバーライドします。

private void OnRewardedAdReceivedRewardEvent(string adUnitId, MaxSdk.Reward reward, MaxSdkBase.AdInfo adInfo)
{
print("Rewarded user: " + reward.Amount + " " + reward.Label);
}

カスタムデータ

以下のコードスニペットは、カスタム文字列データをポストバックに追加する方法を示しています。 この文字列データは、これらのポストバックの{CUSTOM_DATA} マクロを置き換えます。 AppLovinでは、文字列の長さを8192文字未満にすることを推奨しています。

バナーおよびMREC
MaxSdk.SetBannerCustomData("«ad-unit-ID»", "«custom-data»"); // Banners
MaxSdk.SetMRecCustomData("«ad-unit-ID»", "«custom-data»"); // MRECs
インタースティシャル広告
MaxSdk.ShowInterstitial(«adUnitIdentifier», «placement», «custom data»);
リワード広告
MaxSdk.ShowRewardedAd(«adUnitIdentifier», «placement», «custom data»);
ネイティブ広告
nativeAdLoader.setCustomData( "«custom data»" );