Создайте кампанию с динамическим сегментом с помощью MailChimp API V3.0


Использование MailChimp API V3.0 для создания кампании.

Я хочу создать кампанию, которая будет рассылаться пользователям с определенным интересом. Похоже, что это возможно в документах, но я перепробовал все возможные перестановки, которые только мог придумать. Я могу создать кампанию нормально, если оставлю участника segment_ops. У кого-нибудь есть пример PHP-кода, который это сделает?

Кажется, что интересы обрабатываются странно, так как вы не включаете категорию интересов при настройке пользователей интересы через API. Я не уверен, как это влияет на создание кампании.

Author: ekad, 2016-03-04

2 answers

Я заставил это работать, хотя вы никак не сможете получить это из текущих документов, в которых не указан тип условия "Интересы" или возможные значения "op" для него.

Интересы должны быть сгруппированы по категориям интересов (в некоторых частях пользовательского интерфейса они называются "Группами").

Вот JSON для элемента segment_opts массива получателей:

 "segment_opts": {
        "match": "any",
        "conditions": [{
            "condition_type": "Interests",
            "field": "interests-31f7aec0ec",
            "op": "interestcontains",
            "value": ["a9014571b8", "5e824ac953"]
        }]
 }

Вот версия массива PHP с комментариями. Элемент "совпадение" ссылается на правила в массиве "условия". Сегмент может соответствовать любому, всем или ни одному из условий. В этом примере есть только одно условие, но другие могут быть добавлены в качестве дополнительных массивов в массив "условия":

$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
        )
    )

  )
);
 14
Author: Bob Ray, 2017-02-04 16:01:54

Вы также можете отправить в сохраненный сегмент. Суть в том, что segment_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'
    )
]);
 0
Author: MightyQ, 2017-05-23 23:01:04