酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

「アプリ内課金+広告 iPhoneプログラミング」が発売されます!

秀和システムさまより「アプリ内課金+広告 iPhoneプログラミング」が発売されることとなりました。大場知悟(id:tworks)さんとの共著です。

f:id:ch3cooh393:20140124114814j:plain

本書は、iOSアプリのゲームやアプリで使われているアプリ内課金や広告の実装するための手引書です。iPhoneプログラミングと銘打っておりますが、iOSにも適用できる内容です。

iOSでのアプリ内課金は、iTunesの課金サーバーとの通信がメインになります。非消費型、消費型、自動更新購読型のそれぞれの実装方法について書いております。

アプリ内課金と比較するとアプリに広告を掲載するのは簡単なのですが、一部ビルド設定を変更しないと実行時にクラッシュしたりします。その辺りの躓きやすいトラブルについても対策方法を書いております。

目次

Chapter 01 アプリ内課金と広告を理解する

  • 1.1 アプリ市場の現状
    • 1.1.1 iPhoneの普及とアプリの変化
  • 1.2 アプリ内課金を理解する
    • 1.2.1 有料アプリを購入してもらうためのアプローチ
    • 1.2.2 アプリ内課金(In-App Purchase)の登場による変化
    • 1.2.3 アプリ内課金を構成するもの
    • 1.2.4 アプリ内課金を実装する2つの方法
    • 1.2.5 プロダクトの種類
    • 1.2.6 登録可能なプロダクト
    • 1.2.7 自動更新購読型と非更新購読型の違い
    • 1.2.8 プロダクトの種類に迷ったら
  • 1.3 スマートフォンアプリ内の広告を理解する
    • 1.3.1 無料アプリの隆盛
    • 1.3.2 アプリに繋げるビジネスモデル
    • 1.3.3 広告ビジネスの流れ
    • 1.3.4 アプリ内広告の種類
  • 1.4 アプリ内課金+広告を1つのアプリに入れる魅力
    • 1.4.1 アプリ内に広告を入れることのメリット

Chapter 02 アプリ内課金を実装するための準備

  • 2.1 アプリ内課金の事前準備
    • 2.1.1 App IDの登録
    • 2.1.2 iTunes Connectで課金プロダクトの登録
    • 2.1.3 アプリ内課金のテスト用アカウントの登録
    • 2.1.4 まとめ
  • 2.2 アプリ内課金 - Store Kitの実装
    • 2.2.1 Store Kitの概念
    • 2.2.2 課金プロダクトの取得
    • 2.2.3 プロダクトの購入
    • 2.2.4 SKPaymentTransactionの特徴

Chapter 03 アプリ内課金の実装:単一の非消耗型と単一の消耗型

  • 3.1 単一の非消耗型プロダクトの取り扱い
    • 3.1.1 プロジェクトの作成と初期設定
    • 3.1.2 UI Outlet Actionの作成
    • 3.1.3 プロダクト取得処理
    • 3.1.4 購入処理
    • 3.1.5 テストサーバに接続して実行する
    • 3.1.6 過去に課金したユーザへのリストア処理を実装する
    • 3.1.7 購入中?購入完了(失敗)、リストア中?リストア完了(失敗)の処理を追加する
    • 3.1.8 まとめ
  • 3.2 単一の消耗型プロダクトの取り扱い
    • 3.2.1 消耗型プロダクトの登録
    • 3.2.2 購入可能アイテムの確認処理
    • 3.2.3 購入処理
    • 3.2.4 プロダクトをサーバからダウンロードする(レシートの確認とアイテムダウンロード)
    • 3.2.5 まとめ

Chapter 04 アプリ内課金の実装:自動更新購読型

  • 4.1 自動更新購読型の取り扱い
    • 4.1.1 自動更新購読型プロダクトの登録
    • 4.1.2 購入可能アイテムの確認処理
    • 4.1.3 購入処理
    • 4.1.4 プロダクトの有効期限を確認する(iOS 6以前)
    • 4.1.5 プロダクトの有効期限を確認する(iOS 7以降)
    • 4.1.6 動作確認
    • 4.1.7 まとめ

