Mailchimp API节点-为基于标签的列表创建广告系列

我正在使用Firebase云功能发出异步api请求,以便在mailchimp中为列表中的特定用户集创建广告系列。我在文档中读到,可以使用标记来完成此操作,从而可以构建自己的结构。我正在为非营利组织建立捐赠系统,希望标签代表当前被捐赠给的客户的名字。

以下是我的firebase函数。我被困在segment_opts对象上。我想根据列表成员是否具有与我的客户名称相同的标签来定义细分。

该文档说segment_opts是“一个表示所有细分选项的对象。该对象应包含一个save_segment_id以使用现有细分,或者您可以通过同时包含match和condition选项来创建新细分。”我没有设置其他任何细分,因此我想创建一个新的细分来指定包含客户名称的标签。

这篇文章帮助我达到了这一点。 Stackoverflow post

我现在看到该条件应该是细分类型,但是在下拉列表中我没有看到标签选项。这是文档参考的链接。 Reference

const response = await mailchimp.post('/campaigns',{
    type: 'regular',recipients: {
        list_id: functions.config().mailchimp.test,segment_opts: {
            "match": "any","conditions": match: 'any',conditions: [
                {
                    condition_type: 'StaticSegment',field: 'static_segment',op: 'static_is',value: ??? (Int),},],}
    },});

现在,我删除了segment_opts,并决定将广告系列发送到整个列表,直到我弄清楚如何按标记进行细分。这个版本可以正常工作并在我的mailchimp帐户中创建一个广告系列,并且可以从用户界面中看到文档中提供的细分选项,但是看不到按标签过滤的选项

    const response = await mailchimp.post('/campaigns',{
        type: 'regular',recipients: {
            list_id: functions.config().mailchimp.test,settings: {
            subject_line: `${firstName} has been funded!`,preview_text: `$${goal} has been raised for ${firstName}.`,title: `${firstName} has been funded`,from_name: 'Organization name',reply_to: 'org_email@gmail.com',});

这是Mailchimp仪表板中下拉选项的屏幕截图。

Mailchimp API节点-为基于标签的列表创建广告系列

iCMS 回答:Mailchimp API节点-为基于标签的列表创建广告系列

这是我的广告系列细分选项所具有的。在这里,我正在检查两个条件。是SITE合并标记=我传入的站点变量,该成员也属于称为tagName的标记/段。但是,我无法传递tagName,只能传递我事先查找的tagId。

'segment_opts': 
                {
                    'match': 'all','conditions': [
                        {
                            'condition_type': 'TextMerge','field': 'SITE','op': 'is','value': site
                        },{
                            'condition_type': 'StaticSegment','field': 'static_segment','op': 'static_is','value': tagId
                        }
                    ]
                }

要获取tagId,请使用以下Python函数:

tagId,segments = self.getSegmentIdFromTagName(tagName)

这是从tagName获取tagId的Python代码,该tagName从系统获取所有细分/标签,然后查找您传入的名称:

 def getSegmentIdFromTagName(self,reqTagName,segments=None):
     audienceId = self.audienceId
     reqId = None
     if not segments:
         segments = self.mcClient.lists.segments.all(list_id=audienceId,get_all=True)
     for segment in segments['segments']:
         segName = segment['name']
         segId = segment['id']
         if segName == reqTagName:
              reqId = segId
              break
     return reqId,segments
本文链接:https://www.f2er.com/2219178.html

大家都在问