読者です 読者をやめる 読者になる 読者になる

dskst's diary

Life and Tech Blog

Google Play/iTunes Connect で有料アプリ販売のための口座登録方法(2016年10月版)

f:id:dskst9:20161123213044j:plain

Google PlayApp Store で有料アプリ(アプリ内課金を含む)を販売するまで、何をしたらいいのか。というのをまとめておく。

Google Play

Googleはそんなに障壁はなく設定が可能。

  1. Google Play Developer Console にて販売アカウントのセットアップをする
  2. Google Payment Center (Payment Merchant Center?) でお支払い方法に口座情報を登録する
  3. 即座に有料アプリ販売は可能になる(以下、収益受取のために対応必要)
  4. 3営業日ほどで Google から登録した口座にデポジットが入金される(1$未満)
  5. Google Payment Center にて入金されたデポジットの金額を入力する
  6. 支払口座が有効になる

デポジットはどうするの?

6のデポジットで返却するの?どうしたらいいの?というのをGoogleに問い合わせたら、以下回答が。返却は不要とのこと。

Googleからのテストデポジットは、お客様の売上が確実にお客様の銀行口座に振り込まれるよう、お客様がMerchant Centerにご入力された銀行口座情報にお間違いがないかを確認するために実施しております。テストデポジットの金額はGoogleへ払い戻す必要はございません。

参考記事

https://support.google.com/payments/merchant/checklist/6012413?hl=ja https://support.google.com/googleplay/android-developer/#topic=3452890 https://support.google.com/googleplay/android-developer/answer/140504?hl=ja https://support.google.com/googleplay/android-developer/answer/3092739?hl=ja https://support.google.com/payments/merchant/answer/1619772?hl=ja

iTunes Connect (App Store)

Tax Infomation がわかりずらい。2週間あれば有料アプリ販売はできるだろう。

  1. iTunes Connect より Paid Applications Agreement に同意する
  2. Contact Information を登録する
  3. 会社住所を英語で登録
  4. Bank Info を登録する
    口座番号、口座名義、口座種類を入力する
  5. Tax Information を登録する
  6. Part 1: Identification of Beneficial owner
    • 3.Chapter 3 Status(entity type): Corporationなと適宜選択
    • 7.Mailing address: チェック
    • 8.U.S. taxpayer identification number (TIN), if required: 何も記載しない(後述の注意参照)
    • 9b.Forelgn TIN: 空欄
    • 10.Reference Number(s): 空欄
  7. Part 3
    • 14.I certify that: a をチェック
    • 15.Special rates and Conditions: チェックしない

EINって入力不要なの?

Tax Infomation はEINに"000000000"を入れるという情報もあるが、空欄でよい。 日本で事業をしているが"000000000"を入れる必要があるのか問い合わせると、以下回答がきた。

Thank you for your email. Kindly refer to “Tips for Completing W-8” and the IRS instructions within iTunes Connect prior to completing the form. Since every company’s situation is unique, it is advised that you speak with your tax professional for assistance.

Under our current model, application sales by non-U.S. developers on the App Store are not subject to U.S. tax withholding or reporting. Therefore, completion of Part III - Claim of Tax Treaty Benefits, is not required in order to certify your foreign status. In addition, you are not required to provide a U.S. taxpayer identification number (TIN) in Part I (line 8) when when certifying foreign status. Please note our system does require you to the specify the type of income your are receiving through the App Store on line 10 (W-8BEN) or line 15 (W-8BEN-E).

参考記事

http://d.hatena.ne.jp/shunsuk/20090522/1242997423 http://crunchtimer.jp/blog/technology/administration/1439/ https://origin-discussions-jp.apple.com/thread/10173991?start=0&tstart=0 http://blog.syuhari.jp/archives/1228 http://kentaro-shimizu.com/lecture/iphone/step4.html http://blog.kishikawakatsumi.com/entry/20090511/1242010376

その他

決済方法と支払先

少し経理的なお話も。
それぞれの手数料だけならいいのだが、 リバースチャージ課税なるものが存在する。
Apple は国内企業間の取引になるので、対象にはならないが Google はこの対象になるので注意が必要だ。

