【Monaca】nend広告を一定の間隔で更新させる

Monacaでnend広告を一定の間隔で更新させることができるか挑戦してみた。
※注意事項
1.Monacaデバッガー上での動作確認であり、リリース版での動作については未確認。
2.広告更新後のバナーをタップした場合、収益が計上されるかについては未確認。
3.広告更新ごとに通信が発生するため、更新のタイミングやアプリの使用時間によってユーザーにパケット代の負担をかけることになる。
4.index.html上で動作させる必要がある。(8/14追記)

広告タグのスクリプト(nendAdLoader.js)が実行されると、複数の広告用タグが埋め込まれる。
スクリプトを動的に実行すれば広告を更新させることができるが、埋め込まれたタグを削除しないと更新ごとにタグが追加されてしまう。

広告表示テスト用広告コードを実行する。

すると、2行目(3行目の内容は省略)、10行目、11行目のタグが埋め込まれる。

広告を更新させるには、2行目(div)、10行目(script)に埋め込まれたタグ、動的にスクリプトを実行するために8行目(script)のタグを削除する必要がある。
※11行目は、一度削除してしまうと二度と埋め込まれなくなるので削除しない。

実際の広告コードに切り替えて実行すると、1分おきに広告の更新を確認することができた。
2016081301
     ↓
2016081302
     ↓
2016081303
     ↓
2016081304
     ↓
2016081305

※8/17追記
nendCommon.init()を実行すると、広告が更新(初期化)されることがわかった。

参考サイト – Monacaでnend広告のリフレッシュ方法について

ただし、10行目(script)に埋め込まれたタグは更新ごとに追加されるので削除する必要がある。
また、nendCommon.init()は一般には未公開のため、使用には要注意。

【Monaca】Onsen UI 選択したデータを前画面に渡す

JavaScript + Onsen UI V2版はこちら。

※Onsen UI + AngularJSを使用。

ons-navigatorpushPage()popPage()を利用すれば、次画面に進み、前画面に戻ることが実現できる。
しかし、次画面で選択したデータを前画面に渡す方法は記載がない。
$rootScope.$broadcast()を利用して親コントローラ(page1Controller)にデータを渡し、$scope.$on()で受け取ればよい。

Page1で「ここをタップ」をタップし、Page2で「1000」をタップすると、Page1に戻り「1000」と表示される。
2983291e-9b3c-42cf-b5bc-8094b371f7c9 4c4aee94-6c9d-419f-8ca4-138286fd7463 7693ddf9-229c-4d9f-8b0a-642ccabe47f2
Continue reading

Windows 10で突然SSDにアクセスできなくなる症状の対処方法

こちらも併せてご覧ください。

Windows 10無償アップグレードを利用してPC環境をWindows 7からWindows 10に乗り換えたが、突然フリーズする症状が発生して困っていた。
起動ドライブにSSDを使用しているが、突然そのSSDにアクセスできなくなり、起動しているアプリが真っ白になり閉じられない状態が発生する。
特にコーディングなど作業中に発生すると保存も何もできないため、すべてやり直しになってしまう。

いろいろと調査した結果、「Windows10+(Crucial) SSDな環境でディスクの使用率が100%になってハマった話」のサイトに記載されている方法で解決することができたできなかった

SATA(Serial ATA)には、LPM(Link Power Management)という消費電力制御の機能がある。
この機能には、HIPM(OSで制御)とDIPM(SSDで制御)の二つの方法があり、Windows 10はHIPMの設定になっているため、HIPM未対応のSSDを使用すると今回のような症状が発生するらしい。
LPMの対応確認は、「SSDの寿命を3倍へ「SSD最適化設定」」のツールを使用。

1.「スタート」→「右クリック」→「検索」→「regedit」と入力→「regedit」を管理者として実行。
2.「HKEY_LOCAL_MACHINE」→「SYSTEM」→「CurrentControlSet」→「Control」→「Power」→「PowerSettings」→「0012ee47-9041-4b5d-9b77-535fba8b1442」→「0b2d69d7-a2a1-449c-9680-f91c70521c60」と進む。
3.「Attributes」の値を「0」と入力し、PCを再起動する。
4.再起動後、「スタート」→「設定」→「システム」→「電源とスリープ」→「電源の追加設定」→「電源プランの選択またはカスタマイズ」→「プラン設定の変更」→「詳細な電源設定の変更」と進む。
5.「ハードディスク」→「AHCI Link Power Management – HIPM/DIPM」の設定を「DIPMActive」に変更して「OK」ボタンを押下し、PCを再起動する。LPMがオフになる。
6.マザーボードのBIOSを表示し、SATAポートのホットスワップをすべて有効にする。
※8/5、太字を追加。
2016080501