Chapter 05 さまざまなタイプの広告を実装する

  • 5.1 広告を実装する前に考えること
    • 5.1.1 広告収益だけで無料アプリの開発コストをペイできるか
    • 5.1.2 アプリ開発者が報酬を受け取るまでの流れ
    • 5.1.3 広告報酬の目安を試算する
  • 5.2 iAdの広告を採用する
    • 5.2.1 iAdの特徴
    • 5.2.2 iAd広告実装までの前準備
    • 5.2.3 iAdの広告を表示させる
  • 5.3 Google AdMobの広告を採用する
    • 5.3.1 AdMobの特徴
    • 5.3.2 Google AdMobのアカウントを取得する
    • 5.3.3 AdMobの広告を採用する
    • 5.3.4 インタースティシャル(全画面)広告を掲載する
    • 5.3.5 トラブルシューティング
  • 5.4 アイコン型の広告を採用する
    • 5.4.1 アイコン型の広告の特徴
    • 5.4.2 アスタのアカウントを取得する
    • 5.4.3 アプリの登録と広告を取得する
    • 5.4.4 アイコン型広告を表示させる
  • 5.5 AppBank Networkの広告を掲載する
    • 5.5.1 AppBank Networkの広告の特徴
    • 5.5.2 AppBank Networkのアカウントを取得する
    • 5.5.3 AppBank Networkの広告を掲載する

Chapter 06 アプリ内課金+広告タイプのアプリを作る

  • 6.1 課金と広告の仕様を考える
    • 6.1.1 仕様と販売形態
  • 6.2 課金の実装準備
    • 6.2.1 App IDの登録
    • 6.2.2 アプリ内課金プロダクトの登録
  • 6.3 アプリ内課金の実装
    • 6.3.1 プロジェクトの作成
    • 6.3.2 UIの実装
    • 6.3.3 OutletとActionの作成
    • 6.3.4 アプリ内課金の実装
  • 6.4 iAdの実装
  • 6.5 実行してみよう
  • 6.6 まとめ

Chapter 07 複数の課金パターンを提供するアプリを作る

  • 7.1 どのようなアプリを作成するか
    • 7.1.1 ゲームのアイテムを課金で販売する
  • 7.2 ゲーム課金アイテムの準備
    • 7.2.1 プロジェクトの作成と初期設定
    • 7.2.2 プロダクトの登録
    • 7.2.3 UI・Outlet・Actionの作成
  • 7.3 課金処理の実装
    • 7.3.1 アイテム課金処理の実装手順
    • 7.3.2 プロダクトIDの定義
    • 7.3.3 アプリ設定の読み書き処理
    • 7.3.4 プロダクト情報取得処理
    • 7.3.5 2つのTable Viewのための共通の実装
    • 7.3.6 取得した購入可能なプロダクト情報を表示する
    • 7.3.7 取得したプロダクト情報から購入済みプロダクト情報を表示する
    • 7.3.8 Table Viewの行選択
    • 7.3.9 上側のTable Viewの行選択の実装
    • 7.3.10 下側のTable Viewの行選択の実装
    • 7.3.11 リストアボタンのタップ処理
  • 7.4 動作確認
  • 7.5 まとめ

Chapter 08 アプリ内課金をテストする

  • 8.1 テスト用アカウントでサインインする
  • 8.2 App StoreのURL
    • 8.2.1 App Storeの2つの環境
    • 8.2.2 環境の判定はApp Storeが下す
  • 8.3 自動更新購読型プロダクト(Auto-renewable subscription)の有効期限と自動更新回数
    • 8.3.1 自動更新購読型の有効期限
    • 8.3.2 自動更新購読型の自動更新回数
  • 8.4 自動更新購読型はイスラエルで利用できない

Chapter 09 アプリ内課金と広告のトラブルシューティング

  • 9.1 Store Kitのハマりどころ
    • 9.1.1 動作テストのときにiTunes Storeが繋がらない
    • 9.1.2 プロダクト情報が取得できない
    • 9.1.3 自動更新購読型プロダクトの場合はプライバシーポリシー表示をするURLが必要
    • 9.1.4 プロダクト登録時にローカライズを意識する
  • 9.2 アプリ内課金でのリジェクト
    • 9.2.1 アプリ内課金を経由しない機能制限の解除や機能追加のアプリはリジェクト対象
    • 9.2.2 アプリ内課金で販売するものがアプリと関係なければリジェクト対象
    • 9.2.3 仮想通貨・仮想ポイントの販売はリジェクト対象
    • 9.2.4 アプリ内課金で得たコンテンツがiCloudバックアップ対象であればリジェクト対象
  • 9.3 広告会社が広告を配信しなくなるリスクを考える
    • 9.3.1 突然サービスが停止することがある
    • 9.3.2 対策はどうすれば良いのか
    • 9.3.3 どの広告を表示させるか
    • 9.3.4 広告定義ファイルを取得して広告を表示する
    • 9.3.5 広告の取得に失敗した時の処理

さいごに

既にAmazonでも予約が開始されているようです。過去の経験上Amazonでの初回在庫はとても少く、すぐに売り切れてしまうことが想定されますので、ご興味ありましたら是非お早めにご予約お願いいたしますね!

アプリ内課金+広告iPhoneプログラミング

アプリ内課金+広告iPhoneプログラミング

既に大場さんが「iOSアプリ内課金+広告」の本を共著で書きましたという記事を書かれているので、こちらも合わせてお読みください。