Recherche avancée

Médias (10)

Mot : - Tags -/wav

Autres articles (64)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Soumettre améliorations et plugins supplémentaires

    10 avril 2011

    Si vous avez développé une nouvelle extension permettant d’ajouter une ou plusieurs fonctionnalités utiles à MediaSPIP, faites le nous savoir et son intégration dans la distribution officielle sera envisagée.
    Vous pouvez utiliser la liste de discussion de développement afin de le faire savoir ou demander de l’aide quant à la réalisation de ce plugin. MediaSPIP étant basé sur SPIP, il est également possible d’utiliser le liste de discussion SPIP-zone de SPIP pour (...)

Sur d’autres sites (8560)

  • Muxing H264 packets into a MPEGTS container using libav*

    30 avril 2024, par Lucen

    I'm writing a C++ program where I need to encode packets in h264 format and mux them to a MPEG TS container. For the encoding part, I based my code on the encode_video example (https://ffmpeg.org/doxygen/trunk/encode_video_8c-example.html#a9) provided in FFMPEG documentation, and it seems to work fine. In particular, I generate a std::vector of packets which I sequentially write to an output .ts file for debug. Such .ts file plays fine with SMPlayer, and a ffproba command gives

    


    >> ffprobe  -print_format json -show_format -show_streams out.ts
Input #0, h264, from 'out.ts':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264 (Main), yuv420p(progressive), 640x480 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 1200k tbn, 50 tbc
    "streams": [
        {
            "index": 0,
            "codec_name": "h264",
            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
            "profile": "Main",
            "codec_type": "video",
            "codec_time_base": "1/50",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "width": 640,
            "height": 480,
            "coded_width": 640,
            "coded_height": 480,
            "has_b_frames": 1,
            "sample_aspect_ratio": "1:1",
            "display_aspect_ratio": "4:3",
            "pix_fmt": "yuv420p",
            "level": 30,
            "chroma_location": "left",
            "field_order": "progressive",
            "refs": 1,
            "is_avc": "false",
            "nal_length_size": "0",
            "r_frame_rate": "25/1",
            "avg_frame_rate": "25/1",
            "time_base": "1/1200000",
            "bits_per_raw_sample": "8",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            }
        }
    ],
    "format": {
        "filename": "out.ts",
        "nb_streams": 1,
        "nb_programs": 0,
        "format_name": "h264",
        "format_long_name": "raw H.264 video",
        "size": "435443",
        "probe_score": 51
    }
}



    


    The dts and pts timestamps are also set.
