使用 MailChimp API V3.0 创建具有动态细分的活动
Create campaign with dynamic segment using MailChimp API V3.0
使用 MailChimp API V3.0 创建活动。
我想创建一个发送给具有特定兴趣的用户的活动。看起来这在文档中是可能的,但我已经尝试了我能想到的每一种排列。只要省略 segment_ops 成员,我就可以很好地创建活动。有人有 PHP 代码示例吗?
似乎对兴趣的处理很奇怪,因为您在通过 API 设置用户兴趣时没有包括兴趣类别。我不确定这对活动创建有何影响。
我已经开始工作了,API 定义可以在这里找到 https://us1.api.mailchimp.com/schema/3.0/Segments/Merge/InterestSegment.json
兴趣必须归入兴趣类别(在 UI 的某些部分称为 'Groups')。
这是收件人数组 segment_opts 成员的 JSON:
"segment_opts": {
"match": "any",
"conditions": [{
"condition_type": "Interests",
"field": "interests-31f7aec0ec",
"op": "interestcontains",
"value": ["a9014571b8", "5e824ac953"]
}]
}
这是带注释的 PHP 数组版本。 'match' 成员引用 'conditions' 数组中的规则。该段可以匹配任何、所有或 none 个条件。此示例只有一个条件,但其他条件可以作为附加数组添加到 'conditions' 数组中:
$segment_opts = array(
'match' => 'any', // or 'all' or 'none'
'conditions' => array (
array(
'condition_type' => 'Interests', // note capital I
'field' => 'interests-31f7aec0ec', // ID of interest category
// This ID is tricky: it is
// the string "interests-" +
// the ID of interest category
// that you get from MailChimp
// API (31f7aec0ec)
'op' => 'interestcontains', // or interestcontainsall, interestcontainsnone
'value' => array (
'a9014571b8', // ID of interest in that category
'5e824ac953' // ID of another interest in that category
)
)
)
);
您也可以发送到已保存的部分。问题在于 segment_id 必须是整数。我将这个值作为 varchar 保存在数据库中,除非转换为 int,否则它不会工作。
(我正在使用 \DrewM\MailChimp\MailChimp;)
$segment_id = (int) $methodThatGetsMySegmentID;
$campaign = $MailChimp->post("campaigns", [
'type' => 'regular',
'recipients' => array(
'list_id' => 'abc123yourListID',
'segment_opts' => array(
'saved_segment_id' => $segment_id,
),
),
'settings' => array(
'subject_line' => 'A New Article was Posted',
'from_name' => 'From Name',
'reply_to' => 'info@example.com',
'title' => 'New Article Notification'
)
]);
使用 MailChimp API V3.0 创建活动。
我想创建一个发送给具有特定兴趣的用户的活动。看起来这在文档中是可能的,但我已经尝试了我能想到的每一种排列。只要省略 segment_ops 成员,我就可以很好地创建活动。有人有 PHP 代码示例吗?
似乎对兴趣的处理很奇怪,因为您在通过 API 设置用户兴趣时没有包括兴趣类别。我不确定这对活动创建有何影响。
我已经开始工作了,API 定义可以在这里找到 https://us1.api.mailchimp.com/schema/3.0/Segments/Merge/InterestSegment.json
兴趣必须归入兴趣类别(在 UI 的某些部分称为 'Groups')。
这是收件人数组 segment_opts 成员的 JSON:
"segment_opts": {
"match": "any",
"conditions": [{
"condition_type": "Interests",
"field": "interests-31f7aec0ec",
"op": "interestcontains",
"value": ["a9014571b8", "5e824ac953"]
}]
}
这是带注释的 PHP 数组版本。 'match' 成员引用 'conditions' 数组中的规则。该段可以匹配任何、所有或 none 个条件。此示例只有一个条件,但其他条件可以作为附加数组添加到 'conditions' 数组中:
$segment_opts = array(
'match' => 'any', // or 'all' or 'none'
'conditions' => array (
array(
'condition_type' => 'Interests', // note capital I
'field' => 'interests-31f7aec0ec', // ID of interest category
// This ID is tricky: it is
// the string "interests-" +
// the ID of interest category
// that you get from MailChimp
// API (31f7aec0ec)
'op' => 'interestcontains', // or interestcontainsall, interestcontainsnone
'value' => array (
'a9014571b8', // ID of interest in that category
'5e824ac953' // ID of another interest in that category
)
)
)
);
您也可以发送到已保存的部分。问题在于 segment_id 必须是整数。我将这个值作为 varchar 保存在数据库中,除非转换为 int,否则它不会工作。
(我正在使用 \DrewM\MailChimp\MailChimp;)
$segment_id = (int) $methodThatGetsMySegmentID;
$campaign = $MailChimp->post("campaigns", [
'type' => 'regular',
'recipients' => array(
'list_id' => 'abc123yourListID',
'segment_opts' => array(
'saved_segment_id' => $segment_id,
),
),
'settings' => array(
'subject_line' => 'A New Article was Posted',
'from_name' => 'From Name',
'reply_to' => 'info@example.com',
'title' => 'New Article Notification'
)
]);