決済方法 決済手数料 手数料支払先 リバースチャージ課税対象
Google Play 販売価格(税込) * 30% Google Asia Pacific Limited(海外)
App Store 販売価格(税込) * 30% iTunes株式会社(国内) ×

リバースチャージ課税の適用条件は、ややこしいが下記にあるようにあまり対象になることはないようだ。

一般課税による申告で課税売上割合が95%未満である場合にのみ適用される

リバースチャージ方式とは?消費税法改正で課税方式が変わった!

入金サイクル

さいごに

有料アプリの販売設定は面倒なことが多く感じる。
1ヶ月くらい時間に余裕を持って設定を進めていくようにしないと、意外なところでハマったりするので、対応予定の方は早めにやってしまうのをおすすめする。

AWS/Kinesis + API Gateway + Lambda + DynamoDB を使ってみた

はじめに

サーバレスアーキテクチャだ!と興奮しながら Kinesis, API Gateway, Lamda,DynamoDB を使ったシステムを作ったお話。
細かい設定方法は要点毎にググった方が早いと思うので、Tipsを中心に。

本構成がだれかの役に立てば幸いです。

どんなシステムか

ざっくりと、下記のような感じ。

  1. バイスからデータを登録したい
  2. 並列でデータを登録したい(将来的に1000req/sec くらい)
  3. 登録したデータをWEBAPIで取得したい
  4. サーバ費用はお安く

要するに、

大量のデータを同時に登録できて、ついでに取得できるAPIも作ってよ。
もひとつついでに、サーバを新しく立てたくないし、保守もしたくないよ。

ってこと。

こんな要件を依頼された方はこの記事が参考になるかもしれない。

どんな構成か

f:id:dskst9:20160716214228p:plain

データ登録は

Kinesis -> Lambda -> DynaoDB

  1. Kinesis Stream にデータ登録
  2. Lambda で Kinesis からデータ取得
  3. 取得データを Lambda から DyanamoDB へ登録

データ取得は

API Gateway <-> Lambda <-> DynamoDB

  1. API Gateway から Lambada を呼び出す
  2. Lambda から DynamoDB にアクセスしてデータ取得
  3. API Gateway でデータを返却

どうやってつくったか

Kinesis -> Lambda -> DynaoDB

バイスからデータを投げるのであればやり方は色々ある。
私が候補に挙げたのは AWS IoT と Kinesis Stream だ。

AWS IoT ではなくKinesis を選択した。
理由はKinesis の方が安く、デバイスのシャドウとか使う要件がなかったので、IoTだと高機能すぎたから。

Kinesis へのデータ登録は Cognito を使用した方が本当はいい。
今回はクローズドデバイスだったので、 AWS SDKKinesis 直通にした。

  1. IAMロールをつくる
    Lamda が Kinesis にアクセスするために、 AWSLambdaKinesisExecutionRole のポリシーをアタッチしたIAMロールを作成する。
  2. データ登録用の Kinesis Stream をつくる
  3. DynamoDB をつくる
  4. Lambda をつくる
    1で作ったロールを割り当てる
    DynamoDB への処理行うファンクションを作成
  5. Kinesis と Lambda を連携する

Kinesis が大量のデータを一次請けしてくれるので、同時接続は安心して任せることができる。
Kinesis に溜まったデータを Lambda でコツコツと取得して DynamoDBへ放り込む。

Kinesis にデータが溜まり過ぎ、 Lambada に一気にデータが流れ込むと、 DynamoDB の書き込みキャパシティを食ってしまうので注意。
Lambda でデータ処理が追いつかない時などに発生する(エラーとかでずっとリトライするとか)

API Gateway <-> Lambda <-> DynamoDB

Lambda で関数作って API Gateway に登録するだけでAPIができてしまう。
しかも、APIのレスポンスやリクエストも事細かに設定ができるので、Lambda は取得の関数だけに集中できる。これは楽だなと思った。

  1. Lambda でDBからデータ取得する関数作成
  2. API Gateway でアクセスポイントを作成
  3. API Gateway から Lambda 関数を呼び出すように設定

