Использование MailChimp API V3.0 для создания кампании.
Я хочу создать кампанию, которая рассылает пользователям с определенным интересом. Похоже, что это возможно в документах, но я попробовал каждую перестановку, которую я могу придумать. Я могу создать кампанию в порядке, если я оставляю в этом сегменте. У кого-нибудь есть пример кода PHP, который это сделает?
Кажется, что интересы обрабатываются странно, поскольку вы не включаете категорию интересов при настройке интересов пользователей через API. Я не уверен, как это влияет на создание кампании.
Я заставил это работать, хотя нет никакого способа получить его из текущих документов, в которых не указан условный тип ‘Interests’ или возможные значения ‘op’ для него.
Интересы должны быть сгруппированы по категориям интересов (в некоторых частях пользовательского интерфейса они называются «Группы»).
Вот код JSON для члена plot_opts массива получателей:
"segment_opts": {
"match": "any",
"conditions": [{
"condition_type": "Interests",
"field": "interests-31f7aec0ec",
"op": "interestcontains",
"value": ["a9014571b8", "5e824ac953"]
}]
}
Вот версия массива PHP с комментариями. Член ‘match’ относится к правилам в массиве ‘условий’. Сегмент может соответствовать любому, всем или ни одному из условий. В этом примере есть только одно условие, но другие могут быть добавлены в качестве дополнительных массивов в массиве условий:
$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
)
)
)
);
Вы также можете отправить в сохраненный сегмент. Суть в том, что сегмент_id должен быть int. Я сохранял это значение в БД как varchar, и он не будет работать, если не приведен к int.
(я использую use \ 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' => '[email protected]',
'title' => 'New Article Notification'
)
]);