※8/10
症状がまったく同じだったのでSSDの消費電力制御を疑ったが、起動中のアプリを終了させると発生するのでメモリを疑ってみた。
memtest86+で確認したところ、メモリの合計が16GB(4GBx4または8GBx2)の場合、途中でハングアップすることがわかった。
現在、8GB(4GBx2)で安定に動作しているので、とりあえずこれで様子を見る。

続編はこちら

一長一短!アドネットワーク比較

Monacaで開発したAndroidアプリの広告に、nend、i-mobile、Ad Generationのアドネットワークを利用している。
7月1日~29日までのインプレッション数、クリック数、報酬額を比較してみた。

2016073001

まずはi-mobile。
クリック数は高いが報酬額はかなり低いことがわかる。
例えば、11日はAd Generationとクリック数がほぼ同じに対し、報酬額は約1/4だ。
在庫切れなのか出会い系が多く表示される傾向があり、フィルタをかけると楽天カードが表示される。
平均クリック数7.7、平均単価3.6円と不満が残る。

次にAd Generation。
こちらはその日その日でばらつきがありすぎる。
クリック数がゼロの日もある。
Ad Generationは複数のアドネットワーク(ADPRESSO、Zucksなど)の配信比率を変更することができるが、おそらく在庫切れで同じ広告が表示されている可能性が高い。
平均クリック数4.1、平均単価7.7円と単価についてはまずまずか。

最後にnend。
1クリック0.15円などあまりにも単価が低すぎるため、7月10日~14日に配信を停止し、一部アプリは15日からバナー広告からネイティブアド広告に移行を行っている。
ネイティブアド広告は新規の単価が9円ということもあり、後半から巻き返しが見られた。
未対応のアプリも早めにネイティブアド広告に切り替えたい。
平均クリック数3.8、平均単価6.3円、2週間に限定すると平均クリック数5.5、平均単価7.5円。

i-mobileは、クリック数は稼げるが低すぎる単価が残念だ。
ただ、ほかが稼げない日でも稼いでくれるし、単価15円の日もあり、その点は捨てがたい。
Ad Generationは、アドネットワークの配信比率を調整してどう変わってくるか。
nendは、ネイティブアド広告に救われた感じ。
このあと低単価に切り替わったら、また新規で広告を貼り直すか、完全に切り捨てるか。

AndCが2016年8月にアドネットワークのサービスを終了するとのこと。
appCも4月に終了しているし、今後も撤退する業者が増えることが予想され、新たな収益化を考えた方がよさそうだ。

nend広告をバナーからネイティブアドに切り替える

20172602

前回、「nend広告に見切りをつけることにした」で既存アプリのnend広告の配信を停止したが、現在は再開している。
最新のバージョンではnendのバナー広告をはずした仕様だが、旧バージョンでは画面デザインの都合上、空白エリアが発生するため、1円でも収入が得られるなら・・・という理由で再開した。

しかし、再開の理由はもう一つある。
新しく広告を設置すると、単価9円から始まるという仕組みだ。
画像と説明文が表示されるネイティブアド広告を導入すれば、単価1~3円のバナー広告より収益アップが狙える、画面ごとにバナー広告とネイティブアド広告を使い分ければ効果的ではないかと考え、以下のように広告を設置した。
※バナー広告はi-mobileとAd Generation、ネイティブアド広告はnendを使用。

20172604 20172603

Monacaの場合、アプリを起動すると再起動するまで広告を更新させることができない。
※実際にできないことはないが、広告タグが実行するごとにタグが自動的に追加されるので、そのタグを削除する必要がある。
また、実現したとしても数十秒おきに通信も発生するため、ユーザーにパケット代の負担もかかる。

ユーザーに複数の広告を見てもらうには、今回のようにアプリ側でひと工夫すれば可能となる。

ホリエモンこと堀江貴文氏の著書「儲かる会社の作り方」という10年以上前の本に、「取引先を分散して貸し倒れリスクを減らす」という記述がある。

そのとおりだと思う。
私の場合、nendのほかにi-mobileを使用している。
単価はだいたい2~7円、まれに15円のときもある。
お互いのメリットやデメリットをうまくカバーできれば、リスクを減らすことができるだろう。

【Monaca】i-mobile広告を既存ブラウザで表示する

前回、nend広告を既存ブラウザで表示する方法を紹介した。

i-mobileの広告でも同じことができる?できない?
答えはできる。
スタック・オーバーフローなどでnend広告に関する質問がいくつか投稿されているが、基本的に広告がどのように表示されているか、掲載されたコードがどのように動いているか、確認されていない方が多いと思われる。

i-mobileの広告を既存ブラウザで表示するには、nendと同様のコードを利用することで実現できる。
divタグのid名をnend_adspaceからimobile_adspotdiv1に書き換えるだけで済む。
つまり、リンク先のaタグを探すために、親要素となるdivタグを指定している。

※nend、i-mobile共に320×50サイズのバナーの場合。