如何将Google Analytics用于Mandrill Python API



我无法通过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&amp;tid=UA-57258906-1&amp;cid=CLIENT_ID_NUMBER&amp;t=event&amp;ec=email&amp;ea=open&amp;el=recipient_id&amp;cs=newsletter&amp;cm=email&amp;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 仪表板/数据中。

最新更新