Recherche avancée

Médias (0)

Mot : - Tags -/tags

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (38)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (5650)

  • What Is Incrementality & Why Is It Important in Marketing ?

    26 mars 2024, par Erin

    Imagine this : you just launched your latest campaign and it was a major success.

    You blew last month’s results out of the water.

    You combined a variety of tactics, channels and ad creatives to make it work.

    Now, it’s time to build the next campaign.

    The only issue ?

    You don’t know what made it successful or how much your recent efforts impacted the results.

    You’ve been building your brand for years. You’ve built up a variety of marketing pillars that are working for you. So, how do you know how much of your campaign is from years of effort or a new tactic you just implemented ?

    The key is incrementality.

    This is a way to properly attribute the right weight to your marketing tactics.

    In this article, we break down what incrementality is in marketing, how it differs from traditional attribution and how you can calculate and track it to grow your business.

    What is incrementality in marketing ?

    Incrementality in marketing is growth that can be directly credited to a marketing effort above and beyond the success of the branding.

    It looks at how much a specific tactic positively impacted a campaign on top of overall branding and marketing strategies.

    What is incrementally in marketing?

    For example, this could be how much a specific tactic, campaign or channel helped increase conversions, email sign-ups or organic traffic.

    The primary purpose of incrementally in marketing is to more accurately determine the impact a single marketing variable had on the success of a project.

    It removes every other factor and isolates the specific method to help marketers double down on that strategy or move on to new tactics.

    With Matomo, you can track conversions simply. With our last non-direct channel attribution system, you’ll be able to quickly see what channels are converting (and which aren’t) so you can gain insights into incrementality. 

    See why over 1 million websites choose Matomo today.

    Try Matomo for Free

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

    No credit card required

    How incrementality differs from attribution

    In marketing and advertising, it’s crucial to understand what tactics and activities drive growth.

    Incrementality and attribution help marketers and business owners understand what efforts impact their results.

    But they’re not the same.

    Here’s how they differ :

    Incrementality vs. attribution

    Incrementality explained

    Incrementality measures how much a specific marketing campaign or activity drives additional sales or growth.

    Simply put, it’s analysing the difference between having never implemented the campaign (or tactic or channel) in the first place versus the impact of the activity.

    In other words, how much revenue would you have generated this month without campaign A ?

    And how much additional revenue did you generate directly due to campaign A ?

    The reality is that dozens of factors impact revenue and growth.

    You aren’t just pouring your marketing into one specific channel or campaign at a time.

    Chances are, you’ve got your hands on several marketing initiatives like SEO, PPC, organic social media, paid search, email marketing and more.

    Beyond that, you’ve built a brand with a not-so-tangible impact on your recurring revenue.

    So, the question is, if you took away your new campaign, would you still be generating the same amount of revenue ?

    And, if you add in that campaign, how much additional revenue and growth did it directly create ?

    That is incrementality. It’s how much a campaign went above and beyond to add new revenue that wouldn’t have been there otherwise.

    So, how does attribution play into all of this ?

    Attribution explained

    Attribution is simply the process of assigning credit for a conversion to a particular marketing touchpoint.

    While incrementality is about narrowing down the overall revenue impact from a particular campaign, attribution seeks to point to a specific channel to attribute a sale.

    For example, in any given marketing campaign, you have a few marketing tactics.

    Let’s say you’re launching a limited-time product.

    You might have :

    • Paid ads via Facebook and Instagram
    • A blog post sharing how the product works
    • Organic social media posts on Instagram and TikTok
    • Email waitlist campaign building excitement around the upcoming product
    • SMS campaigns to share a limited-time discount

    So, when the time comes for the sale launch, and you generate $30,000 in revenue, what channel gets the credit ?

    Do you give credit to the paid ads on Facebook ? What about Instagram ? They got people to follow you and got them on the email waitlist.

    Do you give credit to email for reminding people of the upcoming sale ? What about your social media posts that reminded people there ?

    Or do you credit your SMS campaign that shared a limited-time discount ?

    Which channel is responsible for the sale ?

    This is what attribution is all about.

    It’s about giving credit where credit is due.

    The reason you want to attribute credit ? So you know what’s working and can double down your efforts on the high-impact marketing activities and channels.

    Leveraging incrementality and attribution together

    Incrementality and attribution aren’t competing methods of analysing what’s working.

    They’re complementary to one another and go hand in hand.

    You can (and should) use attribution and incrementality in your marketing to help understand what activities, campaigns and channels are making the biggest incremental impact on your business growth.

    Why it’s important to measure incrementality

    Incrementality is crucial to measure if you want to pour your time, money and effort into the right marketing channels and tactics.

    Here are a few reasons why you need to measure incrementality if you want to be successful with your marketing and grow your business :

    1. Accurate data

    If you want to be an effective marketer, you need to be accurate.

    You can’t blindly start marketing campaigns in hopes that you will sell many products or services.

    That’s not how it works.

    Sure, you’ll probably make some sales here and there. But to truly be effective with your work, you must measure your activities and channels correctly.

    Incrementality helps you see how each channel, tactic or campaign made a difference in your marketing.

    Matomo gives you 100% accurate data on your website activities. Unlike Google Analytics, we don’t use data sampling which limits how much data is analysed.

    Screenshot example of the Matomo dashboard

    2. Helps you to best determine the right tactics for success

    How can you plan your marketing strategy if you don’t know what’s working ?

    Think about it.

    You’ll be blindly sailing the seas without a compass telling you where to go.

    Measuring incrementality in your marketing tactics and channels helps you understand the best tactics.

    It shows you what’s moving the needle (and what’s not).

    Once you can see the most impactful tactics and channels, you can forge future campaigns that you know will work.

    3. Allows you to get the most out of your marketing budget

    Since incrementality sheds light on what’s moving your business forward, you can confidently implement your efforts on the right tactics and channels.

    Guess what happens when you start doubling down on the most impactful activities ?

    You start increasing revenue, decreasing ad spend and getting a higher return on investment.

    The result is that you will get more out of your marketing budget.

    Not only will you boost revenue, but you’ll also be able to boost profit margins since you’re not wasting money on ineffective tactics.

    4. Increase traffic

    When you see what’s truly working in your business, you can figure out what channels and tactics you should be working.

    Incrementality helps you understand not only what your best revenue tactics are but also what channels and campaigns are bringing in the most traffic.

    When you can increase traffic, you can increase your overall marketing impact.

    5. Increase revenue

    Finally, with increased traffic, the inevitable result is more conversions.

    More conversions mean more revenue.

    Incrementality gives you a vision of the tactics and channels that are converting the best.

    If you can see that your SMS campaigns are driving the best ROI, then you know that you’ll grow your revenue by pouring more into acquiring SMS leads.

    By calculating incrementality regularly, you can rest assured that you’re only investing time and money into the most impactful activities in terms of revenue generation.

    How to calculate and test incrementality in marketing

    Now that you understand how incrementality works and why it’s important to calculate, the question is : 

    How do you calculate and conduct incrementality tests ?

    Given the ever-changing marketing landscape, it’s crucial to understand how to calculate and test incrementally in your business.

    If you’re not sure how incrementality testing works, then follow these simple steps :

    How to test and analyze incrementality in marketing?

    Your first step to get an incrementality measurement is to conduct what’s referred to as a “holdout test.”

    It’s not a robust test, but it’s an easy way to get the ball rolling with incrementality.

    Here’s how it works :

    1. Choose your target audience.

    With Matomo’s segmentation feature, you can get pretty specific with your target audience, such as :

      • Visitors from the UK
      • Returning visitors
      • Mobile users
      • Visitors who clicked on a specific ad
    1. Split your audience into two groups :
      • Control group (60% of the segment)
      • Test group (40% of the segment)
    1. Target the control group with your marketing tactic (the simpler the tactic, the better).
    1. Target the test group with a different marketing tactic.
    1. Analyse the results. The difference between the control and test groups is the incremental lift in results. The new marketing tactic is either more effective or not.
    1. Repeat the test with a new control group (with an updated tactic) and a new test group (with a new tactic).

    Matomo can help you analyse the results of your campaigns in our Goals feature. Set up business objectives so you can easily track different goals like conversions.

    Try Matomo for Free

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

    No credit card required

    Here’s an example of how this incrementality testing could look in real life.

    Imagine a fitness retailer wants to start showing Facebook ads in their marketing mix.

    The marketing manager decided to conduct a holdout test. If we match our example below with the steps above, this is how the holdout test might look.

    1. They choose people who’ve purchased free weights in the past as their target audience (see how that segmentation works ?).
    2. They split this segment into a control group and a test group.
    3. For this test, they direct their regular marketing campaign to the control group (60% of the segment). The campaign includes promoting a 20% off sale on organic social media posts, email marketing, and SMS.
    4. They direct their regular marketing campaign plus Facebook ads to the test group (40% of the segment).
    5. They ran the campaign for three weeks with the goal for sale conversions and noticed :
      • The control group had a 1.5% conversion rate.
      • The test group (with Facebook ads) had a 2.1% conversion rate.
      • In this scenario, they could see the group who saw the Facebook ads convert better.
      • They created the following formula to measure the incremental lift of the Facebook ads :
    Calculation: Incrementality in marketing.
      • Here’s how the calculation works out : (2.1% – 1.5%) / 1.5% = 40%

    The Facebook ads had a positive 40% incremental lift in conversions during the sale.

    Incrementality testing isn’t a one-and-done process, though.

    While this first test is a great sign for the marketing manager, it doesn’t mean they should immediately throw all their money into Facebook ads.

    They should continue conducting tests to verify the initial test.

    Use Matomo to track incrementality today

    Incrementality can give you insights into exactly what’s working in your marketing (and what’s not) so you can design proven strategies to grow your business.

    If you want more help tracking your marketing efforts, try Matomo today.

    Our web analytics and behaviour analytics platform gives you firsthand data on your website visitors you can use to craft effective marketing strategies.

    Matomo provides 100% accurate data. Unlike other major web analytics platforms, we don’t do data sampling. What you see is what’s really going on in your website. That way, you can make more informed decisions for better results.

    At Matomo, we take privacy very seriously and include several advanced privacy protections to ensure you are in full control.

    As a fully compliant web analytics solution, we’re fully compliant with some of the world’s strictest privacy regulations like GDPR. With Matomo, you get peace of mind knowing you can make data-driven decisions while also being compliant. 

    If you’re ready to launch a data-driven marketing strategy today and grow your business, get started with our 21-day free trial now. No credit card required.

  • Make Qt Player codec independent

    16 mars 2016, par Tejas Virpariya

    I develop Qt application which can play more then one video file using bellow code.

    QMediaPlayer *player;
    QString fileName = "C:/username/test.h264";
    player->setmedia(QUrl::fromLocalFile(fileName));

    In starting I cannot play all types of video file, so I install codec on my system, now when my player start codec decoder start, and my CPU usage reach at high.(Show the bellow Image)

    enter image description here

    You can see in above image right side bottom corner LAW(Red label) which saw external decoder started.

    Now, I want to make my Qt Player codec independent, means I know my player have to play only .h264 file, so I will use only h264 decoder and no need of audio so I will not use audio decoder.

    As per my knowledge, QMediaPlayer start decoder when it come in picture, correct me if i am wrong. So What can I do to stop external decoder and decode frame internally and play successfully ?

    EDIT : code for audio decode using FFmpeg

    FFmpegAudio.pro

    TARGET = fooAudioFFMPEG
    QT       += core gui qml quick widgets
    TEMPLATE = app
    SOURCES += main.cpp \
       mainwindow.cpp
    HEADERS += mainwindow.h \
       wrapper.h
    FORMS += mainwindow.ui
    QMAKE_CXXFLAGS += -D__STDC_CONSTANT_MACROS

    LIBS += -pthread
    LIBS += -L/usr/local/lib
    LIBS += -lavdevice
    LIBS += -lavfilter
    LIBS += -lpostproc
    LIBS += -lavformat
    LIBS += -lavcodec
    LIBS += -ldl
    LIBS += -lXfixes
    LIBS += -lXext
    LIBS += -lX11
    LIBS += -lasound
    LIBS += -lSDL
    LIBS += -lx264
    LIBS += -lvpx
    LIBS += -lvorbisenc
    LIBS += -lvorbis
    LIBS += -logg
    LIBS += -lopencore-amrwb
    LIBS += -lopencore-amrnb
    LIBS += -lmp3lame
    LIBS += -lfaac
    LIBS += -lz
    LIBS += -lrt
    LIBS += -lswscale
    LIBS += -lavutil
    LIBS += -lm

    mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H

    #include <qmainwindow>

    namespace Ui {
       class MainWindow;
    }

    class MainWindow : public QMainWindow {
       Q_OBJECT
    public:
       MainWindow(QWidget *parent = 0);
       ~MainWindow();

    protected:
       void changeEvent(QEvent *e);

    private:
       Ui::MainWindow *ui;

    private slots:
       void on_pushButton_clicked();
    };

    #endif // MAINWINDOW_H
    </qmainwindow>

    wrapper.h

    #ifndef WRAPPER_H_
    #define WRAPPER_H_

    #include

    #include <libavutil></libavutil>opt.h>
    #include <libavcodec></libavcodec>avcodec.h>
    #include <libavutil></libavutil>channel_layout.h>
    #include <libavutil></libavutil>common.h>
    #include <libavutil></libavutil>imgutils.h>
    #include <libavutil></libavutil>mathematics.h>
    #include <libavutil></libavutil>samplefmt.h>

    #define INBUF_SIZE 4096
    #define AUDIO_INBUF_SIZE 20480
    #define AUDIO_REFILL_THRESH 4096



    /* check that a given sample format is supported by the encoder */
    static int check_sample_fmt(AVCodec *codec, enum AVSampleFormat sample_fmt)
    {
       const enum AVSampleFormat *p = codec->sample_fmts;

       while (*p != AV_SAMPLE_FMT_NONE) {
           if (*p == sample_fmt)
               return 1;
           p++;
       }
       return 0;
    }

    /* just pick the highest supported samplerate */
    static int select_sample_rate(AVCodec *codec)
    {
       const int *p;
       int best_samplerate = 0;

       if (!codec->supported_samplerates)
           return 44100;

       p = codec->supported_samplerates;
       while (*p) {
           best_samplerate = FFMAX(*p, best_samplerate);
           p++;
       }
       return best_samplerate;
    }

    /* select layout with the highest channel count */
    static int select_channel_layout(AVCodec *codec)
    {
       const uint64_t *p;
       uint64_t best_ch_layout = 0;
       int best_nb_channells   = 0;

       if (!codec->channel_layouts)
           return AV_CH_LAYOUT_STEREO;

       p = codec->channel_layouts;
       while (*p) {
           int nb_channels = av_get_channel_layout_nb_channels(*p);

           if (nb_channels > best_nb_channells) {
               best_ch_layout    = *p;
               best_nb_channells = nb_channels;
           }
           p++;
       }
       return best_ch_layout;
    }

    /*
    * Audio encoding example
    */
    static void audio_encode_example(const char *filename)
    {
       AVCodec *codec;
       AVCodecContext *c= NULL;
       AVFrame *frame;
       AVPacket pkt;
       int i, j, k, ret, got_output;
       int buffer_size;
       FILE *f;
       uint16_t *samples;
       float t, tincr;

       printf("Encode audio file %s\n", filename);

       /* find the MP2 encoder */
       codec = avcodec_find_encoder(AV_CODEC_ID_MP2);
       if (!codec) {
           fprintf(stderr, "Codec not found\n");
           exit(1);
       }

       c = avcodec_alloc_context3(codec);
       if (!c) {
           fprintf(stderr, "Could not allocate audio codec context\n");
           exit(1);
       }

       /* put sample parameters */
       c->bit_rate = 64000;

       /* check that the encoder supports s16 pcm input */
       c->sample_fmt = AV_SAMPLE_FMT_S16;
       if (!check_sample_fmt(codec, c->sample_fmt)) {
           fprintf(stderr, "Encoder does not support sample format %s",
                   av_get_sample_fmt_name(c->sample_fmt));
           exit(1);
       }

       /* select other audio parameters supported by the encoder */
       c->sample_rate    = select_sample_rate(codec);
       c->channel_layout = select_channel_layout(codec);
       c->channels       = av_get_channel_layout_nb_channels(c->channel_layout);

       /* open it */
       if (avcodec_open2(c, codec, NULL) &lt; 0) {
           fprintf(stderr, "Could not open codec\n");
           exit(1);
       }

       f = fopen(filename, "wb");
       if (!f) {
           fprintf(stderr, "Could not open %s\n", filename);
           exit(1);
       }

       /* frame containing input raw audio */
       frame = avcodec_alloc_frame();
       if (!frame) {
           fprintf(stderr, "Could not allocate audio frame\n");
           exit(1);
       }

       frame->nb_samples     = c->frame_size;
       frame->format         = c->sample_fmt;
       frame->channel_layout = c->channel_layout;

       /* the codec gives us the frame size, in samples,
        * we calculate the size of the samples buffer in bytes */
       buffer_size = av_samples_get_buffer_size(NULL, c->channels, c->frame_size,
                                                c->sample_fmt, 0);
       samples = (uint16_t *)av_malloc(buffer_size);
       if (!samples) {
           fprintf(stderr, "Could not allocate %d bytes for samples buffer\n",
                   buffer_size);
           exit(1);
       }
       /* setup the data pointers in the AVFrame */
       ret = avcodec_fill_audio_frame(frame, c->channels, c->sample_fmt,
                                      (const uint8_t*)samples, buffer_size, 0);
       if (ret &lt; 0) {
           fprintf(stderr, "Could not setup audio frame\n");
           exit(1);
       }

       /* encode a single tone sound */
       t = 0;
       tincr = 2 * M_PI * 440.0 / c->sample_rate;
       for(i=0;i&lt;200;i++) {
           av_init_packet(&amp;pkt);
           pkt.data = NULL; // packet data will be allocated by the encoder
           pkt.size = 0;

           for (j = 0; j &lt; c->frame_size; j++) {
               samples[2*j] = (int)(sin(t) * 10000);

               for (k = 1; k &lt; c->channels; k++)
                   samples[2*j + k] = samples[2*j];
               t += tincr;
           }
           /* encode the samples */
           ret = avcodec_encode_audio2(c, &amp;pkt, frame, &amp;got_output);
           if (ret &lt; 0) {
               fprintf(stderr, "Error encoding audio frame\n");
               exit(1);
           }
           if (got_output) {
               fwrite(pkt.data, 1, pkt.size, f);
               av_free_packet(&amp;pkt);
           }
       }

       /* get the delayed frames */
       for (got_output = 1; got_output; i++) {
           ret = avcodec_encode_audio2(c, &amp;pkt, NULL, &amp;got_output);
           if (ret &lt; 0) {
               fprintf(stderr, "Error encoding frame\n");
               exit(1);
           }

           if (got_output) {
               fwrite(pkt.data, 1, pkt.size, f);
               av_free_packet(&amp;pkt);
           }
       }
       fclose(f);

       av_freep(&amp;samples);
       avcodec_free_frame(&amp;frame);
       avcodec_close(c);
       av_free(c);
    }

    /*
    * Audio decoding.
    */
    static void audio_decode_example(const char *outfilename, const char *filename)
    {
       AVCodec *codec;
       AVCodecContext *c= NULL;
       int len;
       FILE *f, *outfile;
       uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
       AVPacket avpkt;
       AVFrame *decoded_frame = NULL;

       av_init_packet(&amp;avpkt);

       printf("Decode audio file %s to %s\n", filename, outfilename);

       /* find the mpeg audio decoder */
       codec = avcodec_find_decoder(AV_CODEC_ID_MP2);
       if (!codec) {
           fprintf(stderr, "Codec not found\n");
           exit(1);
       }

       c = avcodec_alloc_context3(codec);
       if (!c) {
           fprintf(stderr, "Could not allocate audio codec context\n");
           exit(1);
       }

       /* open it */
       if (avcodec_open2(c, codec, NULL) &lt; 0) {
           fprintf(stderr, "Could not open codec\n");
           exit(1);
       }

       f = fopen(filename, "rb");
       if (!f) {
           fprintf(stderr, "Could not open %s\n", filename);
           exit(1);
       }
       outfile = fopen(outfilename, "wb");
       if (!outfile) {
           av_free(c);
           exit(1);
       }

       /* decode until eof */
       avpkt.data = inbuf;
       avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, f);

       while (avpkt.size > 0) {
           int got_frame = 0;

           if (!decoded_frame) {
               if (!(decoded_frame = avcodec_alloc_frame())) {
                   fprintf(stderr, "Could not allocate audio frame\n");
                   exit(1);
               }
           } else
               avcodec_get_frame_defaults(decoded_frame);

           len = avcodec_decode_audio4(c, decoded_frame, &amp;got_frame, &amp;avpkt);
           if (len &lt; 0) {
               fprintf(stderr, "Error while decoding\n");
               exit(1);
           }
           if (got_frame) {
               /* if a frame has been decoded, output it */
               int data_size = av_samples_get_buffer_size(NULL, c->channels,
                                                          decoded_frame->nb_samples,
                                                          c->sample_fmt, 1);
               fwrite(decoded_frame->data[0], 1, data_size, outfile);
           }
           avpkt.size -= len;
           avpkt.data += len;
           avpkt.dts =
           avpkt.pts = AV_NOPTS_VALUE;
           if (avpkt.size &lt; AUDIO_REFILL_THRESH) {
               /* Refill the input buffer, to avoid trying to decode
                * incomplete frames. Instead of this, one could also use
                * a parser, or use a proper container format through
                * libavformat. */
               memmove(inbuf, avpkt.data, avpkt.size);
               avpkt.data = inbuf;
               len = fread(avpkt.data + avpkt.size, 1,
                           AUDIO_INBUF_SIZE - avpkt.size, f);
               if (len > 0)
                   avpkt.size += len;
           }
       }

       fclose(outfile);
       fclose(f);

       avcodec_close(c);
       av_free(c);
       avcodec_free_frame(&amp;decoded_frame);
    }

    /*
    * Main WRAPPER function
    */
    void service(){


       /* register all the codecs */
       avcodec_register_all();


       audio_encode_example("test.mp2");
       audio_decode_example("test.sw", "test.mp2");

    }

    #endif

    main.cpp

    #include <qapplication>
    #include "mainwindow.h"

    extern "C"{
       #include "wrapper.h"
    }

    int main(int argc, char *argv[])
    {
       service(); //calling the function service inside the wrapper

       QApplication a(argc, argv);
       MainWindow w;
       w.show();
       return a.exec();
    }
    </qapplication>

    mainwindow.cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"

    MainWindow::MainWindow(QWidget *parent) :
       QMainWindow(parent),
       ui(new Ui::MainWindow)
    {
       ui->setupUi(this);
    }

    MainWindow::~MainWindow()
    {
       delete ui;
    }

    void MainWindow::changeEvent(QEvent *e)
    {
       QMainWindow::changeEvent(e);
       switch (e->type()) {
       case QEvent::LanguageChange:
           ui->retranslateUi(this);
           break;
       default:
           break;
       }
    }

    void MainWindow::on_pushButton_clicked()
    {
           this->close();
    }

    mainwindow.ui
    //Nothing important

    Thanks.

  • What is last click attribution ? A beginner’s guide

    10 mars 2024, par Erin

    Imagine you just finished a successful marketing campaign. You reached new highs in campaign revenue. Your conversion was higher than ever. And you did it without dramatically increasing your marketing budget.

    So, you start planning your next campaign with a bigger budget.

    But what do you do ? Where do you invest the extra money ?

    You used several marketing tactics and channels in the last campaign. To solve this problem, you need to track marketing attribution — where you give conversion credit to a channel (or channels) that acted as a touchpoint along the buyer’s journey.

    One of the most popular attribution models is last click attribution.

    In this article, we’ll break down what last click attribution is, its advantages and disadvantages, and examples of how you can use it to gain insights into the marketing strategies driving your growth.

    What is last click attribution ?

    Last click, or last interaction, is a marketing attribution model that seeks to give all credit for a conversion to the final touchpoint in the buyer’s journey. It assumes the customer’s last interaction with your brand (before the sale) was the most influential marketing channel for the conversion decision.

    What is last click attribution?

    Example of last click attribution

    Let’s say a woman named Jill stumbles across a fitness equipment website through an Instagram ad. She explores the website, looking at a few fitness bands and equipment, but she doesn’t buy anything.

    A few days later, Jill was doing a workout but wished she had equipment to use.

    So, she Googles the name of the company she checked out earlier to take a look at the fitness bands it offers. She’s not sure which one to get, but she signs up for a 10% discount by entering her email.

    A few days later, she sees an ad on Facebook and visits the site but exits before purchasing. 

    The next day, Jill gets an email from the store stating that her discount code is expiring. She clicks on the link, plugs in the discount code, and buys a fitness band for $49.99.

    Under the last click attribution model, the fitness company would attribute full credit for the sale to their email campaign while ignoring all other touchpoints (the Instagram ad, Jill’s organic Google search, and the Facebook ad).

    3 advantages of last click attribution

    Last click attribution is one of the most popular methods to credit a conversion. Here are the primary advantages of using it to measure your marketing efforts :

    Advantages of Last Click Attribution

    1. Easiest attribution method for beginners

    If something’s too complicated, many people simply won’t touch it.

    So, when you start diving into attribution, you might want to keep it simple. Fortunately, last click attribution is a wonderful method for beginner marketers to try out. And when you first begin tracking your marketing efforts, it’s one of the easiest methods to grasp. 

    2. It can have more impact on revenue

    Attribution and conversions go hand in hand. But conversions aren’t just about making a sale or generating more revenue. We often need to track the conversions that take place before a sale.

    This could include gaining a new follower on Instagram or capturing an email subscriber with a new lead magnet.

    If you’re trying to attribute why someone converted into a follower or lead, you may want to ditch last click for something else.

    But when you’re looking strictly at revenue-generating conversions, last click can be one of the most impactful methods for giving credit to a conversion.

    3. It helps you understand bottom-of-funnel conversions

    If SEO is your focus, chances are pretty good that you aren’t looking for a direct sale right out of the gate. You likely want to build your authority, inform and educate your audience, and then maybe turn them into a lead.

    However, when your primary focus isn’t generating traffic or leads but turning your leads into customers, then you’re focused on the bottom of your sales funnel.

    Last click can be helpful to use in bottom-of-funnel (BoFu) conversions since it often means following a paid ad or sales email that allows you to convert your warm audience member.

    If you’re strictly after revenue, you may not need to pay as much attention to the person who reads your latest blog post. After they read the article, they may have seen a social media post. And then, maybe they saw your email with a discount to buy now — which converted them into a paying customer.

    3 challenges of last click attribution

    Last click attribution is a simple way to start analysing the channels that impact your conversions. But it’s not perfect.

    Here are a few challenges of last click attribution you should keep in mind :

    Challenges of last click attribution.

    1. It ignores all other touchpoints

    Last click attribution is a single-touch attribution model. This type of model declares that a single channel gets 100% of the credit for a sale.

    But this can overlook impactful contributions from other channels.

    Multi-touch attribution seeks to give credit to multiple channels for each conversion. This is a more holistic approach.

    2. It fragments the customer journey

    Most customers need a few touchpoints before they’ll make a purchase.

    Maybe it’s reading a blog post via Google, checking out a social media post on Instagram, and receiving a nurture email.

    If you look only at the last touchpoint before a sale, then you ignore the impact of the other channels. This leads to a fragmented customer journey. 

    Imagine this : You tell your marketing leaders that Facebook ads are responsible for your success because they were the last touch for 65% of conversions. So, you pour your entire budget into Facebook ads.

    What happens ?

    Your sales drop by 60% in one month. This happens because you ignored the traffic you were generating from SEO blog posts that led to that conversion — the nurturing that took place in email marketing.

    3. Say goodbye to brand awareness marketing

    Without a brand, you can’t have a sustainable business.

    Some marketing activities, like brand awareness campaigns, are meant to fuel brand awareness to build a business that lasts for years.

    But if you’re going to use last click attribution to measure the effectiveness of your marketing efforts, then you’re going to diminish the impact of brand awareness.

    Your brand, as a whole, has the ability to generate multiples of your current revenue by simply reaching more people and creating unique brand experiences with new audiences.

    Last click attribution can’t easily measure brand awareness activities, which means their importance is often ignored.

    Last click attribution vs. other attribution models

    Last click attribution is just one type of attribution model. Here are five other common marketing attribution models you might want to consider :

    Image of six different attribution models

    First interaction

    We’ve already touched on last click interaction as a marketing attribution model. But one of the most common models does the opposite.

    First interaction, or first touch, gives full credit to the first channel that brought a lead in. 

    First interaction is best used for top-of-funnel (ToFU) conversions, like user acquisition.

    Last non-direct interaction

    A similar model to last click attribution is one called last non-direct interaction. But one major difference is that it excludes all direct traffic from the calculation. Instead, it assigns full conversion credit to the channel that precedes it.

    For instance, let’s say you see someone comes to your website via a Facebook ad but doesn’t purchase. Then one week later, they go directly to your website through a bookmark they saved and they complete a purchase. Instead of giving attribution to the direct traffic touchpoint (entering your site through a saved bookmark), you attribute the conversion to the previous channel.

    In this case, the Facebook ad gets the credit.

    Last non-direct attribution is best used for BoFu conversions.

    Linear

    Another common attribution model is called linear attribution. Here, you split the credit for a conversion equally across every single touchpoint.

    This means if someone clicks on your blog post in Google, TikTok post, email, and a Facebook ad, then the credit for the conversion is equally split between each of these channels.

    This model is helpful for looking at both BoFu and ToFu activities.

    Time decay

    Time decay is an attribution model that more accurately credits conversions across different touchpoints. This means the closer a channel is to a conversion, the more weight is given to it.

    The time decay model assumes that the closer a channel is to a conversion, the greater that channel’s impact is on a sale.

    Position based

    Position-based, also called U-shaped attribution, is an interesting model that gives multiple channels credit for a conversion.

    But it doesn’t give equal credit to channels or weighted credit to the channels closest to the conversion.

    Instead, it gives the most credit to the first and last interactions.

    In other words, it emphasises the conversion of someone to a lead and, eventually, a customer.

    It gives the first and last interaction 40% of the credit for a conversion and then splits the remaining 20% across the other touchpoints in the customer journey.

    If you’re ever unsure about which attribution model to use, with Matomo, you can compare them to determine the one that best aligns with your goals and accurately reflects conversion paths. 

    Matomo comparing linear, first click, and last click attribution models in the marketing attribution dashboard

    In the above screenshot from Matomo, you can see how last-click compares to first-click and linear models to understand their respective impacts on conversions.

    Try Matomo for Free

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

    No credit card required

    Use Matomo to track last click attribution

    If you want to improve your marketing, you need to start tracking your efforts. Without marketing attribution, you will never be certain which marketing activities are pushing your business forward.

    Last click attribution is one of the most popular ways to get started with attribution since it, very simply, gives full credit to the last interaction for a conversion.

    If you want to start tracking last click attribution (or any other previously mentioned attribution model), sign up for Matomo’s 21-day free trial today. No credit card required.