API比較.com

いろんなAPIやSaaSをまとめたり比較してみたりしています

SMS送信APIを何に使うか、どこを使うか - Twilio, Nexmo, Tropo, Clickatell, AOSSMS, EXLINK SMSを比較してみた

前回の記事 は、予想以上に多くの方にお読みいただけたようで、大変光栄です。

apihikaku.hatenablog.jp

今回は、近年、ユーザ向けの通知チャネルとして再注目されている(ような気がする)SMS送信APIについてまとめてみました。

※各サービスの機能や価格は2016年5月の執筆時点のものです。間違いがあれば、コメントにてご指摘ください。

SMSとは?

SMSとはShort Message Serviceの略で、電話番号を使ってやり取りできるメッセージングサービスのことです。

SMSの歴史は長く、1984年にGSM携帯電話サービス(欧米での携帯電話サービス規格)のひとつとして発案されたそうです *1。 当時の携帯電話はインターネット接続やWebブラウザ、Eメールの機能をもっておりませんでしたので、携帯電話でテキストメッセージがやり取りできるというのは、画期的なサービスだったと思われます。

SMSの仕組み

SMSは、前述のとおり、そもそもインターネットサービスの普及以前から存在していたサービスで、電話回線の利用を前提として設計されたシステムです。電話をかける際の呼び出しや着信信号をやりとりするための「シグナリングチャネル」という帯域に、やり取りするテキストメッセージを載せて運ぶことで、メッセージングを実現しています。

つまり、SMSを送受信するには、お互いが電話番号を持っている必要があり、電話回線に制御コマンド(ATコマンド)を流しこんだり、相手方電話番号が契約している通信会社のメッセージセンタ(SMSC)に適切なプロトコル(SMPP)でメッセージを送り合ったりといった仕組みを整える必要があります。(ちなみに、SMPPはSMS Forumという非営利団体で標準化が進められていましたが、2007年にこの団体は解散してしまい、SMPPの仕様はオリジナルの設計者やその他団体から個別に入手するという方法しか残っていないようです *2。)

f:id:build_it:20160529092513p:plain

SMPP Protocol Specification 5.0: http://opensmpp.org/specs/smppv50.pdf より引用

なお、あくまで電話回線でのメッセージ送信が前提となりますので、1送信毎に、所定の通信料金が発信者側に課金されます。また、シグナリングチャネルという限られた帯域でやり取りする関係で、メッセージサイズは140文字程度(実際には140オクテットまでだが、マルチバイト文字が混在したメッセージの場合などは、通信事業者により扱いが異なる)に制限されています。 日本語や半角英数字が混ざったメッセージを送る前提であれば、1メッセージあたり、全体で70文字に収められるよう にメッセージを設計しましょう。

なぜSMSで送るのか - ユーザから見た手軽さと確実さを活かせるシーンで使う

ここまで読むと、インターネットの普及とは別の系譜を辿ってきたSMSは、Webシステムとの相互接続性/運用性がよろしくないように思えます。しかしながら、SMSはインターネットメール(Eメール)と比較して、以下のような強力なメリットがあります。

  • 電話番号だけでやり取りできること
  • 受信するための特別なユーザ設定が不要であること
  • (仕組み上)Push通知であること
  • 送達確認ができ、かつ開封率が高いこと

一般にSMSはEメールと比較して開封率が高いと言われており *3、ここが近年SMSが再注目されている理由のひとつだと思います。読者の方のなかにも「Eメールアプリの未読バッジはスルーできるが、メッセージ(SMS, MMS)アプリの未読バッジはチェックしてしまう」という方は多いのではないでしょうか。

一方で、電話番号だけで手軽に送受信できるSMSは、ユーザが承諾していない広告の大量配信など、不適切なメッセージ配信の温床となるリスクをも抱えています。このため、国内の通信事業者は、URLや電話番号が含まれるSMS配信を制限するなどの対策をとっています。また、迷惑SMSを配信していると見られる事業者の情報は、通信事業者間で共有されるようになっているようです。これまで耳にしたことはありませんが、迷惑SMSの送信事業者や発電話番号に対し、送信制限などのペナルティが課せられる(課せられている)可能性は十分にあります。 濫用は禁物です

近年、WebサービスにおけるSMSの用途として、よく目にするようになったものは、サービスサインアップ時の本人確認や二段階認証プロセスへの組み込みです。SMSの特性をうまく活用した利用方法だと思います。

