使用Mailchimp API,我取消订阅列表的用户.然后我立即发送一个新请求,使用Mailchimp API重新订阅同一个用户.
我收到400条错误错误请求:
(...)最近签署了许多名单; 我们暂时不允许更多注册
我等待新查询多长时间?如何解决这个问题?
0b1*_*011 13
5分钟后,1天后,2天后,7天后重试.
我们遇到了大量订阅这个问题,这个(无用的)响应:
HTTP 400 Bad Request
Server: openresty
Content-Type: application/problem+json; charset=utf-8
Content-Length: 301
X-Request-Id: {requestId}
Link: <https://us14.api.mailchimp.com/schema/3.0/ProblemDetailDocument.json>; rel="describedBy"
Date: {date}
Connection: close
Set-Cookie: _AVESTA_ENVIRONMENT=prod; path=/
Run Code Online (Sandbox Code Playgroud)
{
"type": "http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/",
"title": "Invalid Resource",
"status": 400,
"detail": "{email} has signed up to a lot of lists very recently; we're not allowing more signups for now",
"instance": "{instance}"
}
Run Code Online (Sandbox Code Playgroud)
该链接的错误,词汇是没有太大的帮助之一:
400
错误的请求
您的请求无法处理.
这是一般错误.
我们从直接调用MailChimp API切换到在我们的数据库中保存所有订阅请求(我承认,我们应该一直这样做).这个表看起来像:
CREATE TABLE `subscribes` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`email` varchar(254) NOT NULL,
`json` varchar(500) NOT NULL,
`subscribed` datetime NOT NULL,
`ip` int(10) unsigned NOT NULL,
`retry` datetime DEFAULT NULL,
`attempts` int(11) DEFAULT 0,
`synced` datetime DEFAULT NULL,
`failed` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `unsynced` (`synced`,`failed`,`retry`,`id`)
);
Run Code Online (Sandbox Code Playgroud)
然后我们设置一个cron作业来定期检查需要与查询同步的订阅,如下所示:
SELECT `id`
FROM `subscribes`
WHERE `synced` IS NULL
AND `failed` IS NULL
AND (`retry` IS NULL OR `retry` < UTC_TIMESTAMP())
Run Code Online (Sandbox Code Playgroud)
对于每个订阅,attempts递增.如果订阅有效,synced则使用当前时间戳更新.否则,retry将根据值设置为将来的日期attempts,或者failed如果我们用完了尝试,则设置为当前时间戳.
初始延迟(在最近的尝试之后)如下:
如果订阅完全重试这些延迟,则需要10天,7小时和5分钟.
我们目前只有大约3个星期的测试时间,但它产生了有用的结果,所以我想我现在在这里发布:
after last | after first | % subscribed
-----------|-------------|-------------
- | - | 73.45%
5 minutes | 5m | 73.61%
1 hour | 1h 5m | 73.61%
6 hours | 7h 5m | 73.61%
1 day | 1d 7h 5m | 78.43%
2 days | 3d 7h 5m | 96.15%
7 days | 10d 7h 5m | 99.49%
Run Code Online (Sandbox Code Playgroud)
较短的延迟可以帮助解决网络错误或MailChimp api的临时问题(这是相当不常见的),而较长的延迟(1天和更长时间)解决"暂时不允许更多注册"问题.仍然有少量订阅在MailChimp中"成功"并标记为"已清理",但这是预期的,绝大多数订阅成功.
我等待新查询多长时间?如何解决这个问题?
我建议您运行自己的测试,看看哪些适合您!但是,如果你只想获得一些对别人有用的东西:
我建议在5分钟后,1天后,2天后和之后7天重试.可能在此之后再次捕获额外的.51%的订阅,但我没有数据来验证它是否可行.
延迟5分钟导致订阅人数增加0.16%.这有助于及时订阅某人即将发送的电子邮件,这可以避免"我已注册但未收到新闻通讯"的投诉.这并没有为我们捕获许多用户,但是对于MailChimp api(或网络中的某个地方)短暂中断的那些时间,这很好.
1小时和6小时的延误对我们没有任何作用,所以可能没有必要.但结果可能会有所不同 同样,这对于短暂的中断更为重要,因此在发生这种情况之前,您并不知道最佳延迟.确定最符合您需求的产品并与之保持一致.
延迟1天的人数增加了4.7%以上(约11%的重试成功).如果在他们尝试订阅的那天有网络或MailChimp api问题,这将使第二天订阅的人获得.我会推荐.
延迟2天导致超过17.72%的人订阅(约80%的重试成功).绝对推荐.
延迟7天导致另外3.34%订阅(约80%的重试成功).推荐的.
注意:我们还没有自己测试1,2和7天的延迟.这可能是他们自己没有那么有用,但堆叠在一起是他们成功的原因(例如,2天延迟失败,但延迟3天7小时5分钟工作).
小智 6
This error message is related to a throttle that Mailchimp have in place to prevent spammers from inundating audiences with fake signups. When Mailchimp system recognizes that an email address is being added to a large number of audiences within a small window of time (or a variant of the address like with these alias addresses), we will throttle signup activity for that email address for up to 48 hours.
这是来自支持的回应。您必须等待 48 小时才能排除该电子邮件,或者您可以使用其他电子邮件,或者您可以从 Mailchimp 添加受众
| 归档时间: |
|
| 查看次数: |
3705 次 |
| 最近记录: |