reach について
メールマーケティングに Hostinger Reach API を使うためのリファレンススキルです。連絡先管理、条件に基づくセグメント作成、送信者プロフィールを扱い、API リクエストと Python、TypeScript、PHP SDK の例を掲載しています。
主な機能
- 01連絡先の作成、一覧表示、削除
- 02購読状態による連絡先の絞り込み
- 03条件演算子を使ったセグメント作成
- 04セグメントの詳細と連絡先の表示
- 05送信者プロフィールの確認
- 06Python、TypeScript、PHP の例
活用シーン
- 01メールマーケティング用連絡先リストの管理
- 02反応状況や状態に応じた購読者の絞り込み
- 03送信者プロフィールとセグメント構成の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hostinger/ hostinger-agent-skills --skill reachインストール後、Claude Code で/reachを入力して読み込まれたか確認します。
詳細
Hostinger Reach(メールマーケティング)
Reach API は、メールマーケティング機能を提供します。連絡先の管理、ターゲットを絞ったキャンペーン向けのセグメント作成、送信者プロフィールの操作ができます。
目次
基本概念
連絡先
連絡先は、マーケティングシステムにおけるメールの受信者です。各連絡先には、基本情報(名、メールアドレス、姓)と購読ステータスがあります。ダブルオプトインが有効になっている場合、新しい連絡先は保留中のステータスで登録され、確認メールを受け取ります。
セグメント
セグメントは、特定の条件(メールアドレス、名前、購読ステータス、エンゲージメント指標など)に基づいて連絡先をグループ化します。セグメントでは、equals、contains、gte、lte、opened、clicked などの演算子を使った複雑なフィルタリングに対応しています。
プロフィール
送信者プロフィールは、キャンペーンの送信に使用するメールの識別情報を表します。各プロフィールには基本情報があり、アカウントに関連付けられています。
連絡先グループ
グループは、連絡先を整理するための機能です(現在は非推奨となっており、セグメントの使用が推奨されています)。
購読ステータス
連絡先には、メールを受信するかどうかを決定するさまざまな購読ステータスがあります。連絡先の一覧表示時に、ステータスをフィルターとして使用できます。
一般的なパターン
連絡先の作成と管理
# Create a new contact (direct)
curl -X POST "https://developers.hostinger.com/api/reach/v1/contacts" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"name": "John",
"surname": "Doe",
"phone": "+15551234567",
"note": "Met at conference"
}'
# Create a new contact (scoped to a specific sender profile)
curl -X POST "https://developers.hostinger.com/api/reach/v1/profiles/{profileUuid}/contacts" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"name": "John",
"surname": "Doe"
}'
# List contacts (paginated)
curl -X GET "https://developers.hostinger.com/api/reach/v1/contacts?page=1" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Filter contacts by subscription status
curl -X GET "https://developers.hostinger.com/api/reach/v1/contacts?subscription_status=active" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# List contact groups
curl -X GET "https://developers.hostinger.com/api/reach/v1/contacts/groups" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Delete a contact
curl -X DELETE "https://developers.hostinger.com/api/reach/v1/contacts/{uuid}" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
Python SDK:
from hostinger_api import Hostinger
client = Hostinger(api_token="YOUR_API_TOKEN")
# List contacts
contacts = client.reach.contacts.list(page=1)
for contact in contacts:
print(f"{contact.name} <{contact.email}>")
TypeScript SDK:
import { Hostinger } from "hostinger-api-sdk";
const client = new Hostinger({ apiToken: "YOUR_API_TOKEN" });
const contacts = await client.reach.contacts.list({ page: 1 });
for (const contact of contacts) {
console.log(`${contact.name} <${contact.email}>`);
}
PHP SDK:
use Hostinger\Api\HostingerApi;
$client = new HostingerApi('YOUR_API_TOKEN');
$contacts = $client->reach->contacts->list(['page' => 1]);
foreach ($contacts as $contact) {
echo "{$contact->name} <{$contact->email}>\n";
}
セグメントの操作
# List all segments
curl -X GET "https://developers.hostinger.com/api/reach/v1/segmentation/segments" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# Create a segment (e.g., engaged subscribers who opened emails)
curl -X POST "https://developers.hostinger.com/api/reach/v1/segmentation/segments" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Engaged Subscribers",
"logic": "and",
"conditions": [
{
"field": "subscription_status",
"operator": "equals",
"value": "active"
},
{
"field": "email_engagement",
"operator": "opened"
}
]
}'
# Get segment details
curl -X GET "https://developers.hostinger.com/api/reach/v1/segmentation/segments/{segmentUuid}" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
# List contacts in a segment (paginated)
curl -X GET "https://developers.hostinger.com/api/reach/v1/segmentation/segments/{segmentUuid}/contacts?page=1&per_page=50" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
プロフィールの管理
# List all sender profiles
curl -X GET "https://developers.hostinger.com/api/reach/v1/profiles" \
-H "Authorization: Bearer $HOSTINGER_API_TOKEN"
API リファレンス
連絡先
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET | /api/reach/v1/contacts | 連絡先の一覧を取得します(ページ分割、フィルター可能) |
POST | /api/reach/v1/contacts | 連絡先を作成します(直接作成) |
POST | /api/reach/v1/profiles/{profileUuid}/contacts | 送信者プロフィールに紐付けて連絡先を作成します |
GET | /api/reach/v1/contacts/groups | 連絡先グループの一覧を取得します |
DELETE | /api/reach/v1/contacts/{uuid} | 連絡先を削除します |
セグメント
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET | /api/reach/v1/segmentation/segments | すべてのセグメントの一覧を取得します |
POST | /api/reach/v1/segmentation/segments | 新しいセグメントを作成します |
GET | /api/reach/v1/segmentation/segments/{segmentUuid} | セグメントの詳細を取得します |
GET | /api/reach/v1/segmentation/segments/{segmentUuid}/contacts | セグメント内の連絡先一覧を取得します |
プロフィール
| メソッド | エンドポイント | 説明 |
|---|---|---|
GET | /api/reach/v1/profiles | 送信者プロフィールの一覧を取得します |
連絡先のクエリパラメーター
| パラメーター | 説明 |
|---|---|
page | ページ番号 |
group_uuid | グループ UUID でフィルタリングします |
subscription_status | 購読ステータスでフィルタリングします |
セグメント条件の演算子
| 演算子 | 説明 |
|---|---|
equals / not_equals | 完全一致 |
contains / not_contains | 部分一致 |
gte / lte | 以上/以下 |
exists | フィールドに値がある |
within_last_days / not_within_last_days | 日付範囲 |
older_than_days | N 日より前 |
opened / not_opened | メール開封のエンゲージメント |
clicked / not_clicked | メールクリックのエンゲージメント |
bounced / not_bounced | バウンスステータス |
delivered / not_delivered | 配信ステータス |
unsubscribed / not_unsubscribed | 購読解除ステータス |
ベストプラクティス
連絡先の管理
- 連絡先の一般的な作成には直接
POST /contactsエンドポイントを使用します。特定の送信者プロフィールに連絡先を紐付ける必要がある場合は、POST /profiles/{profileUuid}/contactsを使用します - 連絡先の整理には連絡先グループよりもセグメントを優先してください。グループは旧式の機能です
- メールマーケティング規制(GDPR、CAN-SPAM)に準拠するため、ダブルオプトインを有効にしてください
- バウンスした連絡先や購読を解除した連絡先を削除し、連絡先リストを定期的に整理してください
セグメンテーション
- 狭く正確にターゲティングするには、
andロジックを使用します - より幅広いオーディエンスにリーチするには、
orロジックを使用します - 再エンゲージメントキャンペーンでは、エンゲージメント演算子(
opened、clicked)と時間ベースの演算子を組み合わせます - オーディエンスの規模をプレビューするため、キャンペーンの前にセグメントを作成します
プロフィール
- 送信者プロフィールを認証して、メールの到達率を高めます
- キャンペーン全体で一貫した送信者情報を使用します
トラブルシューティング
連絡先にメールが届かない
- 購読状況を確認します。連絡先が購読解除済み、または保留中の可能性があります
- ダブルオプトインが有効な場合、連絡先は先にメールアドレスを確認する必要があります
- 連絡先のメールアドレスが有効で、バウンスしていないことを確認します
セグメントに連絡先が表示されない
- 条件と演算子が正しいことを確認します
logicフィールド(and/or)が意図と一致していることを確認します- すべての条件、またはいずれかの条件に一致する連絡先が存在することを確認します
連絡先の作成時に 422 検証エラーが発生する
- 必須フィールドが不足しています(メールアドレスは必須です)
- メールアドレスの形式が無効です
- システムに同じメールアドレスがすでに登録されています