SMSは、それを 受信するユーザにとって「送達の確実さ」「確認の手軽さ」の価値がもっとも出るポイントで利用する ことをオススメします。

WebサービスからSMS送信する場合、ゲートウェイを自前でつくる必要は無い

では、改めて「WebサービスからSMSを送りたい」という場合、どのようなシステムを作れば良いのでしょうか。結論から書いてしまうと、SMS送受信そのものを主体としたサービスを開発/運用する(つまり、自らがSMSゲートウェイサービスを運用する)というケースでもなければ、SMS送受信のシステムを自前で開発/運用するメリットはほとんどありません。

前項で述べたとおり、SMSを送受信するための仕組みを自前で実装するということは、現実的には、まずSMS送信元の電話番号や回線を適切に管理運用しなければなりません(当然、基本料金がかかります)。また、その上で、回線の制御コマンド送受信や、各通信事業者のSMSCに向けた手続き(SMPPクライアント/サーバ)をおこなうゲートウェイを自前実装し、運用するということになります。オープンな技術情報や実装も限られています *4 ので、自前の実装と運用で、商用品質を担保するのは簡単ではないでしょう。

かたやSMS送信を代行してくれるゲートウェイサービスが数多く存在しており、どのサービスも1通あたり数円〜十数円でメッセージを送信できるようになっています。Webサービスの連携、たとえば、本人認証や各種サービスからの通知、メッセージングの補完程度でのSMSを使うという話であれば、 外部のSMSゲートウェイサービス/SaaSを利用するのが現実的 だと思います。

比較軸の整理

それでは、各種SMSゲートウェイサービスを比較検討するにあたって、比較軸を整理していきましょう。今回は、比較軸を4つに整理してみました。

送達率 - 数値が測定/公表されているか、キャリア直収があるか

前項で「SMSのメリットのひとつに確実さがある」というような書き方をしていますが、実は、厳密にいうと、確実には届きません。確実に届かない理由として、以下の4点が挙げられます。

  • 相手方の契約通信事業者(のショートメッセージセンタ)への経路を(所定の時間内に)確保できないことがある
  • 通信事業者を経由する間にフィルタリングされてしまう
  • 相手方の契約または端末がSMSに対応していない(SMS無し契約や、モバイルルータを使っているなど)
  • (そもそも) 開封してもらえない

サービスを選ぶ上で気にすべきは、最初の2点ですが、国内ユーザ向けにSMSを配信することを考えているのであれば、もっとも考慮すべきは2点目のフィルタリングです。フィルタリングの詳細ルールは公開されておらず、メッセージ内容だけではなく、発信元の電話番号、その他の要因でメッセージがフィルタされることもあるようです。

SMSゲートウェイサービスを比較していると、「送達率xx%」というような謳い文句が目に入る事があります。ゲートウェイサービスは、SMS送信に利用する電話番号を保有し、サービスのユーザに順次割り当てて運用していますので、自身の電話番号が配送中にフィルタされないようにしっかり管理しなければなりません。「送達率xx%」を提示するのは、「利用者が迷惑SMS事業者じゃないか監視しているよ」「ちゃんと運用しているよ」の現れともいえます。

ゲートウェイサービスを見るときには「送達率は何%なのか」という点を、ぜひ気にしておいてください *5。もし、ゲートウェイサービスの担当者と対面して説明を受ける機会があれば、自社ゲートウェイサービスの「送達率は何%なのか」「どのように測定しているのか」を把握しており、かつ説明できるかどうか、は重要な比較ポイントです。

また、上記のような事情もありますので、SMSが確実に送達するということを前提としたUX設計をすることはリスクを伴います。万一SMSが届かなかったときに、SMSナシでもサービス利用を続行できるよう なサービスフローを作っておいたほうが良いでしょう。

もし、送達率に関連して、もう1点補足しておきます。開発/運用中のWebサービスが日本国内ユーザを対象としたサービスでしたら、「国内通信事業者(キャリア)への直収の有無」も確認してみてください。

幾つかのSMSゲートウェイサービスは、通信事業者への "直収接続(あるいは直接接続)" により、通信事業者によるフィルタリングを回避できるような仕組みを提供しています。直収があるのとないのとでは送達率が格段に違います。(基本的に、この条件に対応したゲートウェイサービスの利用開始には、事前審査を伴います。迷惑SMS事業者でないことを確認するためだと思われます。)

配信性能/導入実績 - 同様の用途で他社での採用事例があるか

