如何将 Google Analytics 用于 Mandrill Python API
Posted
技术标签:
【中文标题】如何将 Google Analytics 用于 Mandrill Python API【英文标题】:How to use Google Analytics to the Mandrill Python API 【发布时间】:2015-02-16 17:16:09 【问题描述】:我无法通过 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/
在我的 Mandrill 电子邮件底部,但我仍然遇到问题,并且在我的 Google Analytics(分析)帐户下看不到任何内容。还有什么我做错了吗?
谢谢
【问题讨论】:
【参考方案1】:首先,您是否看到将 Google 参数添加到您的 Mandrill 电子邮件中的链接?您可以向自己发送一个包含指向您的域的链接的测试,然后查看重定向/链接是否将您带到 yourdomain.com?utm_campaign... 类型的链接,并附加了 Google Analytics 参数。这将确认问题出在您的 API 调用/Mandrill 代码还是跟踪。
查看 API 调用,您在 google_analytics_domains
参数中传递的不仅仅是一个域 - 它还有协议,应该省略。因此生成的域部分应如下所示:
...
'google_analytics_domains': ['www.example.com'], # purposely anonymize as example.com
...
您还需要确保在电子邮件中包含您链接到的任何/所有子域,因为 Mandrill 严格应用 GA 参数,因为没有 GA 跟踪代码的站点/页面可能会在它们不知道如何处理查询字符串。
确认链接已正确添加参数后,请确保链接到的页面上有 GA 跟踪代码,以便 Google 对其进行跟踪。 Google 有时会在跟踪/显示数据方面出现延迟,因此如果您已确认参数存在,并且页面已配置为跟踪它们,您可能还想给它一点时间在 GA 中显示仪表板/数据。
【讨论】:
Kaitlin-Mandrill,你能检查我上面的“编辑”吗?我补充说,但我仍然无法让它工作。谢谢。 您是否要跟踪打开或点击?如果打开,则需要在电子邮件程序中启用图像,因为大多数默认情况下禁用图像/不会加载它们。除此之外,如果您仍然看到跟踪 clicks 的问题,那么您添加的代码将不会产生任何影响,因为这仅用于跟踪打开。您的原始代码中仍然包含http://
,它不能用于自动添加 GA 跟踪参数。
只有域(无协议等)对我有用;谢谢@凯特琳。不确定Python,但php有一个方便的功能来拉主机/域:php.net/manual/en/function.parse-url.php以上是关于如何将 Google Analytics 用于 Mandrill Python API的主要内容,如果未能解决你的问题,请参考以下文章
无法将类型“NSMutableDictionary”的值转换为强制类型“[NSObject: AnyObject]”以用于 google ios Analytics
用于私有 Intranet 应用程序的 Google Analytics
html 用于Gravity Forms提交的虚拟网页浏览的Google Analytics跟踪代码,不会将用户发送到新网页。
如何以准确和用户友好的方式计算与Google Analytics(分析)的传出链接?