AngryAds
単価を見る

The Origin Of Rage

世界を変えたシステムは、
すべて誰かのブチギレから始まった。

Stripeは決済APIのクソさにキレた兄弟が、GitHubはコード共有の不便さにキレた天才が作った。

そして俺たちは、アプリを1再生0.1円で買い叩く既存の広告SDKにブチギレて、これを作った。 お前のユーザーベースは、そんな安値で切り売りするもんじゃない。

2

で組み込み完了

¥6固定

ストア遷移1回の単価

0

SDK利用料

[ スマホ画面モックアップ ] (5秒で終わる広告オーバーレイ)

Problem

既存の広告SDKに、
いい加減ブチギレていいはずだ。

😤

ユーザーが離脱する

15〜30秒の広告でユーザーがアプリから逃げる。レビューは★1が積み上がる。

🔊

BGMが潰される

広告の音声がユーザーの音楽・ゲームサウンドを問答無用で上書きする。

💸

単価が舐められている

大手SDKの1再生単価は0.1円レベル。ユーザーの我慢と引き換えの金額じゃない。

Real Money

AdMobから貰えるのは1再生0.1円か?
お前のアプリの価値は、そんなもんじゃない。

AngryAdsは5秒で完全終了。ユーザーに嫌がらせをする必要がない。 ストア遷移が1回成立すれば、確実に固定単価をぶんどれる。

よくある大手SDK

¥0.1/再生

30秒我慢させて、この端金。

AngryAds

¥6固定

ストア遷移1回で確実にこの金額。5秒しか奪わない。

広告主が支払う

完了・クリック単価

AngryAdsが取る

最小限の手数料

お前が受け取る

パブリッシャー収益

※ 遷移単価はデフォルト¥6固定(完了単価×10のクリック課金モデル)。振込サイクル・最低振込額は管理画面で確認できる。

Features

AngryAds SDKが選ばれる理由

WebView1行で組み込み完了

Flutter・React Native両対応。ネイティブコードは不要。 URLを渡すだけで広告の取得・再生・計測が全部完結する。

🎵

BGMを潰さない

SDKは起動時に mixWithOthers: true を要求。 iOSのAVAudioSessionと連携し、ゲームBGMや音楽を邪魔しない。

📡

postMessageで完全制御

impression・completed・click・no_adsなど豊富なイベントをpostMessageで通知。 報酬付与ロジックはホストアプリ側で自由に組める。

🛡

サーバー起点の完了確認

完了判定はサーバー側のトークン突合で行う。クライアントの自己申告による 不正報酬付与は物理的に不可能。

📱

OS別広告フィルタリング

SDKがUserAgentからiOS / Androidを自動検出し、対応ストアの広告だけを配信する。 Androidユーザーに無駄なApp Store広告は届かない。

💤

広告なし時のフォールバック

配信可能な広告がなければ即座に no_ads を通知。表示判断はホストアプリ側に委ねる。

Integration

5分で組み込み完了

ネイティブ実装は不要。WebViewにURLを渡すだけだ。

F

Flutter

// pubspec.yaml に webview_flutter を追加 WebViewWidget( controller: WebViewController() ..loadRequest(Uri.parse( 'https://sdk.angryads.example/sdk/angryads.html' '?api=https://api.angryads.example', )) ..addJavaScriptChannel( 'AngryAds', onMessageReceived: (msg) { // 完了イベントを受け取って報酬付与 final data = jsonDecode(msg.message); if (data['type'] == 'completed') { grantReward(); } }, ), )
RN

React Native

// react-native-webview をインストール <WebView source={{ uri: 'https://sdk.angryads.example/sdk/angryads.html' + '?api=https://api.angryads.example' }} onMessage={(e) => { const data = JSON.parse(e.nativeEvent.data); if (data.type === 'completed') { grantReward(); } }} // iOS BGM継続 allowsInlineMediaPlayback mediaPlaybackRequiresUserAction={false} />

iOS — BGM継続のための追加設定

// AppDelegate.swift に追加(BGMを潰さないために必須) try? AVAudioSession.sharedInstance().setCategory( .ambient, options: .mixWithOthers )
[ 実アプリに広告オーバーレイが表示されているスクリーンショット ]

Event Reference

postMessage イベント一覧

SDKからホストアプリへ送信されるイベントだ。

type 発火タイミング 推奨アクション
audio_config SDK起動直後 iOS: AVAudioSessionをambientに設定
no_ads 配信可能な広告がない WebViewを非表示にする / 代替コンテンツを表示
impression 動画の再生開始 ゲームを一時停止するなど
completed ✕ボタン押下(視聴完了) 💰 報酬付与はここで
click ジャンプボタンタップ 計測・追加報酬付与など
error ネットワークエラー等 WebViewを非表示にする

ユーザーIDの紐付け(任意)

URLパラメータに user_id を渡すと、 インプレッションと完了データにユーザーIDが記録される。 サーバー側での不正検知や分析に使え。

'https://sdk.angryads.example/sdk/angryads.html' + `?api=https://api.angryads.example&user_id=${userId}`

Cold Under The Rage

ここまで怒り狂ってまいりましたが、
資金管理とセキュリティに関してだけは、平常心でご説明させてください。

報酬のお振り込みは、Amazon・Google をはじめとする世界的プラットフォームでも採用されている 決済インフラ「Stripe Connect」を基盤に構築しております。 本人確認(KYC)を完了していただいたうえで、確認済みの日本国内の銀行口座へ、 安心して報酬を現金化していただけます。

🔒

Stripe Connect 基盤

大手プラットフォームでも採用実績のある決済インフラを利用し、資金移動を安全に処理いたします。

🪪

本人確認(KYC)

本人確認手続きを完了したお客様とのみ、資金のやり取りを行っております。

🏦

国内銀行口座への着金

確認済みの日本国内の銀行口座へ、安全に着金いたします。

FAQ

よくある質問

SDKの利用に費用はかかりますか?

SDK自体の利用料は無料。広告が完了・クリックされた際に発生する収益の一部がプラットフォーム手数料になる。

対応プラットフォームは?

WebViewが動く環境ならほぼ対応可能。動作確認済みはFlutter (webview_flutter) と React Native (react-native-webview)。iOS / Androidどちらも対応。

広告の表示タイミングはアプリ側で制御できますか?

できる。WebViewの表示・非表示はホストアプリが完全制御する。 SDKはロードされた瞬間に広告取得・再生を始めるので、表示したいタイミングでWebViewを出すだけでいい。

広告なしの場合はどうなりますか?

配信可能な広告がなければ no_ads が即座に発火する。WebViewを非表示にするか、代替コンテンツを出すかはアプリ側で判断しろ。

不正な完了通知を防ぐ仕組みはありますか?

完了確認はサーバー側のトークン突合で行う。再生開始時に発行されたトークン(3分有効・使い捨て)を ✕ボタン押下時にサーバーへ送り、突合が成功した場合のみ完了とみなす。 クライアントによる自己申告は通らない。

0.1円で買い叩かれるのは、今日で終わりだ。

利用料無料・登録不要でデモ環境を試せる。組み込みから動作確認まで5分。

組み込みドキュメントを見る → お問い合わせ
[ イメージ画像 or イラスト ]