我正在使用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',
},
});
答案 0 :(得分:0)
这是我的广告系列细分选项所具有的。在这里,我正在检查两个条件。是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