However, if I try to mux them in MPEG TS format, using as a base the example mux.c (https://ffmpeg.org/doxygen/trunk/mux_8c-example.html), it doesn't work. A shortened version of my muxing code is as follows : (the variables ending with "_" are class fields)

    


    int MyProcessing::Mux(const std::string outputFilename) {
    AVFormatContext *muxingContest;
    avformat_alloc_output_context2(&muxingContest, NULL, NULL, m_output.c_str());

    auto outFormat = muxingContest->oformat;
    outFormat->video_codec = AV_CODEC_ID_H264;

    AVStream *outStream;
    const AVCodec *codec;

    Mux_AddStream(&outStream, muxingContest, &codec, outFormat->video_codec);

    AVDictionary *opt = nullptr;
    Mux_OpenVideo(muxingContest, codec, outStream, opt);
 
    if (!(muxingContest->flags & AVFMT_NOFILE)) {
      avio_open(&muxingContest->pb, m_output.c_str(), AVIO_FLAG_WRITE);
    }
    avformat_write_header(muxingContest, &opt);

    auto muxOk = true;
    size_t countMuxedFrames = 0;
    while ((muxOk) && (countMuxedFrames < packets_.size())) {
        muxOk = !MuxPacket(muxingContest, outStream, packets_[countMuxedFrames], &opt);
        countMuxedFrames++;
    }

    av_write_trailer(muxingContest);
    if (!(muxCodecContextPtr_->flags & AVFMT_NOFILE)) avio_closep(&muxingContest->pb);
 
    return 0;
}


int MyProcessing::Mux_AddStream(AVStream **stream, AVFormatContext *format, const AVCodec **codec, enum AVCodecID codecId) {
    *codec = avcodec_find_encoder(codecId);
    muxPacketTmpPtr_ = av_packet_alloc();
    *stream = avformat_new_stream(format, *codec);
    (*stream)->time_base = (AVRational){ 1, STREAM_FRAME_RATE };
    (*stream)->id = format->nb_streams-1;
    (*stream)->index = 0;
    muxCodecContextPtr_ = avcodec_alloc_context3(*codec);
    Mux_FillCodecContext(*muxCodecContextPtr_, codecId, **stream);
    if (format->oformat->flags & AVFMT_GLOBALHEADER)
        muxCodecContextPtr_->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
    return 0;
}


void MyProcessing::Mux_FillCodecContext(AVCodecContext &cc, enum AVCodecID codecId, AVStream &stream) {
    cc.codec_id = codecId;
    cc.bit_rate = 400000;
    cc.width    = outputWidth_;
    cc.height   = outputHeight_;
    cc.time_base  = stream.time_base;
    cc.gop_size = 10;
    cc.max_b_frames = 1;
    cc.gop_size      = 12;
    cc.pix_fmt       = AV_PIX_FMT_YUV420P;
    if (cc.codec_id == AV_CODEC_ID_MPEG2VIDEO) cc.max_b_frames = 2;
    if (cc.codec_id == AV_CODEC_ID_MPEG1VIDEO)  cc.mb_decision = 2;
    av_opt_set(&cc, "preset", "slow", 0);
    av_opt_set(&cc, "tune", "zerolatency", 0);
}


int MyProcessing::Mux_OpenVideo(AVFormatContext *format, const AVCodec *codec, AVStream *stream, AVDictionary *opt_arg) {
    AVDictionary *opt = nullptr;
    av_dict_copy(&opt, opt_arg, 0);
    muxCodecContextPtr_->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
    avcodec_open2(muxCodecContextPtr_, codec, &opt);
    av_dict_free(&opt);
    avcodec_parameters_from_context(stream->codecpar, muxCodecContextPtr_);
    return 0;
}

int MyProcessing::MuxPacket(AVFormatContext *format, AVStream *stream, AVPacket &pkt, AVDictionary **opt) {
    AVBitStreamFilterContext *bsf = av_bitstream_filter_init("h264_mp4toannexb");
    AVPacket filteredPkt = pkt;
    auto filterResult = av_bitstream_filter_filter(bsf, format->streams[stream->index]->codec, NULL,
                                         &filteredPkt.data, &filteredPkt.size,
                                         pkt.data, pkt.size,
                                         pkt.flags & AV_PKT_FLAG_KEY);

    if (filterResult < 0) return filterResult;
    else {
        filteredPkt.buf = av_buffer_create(filteredPkt.data, filteredPkt.size,
                                       av_buffer_default_free, NULL, 0);
    }
    av_bitstream_filter_close(bsf);
    filteredPkt.stream_index = stream->index;
    filteredPkt.dts = filteredPkt.pts;
    filteredPkt.duration = ((double)stream->time_base.num / (double)stream->time_base.den) / STREAM_FRAME_RATE;
    av_packet_rescale_ts(&filteredPkt, muxCodecContextPtr_->time_base, stream->time_base); // rescale output packet timestamp values from codec to stream timebase
    auto writePktResult = av_write_frame(format, &filteredPkt);
   // auto writePktResult = av_interleaved_write_frame(format, &filteredPkt);
    return 0;
}



    


    The console error is

    


    [mpegts @ 0x55555736edc0] H.264 bitstream malformed, no startcode found, use the video bitstream filter 'h264_mp4toannexb' to fix it ('-bsf:v h264_mp4toannexb' option with ffmpeg)


    


    It Is telling me to apply the h264_mp4toannexb filter. As you see from the code, I've put the filtering accordingly, but the error message persists (unless I'm applying the filter in a wrong way).

    


    In the last lines of method MuxPacket(), if I uncomment the line with av_interleaved_write_frame() and comment the previous one, I get the same error, as well as a seg fault. Inspecting with GDB, the call stack for the seg fault is as follows :

    


    #0  __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:440
