About

What’s this blog about?

I post content around data layers (particularly the W3C standard), tag management, data visualization, Google Analytics, and Adobe Analytics, as the opportunity arises.

Many of my posts aren’t necessarily intended to be subscribed to and read as each new post comes out (though you’re welcome to, of course). Rather, it is meant to provide reference information that you can then pull up as needed, often supplementing existing industry documentation.

I used to blog at Implementalytics.com from 2011 through 2013, then in 2015 moved to this newer, more pronounceable domain. While I do work for various agencies and clients, the thoughts and ideas on this blog are completely my own.

What is Digital Data Tactics?

Digital Data Tactics is my LLC, and I’m the Owner, Principal Consultant, and sole employee. See my services page for more information about what Digital Data Tactics can offer.

Who is Jenn Kunz?

IMG_8440-Edit-2 (1)

I’m an industry expert on Adobe Analytics, Implementation, Tag Management, and Data Layers, currently based out of Marietta, Georgia.

I’ve been consulting in some way since starting at Omniture in 2006. I had the pleasure of working at Search Discovery just before Satellite (now known as Dynamic Tag Management) was acquired by Adobe, but I actually made the switch to Adobe consulting just before that acquisition, putting me in a unique role as a consulting Subject Matter Expert for the Adobe consulting org. That experience with tag management and data layers has put me in quite a few unique positions to see some of the best (and worst) of how tag management and data layers are used.

Before I worked in Analytics, I was a web developer, and I have experience in HTML/CSS/JavaScript (including jQuery, Bootstrap, the Ionic mobile framework, and Angular 1/2), and am learning Python, DJango, and SQL.

In my spare time, I like to indulge my inner developer and fill some of the gaps in our industry by building tools, such as the Beacon Parser or the pocketSDR mobile app. I also enjoy mentoring and spreading the word about what a wonderful industry this is to work in.

Find me on linkedin or twitter.

Jenn Kunz outside of work

My wonderful, supportive husband has been a stay-at-home dad since I re-entered the work force in 2010. He now has a hobby job at Heroic Gaming, a family-friendly nerd board game store in Roswell, Georgia.

I have a son in fourth grade, and a daughter in 2nd grade (who is working on learning to code and built her first web page this year).

As for getting to know me personally, my favorite video game is currently Horizon Zero Dawn, my favorite board game is currently Ex Libris, and my favorite books are the Stormlight Archive by Brandon Sanderson.

9 thoughts on “About

  1. Hi,

    do you offer consulting services?
    I would like to get in touch regarding discrepancies between URL shortener and analytics tools.

    Best regards,
    Claudia

  2. I will appreciate if you can advise on following.

    I have a single page application (called Insurance Proposal). This application is used by Agents.

    It has an awfully long page with separate sections which can be visited by clicking links/carousals or just by scrolling.

    Requirement is to measure “time spent on each sections of the page”.

    I am planning to track separate sections as page loads.

    If user visits the section by clicking links to each section, then it can be done easily.

    I need some suggestions from you for the case when user scrolls to the section. I am using “enters viewport” event (and then fire page load – s.t).

    It works fine for the first time, but if you visit the same section again by scrolling up or down, “enters viewport” does not trigger.

    What am I doing wrong?

    Since it is our test URL, you may not be able to access it.

    1. Hello, Sameer! “enters viewport” is only going to fire once for when the conditions of the rule are met- so if you’ve firing it when “div.article” enters viewport, once “div.article” has entered the viewport once, DTM kinda checks that off as having been viewed, and won’t fire the rule more on that DOM. In some cases, this is really handy and prevents inflated data, but in your case when you have multiple separate elements you want to track, it is working against you.
      IF you have a data layer or some data element that is changing as the user scrolls down, you may be able to change your rule condition to “Data element changed” and have it fire every time the page name or site section name data element changes.

  3. Hello Jennifer,
    Thanks for replying my “enters viewport” question. I was able to do it by hosting a customized code in DTM. It is working fine.

    Regards

  4. Hello Jennifer
    I have a question about clearing variables in Direct Call Rules. I read an example about it at your site (http://www.digitaldatatactics.com/examples/DCR.html#).

    I tried alternative way to do it. I want your opinion if this will work.
    I created a data element pageName which gets call in setting page names in every DCR. I am clearing variables within this data element.
    //pageName data element code.
    s.clearVars();
    switch (pageName) {
    case ‘/’:
    return ‘/successprofiles/home’;
    case ”:
    return ’empty’;
    default:
    return “/successprofiles” + pageName;
    }
    It seems to work fine. I want your opinion when you get time.

    Regards

    1. Oh interesting- so you’re setting s.clearVars in the pageName data element?
      My only concern here is whether any other variables might try to be set before pageName. If you set s.channel or something like that in the interface for that direct call rule, is there a way to guaranteeit wouldn’t ever try to set before the pagename data element is referenced? I suspect that variables are always set in a specific order, but I would want to doulbe check that in both staging and production, that pageName data element was always run BEFORE I try to set any other variables.
      Though to be honest, these days there may be easier ways to do it- if you use s.registerPostTrackCallback in, say, your global adobe analytics code, it will fire just after every beacon fires, so you can always be sure your variable “slate” is wiped clean after every beacon. See https://webanalyticsfordevelopers.com/2017/10/17/using-the-new-callbacks-for-tracking/ for some examples.

      1. Thanks Jennifer for your reply. I will try s.registerPostTrackCallback.

        Following is the order in image request: (pageNames comes before every custom variable settings.
        AQB:1
        ndh:1
        pf:1
        t:6/2/2018 10:7:57 2 360
        D:D=
        fid:2251DC9979C30F2B-34C9CF58F277E115
        ce:UTF-8
        pageName:Illustration Viewed
        g:https://int.plan.nml.com/illustrations/?user=play7777
        cc:USD
        ch:Illustrations
        events:event17

        etc..etc

        It is working fine, but I was not sure and wanted to check with you.

        Regards

  5. Hi Jenn,

    today i accidentally had a thought to see what analytics data you are collecting on your site and was surprise to see my beacon which i parsed on your parse my beacon tool, is being captured in your beacon in eVar9.
    Now this makes me curious to know why you are capturing beacon which user is parsing on your tool in ?
    are we in safe hands when we are parsing beacon here ?

    appreciate your response on this.

    1. Hm, the only thing I’m using eVar9 for is to see what links users click that take them away from my site- standard exit link tracking. As for what I capture from the beacon parser, I do capture the beacon cname (eg, “jenniferkunz.d1.sc.omtrdc.net”) to get a general sense of who is using the tool (is it mostly my own clients?), and I might flag any variables that were on the beacon that I haven’t accounted for in my variable-friendly-names list (like if I see a beacon with “sdid”, I have tracking on the fact I need to look into sdid, but not what the value was that was passed), but I don’t capture any other specifics from the beacons being parsed.

Leave a Reply

Your email address will not be published. Required fields are marked *