API Gateway はかなりクセがある。
正直未だに全貌がわかっておらず、何がどこまでできるのわからない。
REST API を作る程度であれば瞬殺でいける。

つくってみて

一度やり方がわかれば爆速で開発ができそうだ。
何よりインフラのことを気にしないで、開発に集中できるのが素晴らしい。

実際に稼働させてみても大きな問題も発生せず安定おり、何かあっても即座にリソースコントロールできるのも安心だ。
ぜひみんなも使ってみてほしい。

Tips

以下、実装時に書いたQiitaの記事。

qiita.com

qiita.com

qiita.com

qiita.com

qiita.com

Tips for Kinesis Stream

  • シャードという単位で同時書き込み数が決まる
  • 1シャードと 1000req/sec で書き込みが可能
    書き込みする容量にもよるので注意
  • 最大25000req/secまで耐えれる
  • 書き込んだデータは24時間 Kinesis に保存される
    別途申請することで24時間以上も可能

Tips for Lambda

  • とにかく関数を登録すると動作する
  • バージョニング機能がある
  • バージョニングをエイリアスと紐付けれる
  • メモリ、CPUを変更できる

Tips for DynamoDB

  • 書き込みキャパシティ、読み込みキャパシティユニットは同時書き込み、読み込みと解釈する
  • Cloud watch 上は分間表示なのでキャパシティ計算の際は注意
  • 登録データの自動パージ機能はない、今後できるようになることを切実に願う

Tips for API Gateway

  • リクエスト、レスポンスなど柔軟にカスタマイズ可能
  • ステージを分けてデプロイが可能で、ステージごとに紐づくLambdaのエイリアスを設定できる
  • CORSを有効にするには設定が必要

人工知能入門におすすめの本やサイト

f:id:dskst9:20160515011130j:plain

人工知能入門におすすめ(&おすすめされた)本などのメモとして。 読みたいけどまだ読んでない本も含めまれてるので注意。

おすすめの本

人口知能は人間を超えるか ディープラーニングの先にあるもの

人口知能とはその歴史から、そしてこれから何ができるかという人工知能とはなんぞや?という入りとしておすすめ。
さくっと読めるページ数なのも◎

ロボットは東大に入れるか

ロボットは東大に入れるか (よりみちパン! セ) (よりみちパン!セ)

ロボットは東大に入れるか (よりみちパン! セ) (よりみちパン!セ)

新井先生の公演を聞く機会があり、東ロボプロジェクトは人工知能の限界(できること、できないことがなにか)を世間に伝えたいという。人工知能は「東大には入れません」と新井先生自身で言っていたのが、とても衝撃だった。
読みたい本。

知能の物語

知能の物語

知能の物語

かなり難しい内容だったけど、知能とは何なのか?というのを深掘りしていく。
いや、深掘りという表現以上に色々と考えさせられるので、おもしろく深い本だ。

深層学習 Deep Learning

深層学習 Deep Learning (監修:人工知能学会)

深層学習 Deep Learning (監修:人工知能学会)

おすすめされて未だ読めていない。
すすめてくれた方も難しいと言っていたので、上級者向けかも。

数学ガール

数学ガール (数学ガールシリーズ 1)

数学ガール (数学ガールシリーズ 1)

ディープラ―ニングと切っても切れない数学に対して苦手意識がある場合、この本はおもしろい。
ラノベっぽい感じで、高校生男女と数学を絡めた物語なので、読みやすく数学への拒否反応が少なくなる。
ちなみにシリーズ化している。

おすすめWEBページ

ニューラルネットワークと深層学習

http://nnadl-ja.github.io/nnadl_site_ja/index.html

ニューラルネットワークと深層学習において、これほど詳しくわかりやすく書いている本はないと私の人工知能先生が言っていた。
確かにすごい丁寧に書かれている、1ページの記載量が多すぎるのが辛いが。。

Qiitaの記事

色々読み漁っていたらストック溜まっていたので共有。(どれもバズった記事だが)
ディープラーニング自然言語関連が多かった。

ディープラーニング
自然言語

さいごに

まだまだ入門したばかりだがちょっとずつでもがんばっていこう。
こんなのおすすめの本があるよなどあれば、おしえてください(^^)