前述のとおり、SMSはユーザに対するリマインダーや認証のシーンでは有効に作用しますが、大量の一斉配信には向きません。そもそも電話回線を使うという送信の仕組みを考慮すると、メールや、アプリPush通知のように秒間数百数千という配信性能が出せるチャネルではなさそうです。

それでも、(たとえば災害時の安否確認など、)適切な箇所で使用できるのであれば、SMSのリアルタイム性は効果的です。また、ゲートウェイサービスによっては、APIレベルでは一斉配信を受け付けた上で、非同期でスロットルを調整しながら配信してくれるものもあります。配信のキューイングの仕組みを自前でつくるのは、そこそこ手間がかかりますので、どのような手順で一斉配信がおこなえるのか、どの程度の配信性能が出るのかを確認しておくと良いでしょう。

また、導入企業実績が公開されているようであれば、その傾向を見ることで、そのゲートウェイサービスの特色をうかがい知ることもできます。

料金体系/費用 - 1通あたりの料金に倍程度の差がでることも

ゲートウェイサービス毎に意外と差が出ているのが、料金です。 私が調べた限り、SMSを「国際SMS」として海外から送るようになっているか、国内サービスから直収接続を経由して送っているかによって、大きく差が出ているように思います。

ほとんどのサービスがSMS 1通あたりの課金となりますが、事前にポイントなどを購入しておいてから送信するプリペイド料金体系もあれば、送信実績に応じて請求料金が決定する体系もあるようです。自社サービスでのSMS利用シーンや送信ボリュームなどに応じて、ゲートウェイサービスを選択するのが良いでしょう。

API機能の充実度 - 送信を含め、送達状況確認や受信処理など用途に合う機能をサポートしているか

SMSをWebサービスと連携させて送受信させるということであれば、APIで利用できる機能を確認しておきたいところです。SMSゲートウェイと言いつつも、専用Web画面やデスクトップアプリケーションのみの提供で、APIが提供されていないサービスもあります。

最低限、送信APIくらいは無いと、Webサービスとの連携は厳しいと思いますが、その他にも、送達確認ができるAPIや、SMS受信時のコールバック先Webhookを指定できるようなAPIもあります。ゲートウェイサービスが、サービス側でSMSにより提供したい機能をサポートしているかどうか、どのような機能が利用できるのか、API単位で確認しておくと良いでしょう。

サービス別比較

それでは、各種SMSゲートウェイサービスを比較してみます。SMSゲートウェイサービスは、とくに欧米諸国で数多く提供されているのですが、ここでは、以下の条件で国内外から6つのサービスを集めてみました。

  • 料金が公開されていること(一部料金のみ表示で、詳細は個別見積もり というケースを含む)
  • 日本国内通信事業者(電話番号)に対応していること
  • APIが提供されていること

評価は筆者の主観です。あくまで参考としていただき、また、必要に応じてここに挙げられていないサービスもチェックしてみてください。

Twilio - APIも関連情報も充実。オンラインサインアップですぐに使い始められる

f:id:build_it:20160529094225p:plain

https://www.twilio.com/

項目 評価 備考
送達率 国内送達率93%
配信性能/導入実績 電話番号あたり1件/s の配信性能. 電話番号追加購入により拡張可能. 一斉配信APIは無し. 国内外サービス事業者での導入実績多数
料金 電話番号料100円/月 + SMS送信料8円/通〜
API機能の充実度 エラー通知コールバック有り. SMS受信対応. その他送信ステータス等各種リソースへはREST APIで対応

Twilioは2007年創業。電話系のシステムをクラウドでAPI化したサービスの大手です。SMSはもちろん、音声電話の発着信や通話録音、通話中のプッシュキー操作すらAPIにまで取り込んでおり、電話系サービスとWebサービスを統合するオープンなAPIであればファーストチョイスになり得ます。オンラインサインアップから、すぐに試してみることができるのも、開発者にとっては嬉しいポイントです。

ただし、SMSはすべて国際SMSとなり、キャリア直収の事実については明記がありません。送達率が直収を謳っているサービスと比較して低めになっていることに注意してください。他の事業者と比べて割安ではありますが、日本国内のユーザ向けにトランザクショナルなメッセージングを使う前提で導入するのは、一考の余地があります。

なお、日本国内では株式会社KDDIウェブコミュニケーションズが代理店となっており、日本語による技術サポートや、オープンなドキュメントも充実しています。freeeや福岡市(行政サービス)など、国内での導入実績も多数。Hackathonなどの開発イベントでもAPIスポンサーとしてよく参加されているようで、着実に開発者コミュニティができ上がってきている印象です。

