荷兰短信市场概览
区域设置名称: | 荷兰 |
---|---|
ISO 代码: | 荷兰 |
地区 | 欧洲 |
移动国家代码 (MCC) | 204 |
拨号代码 | +31 |
市场状况:荷兰拥有高度发达的移动市场,日本 whatsapp 数据 智能手机普及率几乎达到全球平均水平。虽然 WhatsApp 等 OTT 消息应用程序在 P2P 通信中非常受欢迎,但短信对于商业消息传递仍然至关重要,尤其是用于身份验证、通知和营销。市场由三大运营商主导:KPN、VodafoneZiggo 和 T-Mobile Dutch,拥有强大的基础设施,可满足消费者和 A2P 消息传递需求。
荷兰短信的主要功能和能力
荷兰提供全面的短信功能,包括双向消息、串联支持和号码可携带性,同时对商业消息传递保持严格的合规性要求。
双向短信支持
荷兰全面支持双向短信,让企业能够与客户进行互动消息传递。除了标准合规性要求外,没有其他特殊限制,非常适合客户服务和互动用例。
串联消息(分段短信)
支持:是的,所有主要运营商都完全支持串联。
消息长度规则:GSM-7 编码的标准长度为 160 个字符,UCS-2 编码的标准长度为 70 个字符(拆分前)。
编码注意事项:GSM-7 支持标准拉丁字符,而 UCS-2 适用于包含特殊字符或非拉丁字母的消息。
MMS 支持
MMS 消息会自动转换为 SMS,并嵌入指向媒体内容的 URL 链接。这确保了可靠的交付,同时保持了与收件人共享丰富媒体内容的能力。
收件人电话号码兼容性
号码可携性
号码可携性在荷兰全面可用,允许用户在更换运营商时保留自电话号码业务线索己的电话号码。此功能已非常完善,不会对消息传递或路由产生重大影响。
向固定电话发送短信
荷兰不支持向固定电话号码发送短信。尝试向固定检查是否有拆解电话号码发送消息将导致发送失败,并且 API 将返回 400 响应,错误代码为 21614。这些消息不会出现在日志中,也不会产生费用。
荷兰短信合规与监管指南
荷兰受《GDPR》和《荷兰电信法》的约束,由消费者和市场管理局 (ACM) 监督。企业必须遵守有关数据隐私、同意管理和营销传播的严格规定。
同意和选择加入
明确同意要求:
-
-
- 发送营销信息前必须以书面或数字方式确认选择加入
- 同意必须是自愿、具体和知情的
- 建议在营销活动中使用双重选择
- 必须保存同意记录并方便获取
- 在选择加入过程中必须明确说明消息传递的目的
-
HELP/STOP 和其他命令
-
-
- 必须支持荷兰语和英语关键字:
- STOP/STOPPEN 用于选择退出
- HELP/HULP 寻求帮助
- INFO 了解更多信息
- 命令必须在 24 小时内处理
- 确认信息应以与收到的命令相同的语言发送
- 必须支持荷兰语和英语关键字:
-
请勿致电/请勿打扰登记
-
-
- 荷兰设有“Bel-me-niet 登记处”(禁止致电登记处)
- 必须定期与注册中心同步
- 企业必须:
- 在活动开始前核对登记册上的数字
- 至少每 30 天更新一次禁止列表
- 24 小时内尊重退出请求
- 维护内部禁止联系名单
-
时区敏感度
-
-
- 允许发送时间:08:00-21:00 CET
- 紧急通知不受时间限制
- 考虑荷兰的假期和周末
- 在消息传递系统中实现自动传递窗口
-
荷兰的电话号码选项和短信发件人类型
字母数字发件人 ID
运营商网络能力:完全支持
注册要求:无需预先注册,允许动态使用
发送者 ID 保存:是,发送者 ID 在所有主要网络中均会保存
长代码
国内与国际:均支持完整功能
发件人 ID 保存:是,保留原始发件人 ID 配置
时间:立即至 24 小时
用例:
-
-
- 交易消息传递
- 双重身份验证
- 客户服务沟通
- 营销(经同意)
-
短代码
支持:目前不支持荷兰
配置时间:N/A
使用案例:N/A – 改用长代码或字母数字发件人 ID
受限制的短信内容、行业和用例
限制行业及内容:
-
-
- 赌博(除非获得荷兰当局许可)
- 成人内容或服务
- 未经授权的金融服务
- 处方药
- 未经适当披露的政治信息
-
内容过滤
运营商过滤规则:
-
-
- 链接必须来自批准的域
- 无过多大写字母
- 禁止误导性发件人信息
- 最多向同一收件人发送 5 条连续消息
-
避免阻塞的最佳实践:
-
-
- 使用一致的发件人 ID
- 保持规律的发送模式
- 避免使用 URL 缩短器
- 包括明确的退出说明
- 保持内容专业且相关
-
在荷兰发送短信的最佳做法
信息传递策略
-
-
- 尽可能将消息控制在 160 个字符以内
- 包含明确的号召性用语
- 使用收件人的名字进行个性化
- 保持一致的品牌声音
- 使用跟踪链接进行分析
-
发送频率和时间
-
-
- 每位收件人每月最多发送 4-5 条消息
- 尊重安静时间(21:00-08:00 CET)
- 避免在重大节假日期间发送
- 太空活动间隔至少 48 小时
-
本土化
-
-
- 主要语言选项:荷兰语和英语
- 考虑使用双语信息进行重要沟通
- 使用正确的日期格式 (DD-MM-YYYY)
- 考虑文化差异和偏好
-
退出管理
-
-
- 实时处理退出
- 发送退出确认
- 维护集中抑制列表
- 定期审核退出流程
- 记录退出日期和方法
-
测试和监控
-
-
- 在 KPN、VodafoneZiggo 和 T-Mobile 上进行测试
- 监控承运商的运送费率
- 跟踪参与度指标
- 定期对消息内容进行 A/B 测试
- 保持质量得分高于行业基准
-
荷兰的 SMS API 集成
Twilio
Twilio 通过其 REST API 为荷兰提供强大的 SMS 功能。身份验证使用帐户 SID 和身份验证令牌,并支持 A2P 消息传递所需的 +3197 前缀号码。
import { Twilio } from 'twilio';
// Initialize client with environment variables
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
// Function to send SMS to Netherlands
async function sendDutchSMS(
to: string,
message: string,
from: string
): Promise<void> {
try {
// Validate Dutch phone number format
if (!to.startsWith('+31')) {
throw new Error('Invalid Dutch phone number format');
}
const response = await client.messages.create({
body: message,
to: to, // Must be in E.164 format: +31612345678
from: from, // Your +3197 prefix number
});
console.log(`Message sent successfully: ${response.sid}`);
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
辛奇
Sinch 提供全面的短信服务,并可通过 RESTful API 访问。他们的服务支持荷兰的交易信息和营销信息。
import axios from 'axios';
class SinchSMSClient {
private readonly baseUrl: string;
private readonly apiToken: string;
constructor(serviceId: string, apiToken: string) {
this.baseUrl = `https://sms.api.sinch.com/xms/v1/${serviceId}`;
this.apiToken = apiToken;
}
async sendSMS(to: string, message: string): Promise<void> {
try {
const response = await axios.post(
`${this.baseUrl}/batches`,
{
from: 'YourBrand', // Alphanumeric sender ID
to: [to],
body: message,
},
{
headers: {
'Authorization': `Bearer ${this.apiToken}`,
'Content-Type': 'application/json',
},
}
);
console.log('Message sent:', response.data.id);
} catch (error) {
console.error('Sinch SMS error:', error);
throw error;
}
}
}
信息鸟
MessageBird(原名Bird)提供短信API服务,强力支持荷兰电信的需求。
import messagebird from 'messagebird';
class MessageBirdClient {
private client: any;
constructor(apiKey: string) {
this.client = messagebird(apiKey);
}
sendSMS(
recipient: string,
message: string,
originator: string
): Promise<void> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: originator,
recipients: [recipient],
body: message,
datacoding: 'auto', // Automatic encoding detection
}, (err: any, response: any) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
API 速率限制和吞吐量
-
-
- Twilio:每秒 250 条消息
- Sinch:每秒 100 条消息
- MessageBird:每秒 60 条消息
-
吞吐量管理策略:
-
-
- 实施指数退避重试
- 使用队列系统(Redis/RabbitMQ)处理大量数据
- 尽可能批量发送消息
- 监控速率限制标头
-
错误处理和报告
interface SMSError {
code: string;
message: string;
timestamp: Date;
recipient: string;
}
class SMSErrorHandler {
private errors: SMSError[] = [];
logError(error: SMSError): void {
this.errors.push(error);
console.error(`SMS Error [${error.code}]: ${error.message}`);
// Implement specific error handling based on code
switch(error.code) {
case 'invalid_number':
// Clean up invalid numbers from database
break;
case 'rate_limit_exceeded':
// Implement backoff strategy
break;
case 'delivery_failed':
// Queue for retry
break;
}
}
}
回顾和其他资源
关键要点
-
-
- 合规第一
- 始终获得明确同意
- 24 小时内尊重退出请求
- 维护适当的文件
- 技术要求
- 使用 +3197 前缀号码进行 A2P 消息传递
- 实施适当的错误处理
- 监控配送率
- 最佳实践
- 在工作时间内发送(08:00-21:00 CET)
- 本地化内容(荷兰语/英语)
- 定期跨运营商测试
- 合规第一
-
下一步
-
- 审查荷兰电信法
- 实施适当的同意管理
- 设置监控和报告。