我无法通过Mandrill Python API成功设置Google Analytics广告系列的电子邮件跟踪。 我目前有以下代码,但是我缺少什么吗? 在Google Analytics方面,我只是将域名添加到我的Google Analytics帐户中。
这是我的 Mandrill API 调用代码:
提前谢谢你。
import os
import mandrill
MANDRILL_CLIENT = mandrill.Mandrill(os.environ['MANDRILL_API_KEY'])
DEFAULT_FROM_EMAIL = 'from@example.com' #purposely anonymize
DEFAULT_FROM_NAME = 'Aaron'
# HTML / TEXT - fields may be variable
DATA_FILE = 'data.csv'
HTML = 'variable.html'
TEXT = 'variable.txt'
def send(email):
"""
`email` is an object with attr:
to - email address to send to
name - name of person
"""
with open(HTML,'r') as html:
with open(TEXT, 'r') as text:
try:
message = {'attachments': [],
'auto_html': None,
'auto_text': None,
'bcc_address': None,
'from_email': DEFAULT_FROM_EMAIL,
'from_name': DEFAULT_FROM_NAME,
'global_merge_vars': email.merge_vars(),
'merge_vars': [],
'google_analytics_domains': ['http://www.example.com'], # purposely anonymize as example.com
'google_analytics_campaign': 'my_email',
'headers': {'Reply-To': DEFAULT_FROM_EMAIL},
'html': str(html.read()),
'images': [],
'important': False,
'inline_css': None,
'merge': True,
'merge_language': 'mailchimp',
'metadata': {'website': 'hardrockhotel.com'},
'preserve_recipients': None,
'recipient_metadata': [],
'return_path_domain': None,
'signing_domain': None,
'subaccount': None,
'subject': 'example subject',
'tags': ['password-resets'],
'text': str(text.read()),
'to': [{'email': email.to,
'name': email.name,
'type': 'to'}],
'track_clicks': True,
'track_opens': True,
'tracking_domain': True,
'url_strip_qs': None,
'view_content_link': None}
result = MANDRILL_CLIENT.messages.send(message=message, async=False, ip_pool='Main Pool')
except mandrill.Error, e:
# Mandrill errors are thrown as exceptions
print 'A mandrill error occurred: %s - %s' % (e.__class__, e)
# A mandrill error occurred: <class 'mandrill.UnknownSubaccountError'> - No subaccount exists with the id 'customer-123'
raise
def get_record_as_dict(zipped):
return {k:v for k,v in zipped}
class EmailRcpt(object):
""" Email Recipient Object for each record being read in from the DATA_FILE. """
def __init__(self, zipped):
for k, v in zipped:
setattr(self, k, v)
def merge_vars(self):
return [{'name': k, 'content': v} for k,v in self.__dict__.iteritems()]
def main():
with open(DATA_FILE,'r') as data:
header = data.readline().replace('n', '').split(',')
for row in data:
row = row.split(',')
zipped = zip(header, row)
email_rcpt = EmailRcpt(zipped)
send(email_rcpt)
if __name__ == '__main__':
main()
编辑:
我添加了以下代码:
<img src="http://www.google-analytics.com/collect?v=1&tid=UA-57258906-1&cid=CLIENT_ID_NUMBER&t=event&ec=email&ea=open&el=recipient_id&cs=newsletter&cm=email&cn=Campaign_image1" >
基于这篇文章:
http://dyn.com/blog/tracking-email-opens-via-google-analytics/
到我的山魈电子邮件的底部,但我仍然遇到问题,并且在我的Google Analytics帐户下看不到任何内容。 我还有什么做错事吗?
谢谢
首先,您是否看到Google参数被添加到Mandrill电子邮件中的链接中?您可以向自己发送一个带有指向您域的链接的测试,然后查看重定向/链接是否将您带到您的域.com?utm_campaign...附加了谷歌分析参数的链接类型。这将确认问题出在您的 API 调用/山钻代码还是跟踪上。
查看 API 调用,您在 google_analytics_domains
参数中传递的不仅仅是一个域 - 它还具有协议,应省略该协议。因此,生成的域部分应如下所示:
...
'google_analytics_domains': ['www.example.com'], # purposely anonymize as example.com
...
您还需要确保在电子邮件中包含要链接到的任何/所有子域,因为 Mandrill 严格应用 GA 参数,因为没有 GA 跟踪代码的网站/页面如果不知道如何处理查询字符串,它们可能会中断。
确认链接已正确添加参数后,请确保您要链接到的网页上有 GA 跟踪代码,以便 Google 对其进行跟踪。Google 有时会在跟踪/显示数据时出现延迟,因此,如果您已确认参数存在,并且页面配置为跟踪它们,您可能还需要给它一点时间显示在 GA 仪表板/数据中。