Pythonを使ってTwilio SMSの分析

こんにちは、チャールです。このブログでは、TwilioのSMSの様々な分析パターンについて説明します。例えば、Python のコードを使って配信数や配信率などを確認します。

はじめましょう!

SMSは個人的な交流だけでなく、企業が世界中の顧客に届けるための重要なコミュニケーションツールです。Twilioを使えば、企業は様々な国でSMSキャンペーンを効率的に管理し分析することができます。

Twilioアカウントの設定:

始める前に、有効なTwilioアカウントを持っている必要があります。まだ設定していない場合は、次の手順に従ってください:

1. サインアップまたはログイン:

Twilioのウェブサイトにアクセスし、新しいアカウントを作成するかすでにアカウントをお持ちの場合はログインしてください。

2. Twilio番号を取得:

ログイン後、「Phone Numbers」セクションに移動し、アメリカ合衆国(US)と日本(JP)の両方で電話番号を購入します。これらの番号がSMS対応であることを確認してください。

環境の準備:

このチュートリアルではPythonを使用します。Pythonがインストールされていることを確認してから、環境を設定しましょう:

pip install twilio

コーディングをかく。 ライブラリをインポートし、認証情報を設定します:

from twilio.rest import Client
# Twilio credentials
account_sid = 'YOUR_ACCOUNT_SID'
auth_token = 'YOUR_AUTH_TOKEN'
client = Client(account_sid, auth_token)

メッセージ送信関数を定義します:

def send_sms(from_number, to_number, body):
message = client.messages.create(
to=to_number,
from_=from_number,
body=body
)
return message.sid

アメリカ合衆国(US)と日本(JP)にSMSを送信します:

# Phone numbers
us_number = 'YOUR_US_NUMBER'
jp_number = 'YOUR_JP_NUMBER'
test_numbers = {'US': '+1xxxxxxxxxx', 'JP': '+81xxxxxxxxxx'}

# Send SMS
for country, number in test_numbers.items()
 sid = send_sms(us_number if country == 'US' else jp_number, number, 'Hello from Twilio!')
 print(f'Message SID {sid} sent to {country}')

配信ステータスを確認します:

def check_delivery_status(sid):
    message = client.messages(sid).fetch()
    return message.status

# Example Usage
status = check_delivery_status('YOUR_MESSAGE_SID')
print(f'Delivery Status: {status}')

配信率を分析します。 メッセージを送信した後、配信ステータスを収集し分析する必要があります。このスクリプトを変更して、ステータスを保存し、次に配信率を計算することができます:

delivery_results = {}
for sid in sent_message_sids:
    status = check_delivery_status(sid)
    delivery_results[sid] = status

# Calculate delivery rate
delivered_count = sum(1 for status in delivery_results.values() if status == 'delivered')
delivery_rate = delivered_count / len(delivery_results) * 100
print(f'Delivery Rate: {delivery_rate}%')

アメリカ合衆国(US)とTwilio JPの両方の番号をお持ちの場合は、上記のコードに従うことができます。私の場合、Twilio JPの番号がSMS設定されていなかったため、Twilio USの番号でのみコードをテストしました。私の完全なコードは次のとおりです。

import time
from twilio.rest import Client

# Twilio credentials
account_sid = 'YOUR_ACCOUNT_SID'
auth_token = 'YOUR_AUTH_TOKEN'
client = Client(account_sid, auth_token)

delivery_results={}

def send_sms(from_number, to_number, body):
    message = client.messages.create(
        to=to_number,
        from_=from_number,
        body=body
    )
    return message.sid

us_number = 'YOUR_US_NUMBER'

test_numbers = {'JP': '+81xxxxxxxxxx','US': '+1xxxxxxxxxx'}

def check_delivery_status(sid):
    time.sleep(3)
    message = client.messages(sid).fetch()
    return message.status

for country, number in test_numbers.items():
    sid = send_sms(us_number,  number, 'Hello from Twilio!')
    print(f'Message SID {sid} sent to {country}')
    if sid:
        status = check_delivery_status(sid)
        print(f'Delivery Status for message to {country}: {status}')
        delivery_results[sid] = status

delivered_count = sum(1 for status in delivery_results.values() if status == ['delivered','sent'])
delivery_rate = delivered_count / len(delivery_results) * 100
print(f'Delivery Rate: {delivery_rate}%')

アウトプット:

コードを実行してください。私が気づいたのは、配信率は0.0%でしたが、アメリカ合衆国(US)から日本(JP)へのメッセージ配信には3秒かかりましたが、USからUSへは1秒でした。

まとめ:

これらの手順に従えば、Twilioでさまざまな国のSMS配信率を分析することができます。Twilioは強力なプラットフォームを提供し、SMSアウトリーチ活動を管理して拡大することができます。この記事を参考にして、他の多くのパラメータを自由に実験することができます。

ありがとうございます!