#1  0x00007ffff67c7cb6 in av_packet_copy_props () at /lib/x86_64-linux-gnu/libavcodec.so.58
#2  0x00007ffff67c8447 in av_packet_ref () at /lib/x86_64-linux-gnu/libavcodec.so.58
#3  0x00007ffff7e2fa13 in  () at /lib/x86_64-linux-gnu/libavformat.so.58
#4  0x00007ffff7e2fb11 in  () at /lib/x86_64-linux-gnu/libavformat.so.58
#5  0x00007ffff7e30575 in av_interleaved_write_frame () at /lib/x86_64-linux-gnu/libavformat.so.58


    


    I tried to look at solutions online, but they are either old or they don't work. Some of the things I tried and didn't work :

    


      

    1. Putting the line
    2. 


    


    muxCodecContextPtr_->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;


    


    in Mux() after the call to avformat_alloc_output_context2.

    


      

    1. Setting
    2. 


    


    packet.flags |= AV_PKT_FLAG_KEY;


    


    before the call to av_write_frame / av_interleaved_write_frame.

    


      

    1. Trying to write by hand to the file the starting code as described here Need to convert h264 stream from annex-b format to AVCC format.

      


    2. 


    3. Playing with parameters in Mux_FillCodecContext().

      


    4. 


    


  • CRO Program : Best Practices and KPIs to Track [2024]

    8 mai 2024, par Erin

    Driving traffic to your website is only one part of the equation ; the second part is getting those visitors to convert by completing a desired action — creating an account, signing up for a newsletter or completing a purchase. 

    But if you fail to optimise your website for conversions, you’ll have a hard time guiding visitors further down the funnel and turning them into customers.

    That’s where a CRO program (or conversion rate optimisation) can help. 

    This article will cover conversion rate optimisation best practices and outline key metrics and KPIs to start tracking to see an improvement in your conversion rates.

    What is a CRO program ? 

    In the simplest terms, a CRO program — also called a CRO plan — is a digital marketing strategy. It focuses on implementing different tactics that can lead to an increase in conversion rate and maximising revenue. 

    CRO concept with marketing icons

    One thing to remember is that the definition of “conversion” varies from business to business. The most obvious type of conversion would be a financial transaction or a completed form — but it comes down to what you consider a valuable action. 

    Many different actions can count as conversions, depending on your marketing goals. 

    Besides making a purchase, other common examples of key conversion moments include creating a new account, signing up for a free trial, booking a demo and subscribing to an email newsletter. 

    Another thing worth noting is that while the average conversion rate on e-commerce websites is 3.76%, it might fluctuate across different industries and device types. Case in point — desktop devices have higher conversion rates than mobile devices, clocking in at 4.79% and 3.32%, respectively. 

    So, in addition to defining your key conversion moments, you should also go over conversion insights relevant to your specific industry. 

    The importance of conversion rate optimisation 

    You’d be right to assume that the ultimate goal of a conversion rate optimisation process is to drive revenue through higher conversion rates — but don’t focus solely on the numbers. The core principle of a CRO program is improving the customer experience. Once you’ve achieved that, the increase in conversion rate will follow. 

    Illustration of conversion funnel optimisation

    According to a recent report, global conversion rate optimisation (CRO) software sales are expected to reach $3.7 billion by 2032 — up from $1.1 billion in 2021. 

    This growth indicates the increasing interest in strategies and tools that can help optimise the conversion funnel. Businesses are looking for ways to keep potential customers engaged and improve the average conversion rate — without necessarily increasing their spending. 

    Here are a few reasons why a CRO program deserves a spot in your broader digital marketing strategies : 

    • It can lower your cost per acquisition (CPA) : A CRO program is about optimising your conversion funnel by leveraging existing assets and website traffic rather than increasing your spending — which lowers the costs of acquiring new customers and, in turn, drives ROI. 
    • It can maximise customer lifetime value (CLV) : If you can turn one-time buyers into repeat customers, you’ll be one step closer to building a loyal user base and increasing your CLV. 
    • It can lead to increased sales and boost your revenue : Higher conversion rates typically mean higher revenue ; that’s arguably the most obvious benefit of implementing a CRO program
    • It improves the overall user experience : The goal is to make your site more accessible, easier to navigate and more engaging. Delivering the experience people want — and expect — when navigating your website is one of the core principles of a CRO program.
    • It helps you to get to know your customers better : You can’t meet your customers’ needs without taking the time to know them, create user personas and understand their preferences, pain points and conversion barriers they may be facing. 

    Conversion optimisation gives you a competitive edge in revenue and brand reputation. 

    5 CRO best practices 

    Illustration of different CRO elements

    Here are five conversion rate optimisation strategies and best practices that can make a real difference in the customer experience — and drive potential conversions. 

    Create a CRO roadmap in advance 

    First and foremost, you’ll need a well-defined “game plan” that aligns with and reflects your conversion goals. 

    A CRO roadmap is a detailed manual that outlines how to implement different elements of your CRO-related efforts. Marketing teams can refer to this step-by-step framework for test planning, prioritisation and resource allocation while optimising their marketing strategy. 

    While conversion rate optimisation can be a complex process — especially when you don’t know what to tackle first — we’ve found that there are three things you need to consider when setting the foundations of a successful CRO program : 

    • The “why” behind your website traffic : You’re likely using different online marketing strategies — from SEO to pay-per-click (PPC). So, it’s best to start by gathering channel-specific conversion insights through marketing attribution. Then identify which of these efforts have the biggest impact on your target audience. 
    • The so-called “conversion blockers” that tell you where and why visitors tend to leave without completing a desired action : Funnel analysis might reveal problematic pages — drop-off points where you tend to lose most of your visitors. 
    • Your “hooks” : User feedback can be of great help here ; you can learn a lot by simply asking your customers to fill out a quick online survey and tell you what motivated them to take action.

    Before working on that “game plan,” perform a pre-test analysis. 

    Matomo combines web analytics and user behaviour analytics with features like Heatmaps, Session Recordings, Form Analytics, Funnel Analytics, A/B Testing and User Flow. It can give you those initial benchmarks for measuring progress and a potential increase in conversion rate. 

    Validate your ideas with A/B and multivariate testing 

    Conversion rate optimisation is an iterative process. So, it shouldn’t come as a surprise that A/B testing variants of page layouts, CTAs, headlines, copy and other elements is a big part of it.

    Multivariate and A/B testing allows you to test a wide range of elements across your site and identify what works — and, more importantly, what doesn’t — in terms of driving conversions.

    On that note, Matomo’s A/B Testing feature can support your conversion rate optimisation process by identifying variants that perform better based on statistical significance. 

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    Get to know your website visitors 

    Driving conversions comes down to understanding potential customer’s pain points and needs — and delivering an experience that positions you as the solution and gets them to take action. 

    Here are a few things that can help you understand your website visitors better : 

    • Collecting customer feedback through surveys and using it to identify main areas for improvement 
    • Creating detailed customer personas and optimising your website design and messaging based on your target audience’s pain points, needs and wants 
    • Using heatmaps — colour-coded data visualisation tools that illustrate user interactions — and scroll maps to get a comprehensive overview of online sessions and identify the most engaging elements and those that stand out as potential conversion barriers 

    Matomo’s Heatmaps can help you identify the most-clicked elements on the page and show how far users scroll — providing powerful user insights you can use to optimise these pages.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    Remove friction points 

    As we previously discussed, identifying friction points and barriers to conversion — issues that prevent visitors from converting — is one of the crucial aspects of developing a CRO plan. 

    Many different “conversion blockers” are worth looking into, including : 

    • Lengthy or otherwise complex checkout processes 
    • No guest checkout feature 
    • Device type, browser and OS compatibility issues 
    • Slow site speed and other technical issues
    • Lack of free shipping and limited payment methods 
    • Absence of social proof (customer reviews and testimonials) and trust badges

    Once you’ve identified what’s slowing down or completely discouraging users from reaching key conversion moments, take the time to address it. 

    Switch to text-based CTAs 

    Calls-to-action (CTAs) play a crucial role in guiding customers from interest to action. However, sometimes they fail to do their job — encouraging website visitors to proceed to the next step — effectively. 

    The most obvious reason is that your CTAs aren’t visually engaging or clear enough. In that case, you can try using action-oriented language and stronger visual elements and aligning the CTA copy with the context of the page. 

    But more often than not, the issue comes down to a phenomenon called “banner blindness” — the tendency of website visitors to ignore (either intentionally or unintentionally) elements on a page that resemble banner ads. 

    And if that’s what’s preventing visitors from converting, consider switching to text-based CTAs. 

    Conversion rate optimisation metrics and KPIs 

    At this point, you should know the outcomes you hope to achieve. Your next step should be to figure out how you’re going to measure and analyse results — and identify the changes that made the most impact on your conversion funnel. 

    After all, your CRO action plan should be based on data — assumptions and “gut feelings” will rarely lead to a notable increase in conversion rates

    Illustration of the conversion funnel

    That brings us to key performance indicators (KPIs) : 

    Tracking CRO metrics and website KPIs can help you understand the customer’s journey and path to purchase, identify opportunities for improving the user experience (UX) and determine how to optimise conversions.

    That said, you shouldn’t try to track every metric in the book ; think about your ultimate goal and identify the metrics and KPIs most relevant to your business. 

    We’ll assume that you’re already tracking macro- and micro-conversions. However, we’ve outlined a few additional key conversion rate optimisation metrics you should keep an eye on to make sure that your CRO program is performing as intended : 

    • Cost-per-conversion : By measuring how much you spend on each successful conversion — again, completed forms, sign-ups and sales all count as key conversion moments — you’ll be in a better position to assess the cost-effectiveness of your online marketing strategies.
    • Starter rate : This metric tells you the number of people who start filling out the form, after seeing it. This metric is particularly important for companies that rely on getting leads from forms. 
    • Average order value (AOV) : This metric is important for e-commerce sites to understand the value of their transactions. AOV calculates the average monetary value of each order.

    That’s not all ; you can also use a web analytics tool like Matomo to gain granular insights into visitors : 

    • Unique, new and returning visitors : Tracking the number of new and returning visitors your website gets within a given timeframe will help you understand your user base and determine if your content resonates with them. While you want a constant stream of new traffic, don’t overlook the importance of returning visitors ; they’re the foundation of a loyal customer base.
    • User flows : By analysing the user flows, you’ll have a visual representation of how visitors use your website, which will help you understand their journey and the specific path they take. 
    • Bounce rate : This metric tells you how many users viewed a single page on your site and ended up leaving before they took any kind of action. As such, it’s a clear indicator of how good your content, CTAs and website layout are at keeping users engaged.
    • Exit rate : Another key metric to track is the exit rate — the percentage of users who drop off at a specific page. High-exit pages usually lack important information and CTAs, cause frustration or otherwise fail to meet users’ expectations. Keep in mind that there’s a difference between bounce rate and exit rate — the latter involves users who viewed at least one other page. 

    There are many other user engagement metrics you should keep an eye on in addition to the ones mentioned above — including time on-page, actions per visit, scroll depth and traffic source. You’ll find all this information — and more — in Matomo’s Page Analytics Report

    Conclusion 

    Implementing a CRO program can be a time-consuming and iterative process. However, it’s vital for guiding your marketing efforts and making data-driven decisions that’ll ultimately help you drive growth and reach your business goals. 

    It’s best to start by identifying where your website visitors come from and what contributes to — or prevents them from — taking further action. But that’s easier said than done. You’ll need to leverage web analytics tools like Matomo to gather powerful user insights and monitor your website’s performance. 

    As an all-in-one, privacy-friendly web analytics solution, Matomo combines traditional web analytics and advanced behavioural analytics — delivering a consistent experience based on 100% accurate, unsampled data.

    Join the 1 million websites that have chosen Matomo as their web analytics platform. Start your 21-day free trial today — and see how Matomo can help you improve your website’s conversion rates. No credit card required.

  • How to Conduct a Customer Journey Analysis (Step-by-Step)

    9 mai 2024, par Erin

    Your customers are everything.

    Treat them right, and you can generate recurring revenue for years. Treat them wrong ; you’ll be spinning your wheels and dealing with churn.

    How do you give your customers the best experience possible so they want to stick around ?

    Improve their customer experience.

    How ?

    By conducting a customer journey analysis.

    When you know how your customers experience your business, you can improve it to meet and exceed customer expectations.

    In this guide, we’ll break down how the customer journey works and give you a step-by-step guide to conduct a thorough customer journey analysis so you can grow your brand.

    What is a customer journey analysis ?

    Every customer you’ve ever served went on a journey to find you.

    From the moment they first heard of you, to the point that they became a customer. 

    Everything in between is the customer journey.

    A customer journey analysis is how you track and analyse how your customers use different channels to interact with your brand.

    What is a customer journey analysis?

    Analysing your customer journey involves identifying the customer’s different touchpoints with your business so you can understand how it impacts their experience. 

    This means looking at every moment they interacted with your brand before, during and after a sale to help you gain actionable insights into their experience and improve it to reach your business objectives.

    Your customers go through specific customer touchpoints you can track. By analysing this customer journey from a bird’s eye view, you can get a clear picture of the entire customer experience.

    4 benefits of customer journey analysis

    Before we dive into the different steps involved in a customer journey analysis, let’s talk about why it’s vital to analyse the customer journey.

    By regularly analysing your customer journey, you’ll be able to improve the entire customer experience with practical insights, allowing you to :

    Understand your customers better

    What’s one key trait all successful businesses have ?

    They understand their customers.

    By analysing your customer journey regularly, you’ll gain new insights into their wants, needs, desires and behaviours, allowing you to serve them better. These insights will show you what led them to buy a product (or not).

    For example, through conducting a customer journey analysis, a company might find out that customers who come from LinkedIn are more likely to buy than those coming from Facebook.

    Find flaws in your customer journey

    Nobody wants to hear they have flaws. But the reality is your customer journey likely has a few flaws you could improve.

    By conducting customer journey analysis consistently, you’ll be able to pinpoint precisely where you’re losing prospects along the way. 

    For example, you may discover you’re losing customers through Facebook Ads. Or you may find your email strategy isn’t as good as it used to be.

    But it’s not just about the channel. It could be a transition between two channels. For example, you may have great engagement on Instagram but are not converting them into email subscribers. The issue may be that your transition between the two channels has a leak.

    Or you may find that prospects using certain devices (i.e., mobile, tablet, desktop) have lower conversions. This might be due to design and formatting issues across different devices.

    By looking closely at your customer journey and the different customer touchpoints, you’ll see issues preventing prospects from turning into leads or customers from returning to buy again as loyal customers.

    Gain insights into how you can improve your brand

    Your customer journey analysis won’t leave you with a list of problems. Instead, you’ll have a list of opportunities.

    Since you’ll be able to better understand your customers and where they’re falling off the sales funnel, you’ll have new insights into how you can improve the experience and grow your brand.

    For example, maybe you notice that your visitors are getting stuck at one stage of the customer journey and you’re trying to find out why.

    So, you leverage Matomo’s heatmaps, sessions recordings and scroll depth to find out more.

    In the case below, we can see that Matomo’s scroll map is showing that only 65% of the visitors are reaching the main call to action (to write a review). 

    Scroll depth screenshot in Matomo displaying lack of clicks to CTA button

    To try to push for higher conversions and get more reviews, we could consider moving that button higher up on the page, ideally above the fold.

    Rather than guessing what’s preventing conversions, you can use user behaviour analytics to “step in our user’s shoes” so you can optimise faster and with confidence.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    Grow your revenue

    By taking charge of your customer journey, you can implement different strategies that will help you increase your reach, gain more prospects, convert more prospects into customers and turn regulars into loyal customers.

    Using customer journey analysis will help you optimise those different touchpoints to maximise the ROI of your channels and get the most out of each marketing activity you implement.

    7 steps to conduct a customer journey analysis

    Now that you know the importance of conducting a customer journey analysis regularly, let’s dive into how to implement an analysis.

    Here are the seven steps you can take to analyse the customer journey to improve your customer experience :

    7 steps to conduct a customer journey analysis.

    1. Map out your customer journey

    Your first step to conducting an effective customer journey analysis is to map your entire customer journey.

    Customer journey mapping means looking at several factors :

    • Buying process
    • Customer actions
    • Buying emotions
    • Buying pain points
    • Solutions

    Once you have an overview of your customer journey maps, you’ll gain insights into your customers, their interests and how they interact with your brand. 

    After this, it’s time to dive into the touchpoints.

    2. Identify all the customer touchpoints 

    To improve your customer journey, you need to know every touchpoint a customer can (and does) make with your brand.

    This means taking note of every single channel and medium they use to communicate with your brand :

    • Website
    • Social media
    • Search engines (SEO)
    • Email marketing
    • Paid advertising
    • And more

    Essentially, anywhere you communicate and interact with your customers is fair game to analyse.

    If you want to analyse your entire sales funnel, you can try Matomo, a privacy-friendly web analytics tool. 

    You should make sure to split up your touchpoints into different customer journey stages :

    • Awareness
    • Consideration
    • Conversion
    • Advocacy

    Then, it’s time to move on to how customers interact on these channels.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    3. Measure how customers interact on each channel

    To understand the customer journey, you can’t just know where your customers interact with you. You end up learning how they’re interacting.

    This is only possible by measuring customer interactions.

    How ?

    By using a web analytics tool like Matomo.

    With Matomo, you can track every customer action on your website.

    This means anytime they :

    • Visit your website
    • View a web page
    • Click a link
    • Fill out a form
    • Purchase a product
    • View different media
    • And more

    You should analyse your engagement on your website, apps and other channels, like email and social media.

    4. Implement marketing attribution

    Now that you know where your customers are and how they interact, it’s time to analyse the effectiveness of each channel based on your conversion rates.

    Implementing marketing attribution (or multi-touch attribution) is a great way to do this.

    Attribution is how you determine which channels led to a conversion.

    While single-touch attribution models credit one channel for a conversion, marketing attribution gives credit to a few channels.

    For example, let’s say Bob is looking for a new bank. He sees an Instagram post and finds himself on HSBC’s website. After looking at a few web pages, he attends a webinar hosted by HSBC on financial planning and investment strategies. One week later, he gets an email from HSBC following up on the webinar. Then, he decides to sign up for HSBC’s online banking.

    Single touch attribution would attribute 100% of the conversion to email, which doesn’t show the whole picture. Marketing attribution would credit all channels : social media, website content, webinars and email.

    Matomo offers multiple attribution models. These models leverage different weighting factors, like time decay or linear, so that you can allocate credit to each touchpoint based on its impact.

    Matomo’s multi-touch attribution reports give you in-depth insights into how revenue is distributed across different channels. These detailed reports help you analyse each channel’s contribution to revenue generation so you can optimise the customer journey and improve business outcomes.

    Try Matomo for Free

    Get the web insights you need, without compromising data accuracy.

    No credit card required

    5. Use a funnels report to find where visitors are leaving

    Once you set up your marketing attribution, it’s time to analyse where visitors are falling off.

    You can leverage Matomo funnels to find out the conversion rate at each step of the journey on your website. Funnel reports can help you see exactly where visitors are falling through the cracks so you can increase conversions.

    6. Analyse why visitors aren’t converting

    Once you can see where visitors are leaving, you can start to understand why.

    For example, let’s say you analyse your funnels report in Matomo and see your landing page is experiencing the highest level of drop-offs.

    Screenshot of Forms Overview report in Matomo's Form Analytics feature

    You can also use form analytics to find out why users aren’t converting on your landing pages – a crucial part of the customer journey.

    7. A/B test to improve the customer journey

    The final step to improve your customer journey is to conduct A/B tests. These are tests where you test one version of a landing page to see which one converts better, drives more traffic, or generates more revenue.

    For example, you could create two versions of a header on your website and drive 50% of your traffic to each version. Then, once you’ve got your winner, you can keep that as your new landing page.

    Screenshot of A/B testing report in Matomo

    Using the data from your A/B tests, you can optimise your customer journey to help convert more prospects into customers.

    Use Matomo to improve your customer journey analysis

    Now that you understand why it’s important to conduct customer journey analysis regularly and how it works, it’s time to put this into practice.

    To improve the customer journey, you need to understand what’s happening at each stage of your funnel. 

    Matomo gives you insights into your customer journey so you can improve website performance and convert more visitors into customers.

    Used by over 1 million websites, Matomo is the leading privacy-friendly web analytics solution in the world. 

    Matomo provides you with accurate, unsampled data so you understand exactly what’s going on with your website performance.

    The best part ?

    It’s easy to use and is compliant with the strictest privacy regulations.

    Try Matomo free for 21-days and start Improving your customer journey. No credit card required.