【问题标题】:Possible to provide a subscriber's language through MailChimp API?可以通过 MailChimp API 提供订阅者的语言吗?
【发布时间】:2012-10-22 03:15:01
【问题描述】:

目前,我在 PHP 页面上有一个注册表单,允许用户输入他们的姓名和电子邮件地址。

按下时,它会向服务器发送一个 AJAX POST,接收 postdata 的 PHP 脚本会接受它并使用 MailChimp PHP API 来注册用户(通过 listSubscribe())。

这是一个多语言网站,问题是当通过 API 调用执行注册时,MailChimp 不知道用户的语言是什么。这意味着用户会收到他们的 MailChimp 确认电子邮件(即“您是否真的注册了这个”等),无论他们的实际语言偏好如何。

我目前解决此问题的方法是为每种语言创建单独的列表,根据用户查看网站的语言为用户订阅适当的列表。这意味着您可以设置 MailChimp将默认语言形成为列表的语言。

这对我来说感觉很hacky,有没有更好的方法?这样做意味着必须为每种语言等设置广告系列。

【问题讨论】:

    标签: mailchimp


    【解决方案1】:

    MailChimp 中有一个“语言”字段,但我看不到通过合并标签访问此字段的方法。查看我个人认识每个订阅者的列表之一,MailChimp 的语言工具似乎并不那么可靠。

    我会在 MailChimp 中创建一个表单字段或组,然后添加一个字段,允许用户通过下拉列表指定他们的首选语言(或根据他们正在查看的内容自动填充),并使用它来使用合并标签在您的确认电子邮件中发送自定义内容。在这里查看customizing the confirmation process

    例如,如果您使用 INTERESTED 合并标签使用群组发送英语、法语、德语或西班牙语的电子邮件,其中英语是您的默认语言:

    *|INTERESTED:Language:FR,DE,ES|*
     *|INTERESTED:Language:FR|*
       French content here
     *|END:INTERESTED|*
     *|INTERESTED:Language:DE|*
       German content here
     *|END:INTERESTED|*
     *|INTERESTED:Language:ES|*
       Spanish content here
     *|END:INTERESTED|*
    *|ELSE|*
      English content here for everyone else, even those with an undefined language.
    *|END:INTERESTED|*
    

    【讨论】:

    • 我不知道你可以在这样的表达式中使用合并标签。这似乎是一个很好的答案,谢谢!
    • 该语言现在有一个合并标签:MC_LANGUAGE
    【解决方案2】:

    不幸的是,文档中没有很好地说明它。表单自动翻译的工作方式是检测浏览器的语言:

    http://kb.mailchimp.com/article/can-you-translate-my-signup-forms-response-emails#auto

    这意味着,例如,当您使用他们的表单提交进行订阅时,他们会检测浏览器语言,然后发送正确的确认电子邮件。他们不使用可以设置为表单选项或通过 api 设置的“语言”字段。我与技术支持人员通过多次对话验证了这一点。

    那么通过api订阅时如何设置语言呢?同样,在 api 调用的 http 标头中设置浏览器语言。这对我来说就像一个冠军。不能说你将如何在你的 php 应用程序中执行此操作,但在使用 Gibbon gem 的 Rails 中,你将传递 'headers' 选项中的值,该选项只是将其设置在 api 调用的 http 标头中:

    gibbon_api.lists.subscribe(headers: {'Accept-Language' => request.env['HTTP_ACCEPT_LANGUAGE']}, all_other_params...)
    

    至少这种方法对我有用。希望这会有所帮助...

    【讨论】:

    • 所以没有办法通过mailchimp.lists.batch_subscribe做到这一点;我说的对吗?
    • 如果您使用的是 V2 Mailchimp API,那么我认为如上所述设置 Accept-Language 应该可以工作,即使批量订阅也是如此。我刚刚注意到现在有一​​个 V3 API,我还没有使用过。他们现在可能会使用 language 参数,但您必须对其进行测试。
    • @Brett API V3 仅支持language 参数,因为它将它设置给订阅者,但确认电子邮件仍以列表的默认语言发送。设置 Accept-Language 标头显然有效:github.com/drewm/mailchimp-api/issues/148
    • 看起来设置Accept-Language 标头解决方案不再起作用 - 任何人都可以确认或否认吗?
    【解决方案3】:

    对于 ChimpKit3 (v3) (iOS - objective-c repo),我添加了订阅者语言以支持 MailChimp 中响应邮件的自动翻译选项。

    所以只需在请求标头中添加“Accept-Language”字段即可。

    https://github.com/mailchimp/ChimpKit3/pull/22

    Objective-C 示例:

    NSDictionary *mailChimpParams = @{@"id": MAILCHIMP_LIST_ID,
                                      @"email": @{@"email": [NSString stringWithFormat:@"%@",emailAddress]},
                                      @"language": @"en",
                                      @"merge_vars": mergeVars};
    

    [[ChimpKit sharedKit] callApiMethod:@"lists/subscribe"
                             withParams:mailChimpParams
                   andCompletionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { ...
    

    【讨论】:

      猜你喜欢
      • 2016-06-12
      • 2018-05-31
      • 1970-01-01
      • 2013-10-28
      • 2013-08-27
      • 2019-02-17
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      相关资源
      最近更新 更多