Nexmo - 大手ネットサービスでの採用事例多数。各種言語でのクライアントライブラリも充実

f:id:build_it:20160529093900p:plain

https://www.nexmo.com/

項目 評価 備考
送達率 送達率の表記は無いが, Adaptive Routingなる独自アルゴリズムで送達状況を監視改善しているとのこと
配信性能/導入実績 30件/s の配信性能. airbnbやAlibaba, LINEなどの大手ネットサービスでの導入実績あり.
料金 € 0.0628(約7.7円)/通〜
API機能の充実度 SMS受信対応. 配信情報はHTTP API経由で取得可.

Nexmoは2010年に英国にて創業されたNEXMO社により提供されている、SMSゲートウェイサービスです。現在は本社を米国に移し、全世界45カ国、350の通信事業者へのSMS送信や音声電話サービス統合をサポート。SMSゲートウェイの大手に数えられます。

Twilioと同じく、日本国内キャリアへの直収の事実については明記がありません。日本国内でもユーザが多い大手ネットサービスでの導入実績があるため、大きな懸念にはならないかもしれませんが、送達率については気にしておいた方が良さそうです。

なお、SMSの送達率や配信性能を高めるために、独自アルゴリズムによるルーティング技術を運用しているとのこと。各種プログラミング言語向けにクライアントライブラリを提供するなど、技術周りにはかなり力を入れていることがうかがえます。興味深いところでは、AWSのSNS(Simple Notification Service)と連携するといった機能もあります。

日本語のドキュメントはありませんが、日本国内では株式会社ガプスモバイルや株式会社INSTが代理店となっているようです。

Tropo - 海外系サービスで唯一キャリア直収を謳うも、詳細ドキュメントは非公開

f:id:build_it:20160529094250p:plain

https://www.tropo.com/

項目 評価 備考
送達率 99.9%. ドコモ, au, ソフトバンクへの直収あり
配信性能/導入実績 配信性能に関する明記なし. 導入実績紹介は2件のみ
料金 14円/通〜
API機能の充実度 APIあり, SMS受信にも対応とのことだが, SMS関連APIの詳細ドキュメントを発見できず.

Tropoは1999年に米国で設立された、SMSゲートウェイサービスの大手に数えられるもののひとつで、42カ国でサービスを提供。日本国内ではアクロスウェイ株式会社が代理店として販売/サポートをおこなっています。Tropoは、現在はネットワーク機器などを扱うCisco社のグループ企業となっており、SMSに加えて音声系などの電話サービスを統合したクラウドテレフォニーサービスとなっています。海外発サービスでありながら、国内のキャリア直収にも対応しているのは珍しいケースです。

歴史やユーザ規模の割に、SMS送受信に関連するAPIドキュメントが発見できず、また、導入実績があまり公開されていないのは、惜しいところです。ただし、無料トライアル利用ができるようですし、随時都内でTropoアプリ開発勉強会が開催されているようです。日本語ドキュメントなど、サポートにも力が入っている印象ですので、国内→グローバル展開を想定したサービスを構築されている場合は、コンタクトをとってみるのも良いかもしれません。

Clickatell - SMSゲートウェイの老舗。APIの対応プロトコルの多さと、送信料の安さは圧倒的

f:id:build_it:20160529094809p:plain

https://www.clickatell.com/

項目 評価 備考
送達率 送達率の表記無し
配信性能/導入実績 配信性能の表記無し. 通知や二段階認証などでの導入事例は多数
料金 4.3円/通〜
API機能の充実度 REST, HTTPだけでなく, SOAPやFTP, SMTP(メールからの変換)もサポート. 送達状況はダッシュボード画面で確認可能

Clickatellはモバイルインターネットが普及する前の2000年頃から米国にてSMSゲートウェイサービスを展開している老舗です。全世界で1000以上の通信事業者へのSMS送信をサポートしており、低コストでSMSを配送するためのルーティング網を構築してきているようです。SMS当たりの送信料の安さは圧倒的です。

手元で試した限り、日本国内(au)へのURLを含むSMS送信は問題なくおこなえましたし、導入事例も多数あるのですが、実運用に載せるには送達率や配信性能についての表記が無い(見つけられないだけかもしれませんが..)という懸念点があります。

QNAPやZendeskといった、日本でも馴染みのあるプロダクトやOSSに組み込まれたSMS送信機能も、Clickatellを使っているようです。日本国内での代理店やサポート体制、日本語ドキュメントは見当たりませんでしたが、低料金でSMSを送るという用途にはフィットするかもしれません。

AOSSMS - 国内での導入実績多数。キャリア直収もあり

f:id:build_it:20160529094949p:plain

http://aossms.com/

項目 評価 備考
送達率 99.9%. ドコモ, au, ソフトバンクへの直収あり
配信性能/導入実績 1000万通/月. 日清食品やANAなどナショナルブランド他、国内170社以上に実績あり
料金 15円/通〜 (条件に応じて個別見積)
API機能の充実度 APIあり, SMS受信や送達確認にもAPI対応とのことだが, 詳細ドキュメントは非公開.

AOSSMSはAOSモバイル株式会社が提供するSMSゲートウェイサービスです。サービス開始時期は明記されていませんが、国内の著名なブランド100社以上での導入運用実績があり、SMS利用では珍しく、キャンペーンでの導入事例も紹介されています。

残念ながら詳細API仕様は非公開となっており、オンラインサインアップのみで利用開始、というわけにはいかないようです。しかしながら、国内キャリアへの直収を謳っており、送達率は圧倒的です。サイト上には、ユーザからのSMS受信によるAPI連携にも対応しているとの表記があり、幅広いアプリケーションに活用できそうです。

f:id:build_it:20160529095226p:plain

http://www.exlink.co.jp/service/SMS/index.html

項目 評価 備考
送達率 送達率に関する明記なし
配信性能/導入実績 配信性能に関する明記なし. ゲーム会社や金融機関等での導入実績あり
料金 2001通以上の配信で、12円/通〜
API機能の充実度 APIあり, SMS受信や送達確認にもAPI対応とのことだが, 詳細ドキュメントは非公開.

EXLINK SMSは株式会社エクスリンクが提供するSMSゲートウェイサービスです。サイトを見に行くとわかるのですが、SMSに関する一般的/技術的なドキュメントが非常に充実しており、SMS関連技術への造詣の深さがうかがえます。オンプレミスでのサーバ構築にも対応しているとのことですが、私が調べた限り、日本国内でSMS配信システムをオンプレで構築できることを謳っている事業者は、他に見当たりませんでした。

気になるのが、「圧倒的な送達率」とありながら、具体的な数値が公表されておらず、また、キャリア直収に関する言及も見当たりません。API仕様も公開されていないようで、サービスにSMS送信機能を組み込むに当たって、どのような開発プロセスになるのかは見積もりづらいところです。

とは言え、国内で比較的オープンな情報が少ないSMSに関して、これだけの情報を公開していることは、関連技術力の高さ、サポート力の強さが期待できます。国内の他の事業者と比較したときの割安感もありますので、しっかりしたサポートを受けながらサービス構築したいという場合には、心強いパートナーになりそうです。

まとめ

WebサービスからSMS送信をおこなう際に活用できるSaaSとして、Twilio, Nexmo, Tropo, Clickatell, AOSSMS そして EXLINK SMS をそれぞれ紹介しました。

SMSゲートウェイサービスは、携帯電話でのEメールが先に普及した日本国内でのサービスプレイヤーが比較的少なめではありますが、国内の事業者はキャリアへの直収サービスを武器に、高い送達率をアピールしています。しかしながら、Twilioなどの海外事業者も90%以上の送達率を公表しており、どの程度送達率にこだわる必要があるかは、連携させるWebサービス次第でしょう。海外のSMSゲートウェイサービスは、API仕様を公開していたり、オンラインサインアップで手軽に始められたり、比較的割安だったりという点で、国内の事業者とは、また違ったメリットがあります。

どのサービスも特色がありますし、ここで紹介しきれなかったサービスも多くあります。本稿での比較軸や内容が少しでも参考になれば幸いです。

もしこの記事が参考になったら、スターやブックマークやSNSでのシェアをいただけると、別の記事を書く励みになります!よろしくお願いします。

*1:https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9

*2:https://en.wikipedia.org/wiki/Short_Message_Peer-to-Peer#History

*3:SMSの開封率については、各SMSゲートウェイ事業者が様々な統計を公表しています

*4:https://en.wikipedia.org/wiki/Short_Message_Peer-to-Peer#Implementations

*5:検索するときはDelivery RateやDeliverabilityなどのwordで調査するのがオススメです