Recherche avancée

Médias (1)

Mot : - Tags -/ogg

Autres articles (97)

  • Qu’est ce qu’un éditorial

    21 juin 2013, par

    Ecrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
    Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
    Vous pouvez personnaliser le formulaire de création d’un éditorial.
    Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...)

  • Contribute to translation

    13 avril 2011

    You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
    To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
    MediaSPIP is currently available in French and English (...)

  • 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.

Sur d’autres sites (7077)

  • Record Audio using ALSA in mp4 format

    18 novembre 2024, par teena meheren

    I am working on to record audio using ALSA library. I am able to record the audio using the same library in .wav file, but what I need is to record an .mp4 file. For that I initialize the FFmpeg encoder to create MP4 file and trying to record the audio by writing the audio frames into the file. The result which I am getting is an empty MP4 file with no audio.

    


    Here I am attaching the code which I have tried

    


    #include &#xA;#include &#xA;#include &#xA;#include <alsa></alsa>asoundlib.h>&#xA;#include <libavcodec></libavcodec>avcodec.h>&#xA;#include <libavformat></libavformat>avformat.h>&#xA;#include <libavutil></libavutil>opt.h>&#xA;#include <libswresample></libswresample>swresample.h>&#xA;&#xA;int terminate = 0;&#xA;int channels = 2;&#xA;&#xA;// Function to handle termination signal&#xA;void sigint_handler(int sig) {&#xA;    terminate = 1;&#xA;}&#xA;&#xA;// Function to initialize the FFmpeg encoder and writer&#xA;AVFormatContext* init_ffmpeg_writer(const char *filename, AVCodecContext **audio_codec_ctx) {&#xA;    AVFormatContext *fmt_ctx = NULL;&#xA;    AVCodec *audio_codec = NULL;&#xA;    AVStream *audio_stream = NULL;&#xA;&#xA;    // Initialize the output format context&#xA;    if (avformat_alloc_output_context2(&amp;fmt_ctx, NULL, "mp4", filename) &lt; 0) {&#xA;        fprintf(stderr, "Could not create output context\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Find the codec&#xA;    audio_codec = avcodec_find_encoder(AV_CODEC_ID_AAC);&#xA;    if (!audio_codec) {&#xA;        fprintf(stderr, "Codec not found\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Create a new stream&#xA;    audio_stream = avformat_new_stream(fmt_ctx, audio_codec);&#xA;    if (!audio_stream) {&#xA;        fprintf(stderr, "Could not create audio stream\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Set up codec context&#xA;    *audio_codec_ctx = avcodec_alloc_context3(audio_codec);&#xA;    (*audio_codec_ctx)->channels = 2;&#xA;    (*audio_codec_ctx)->channel_layout = AV_CH_LAYOUT_STEREO;&#xA;    (*audio_codec_ctx)->sample_rate = 44100;&#xA;    (*audio_codec_ctx)->sample_fmt = AV_SAMPLE_FMT_FLTP; // 32-bit float for input format&#xA;    (*audio_codec_ctx)->bit_rate = 128000; // Bitrate for AAC encoding&#xA;&#xA;    // Open the codec&#xA;    if (avcodec_open2(*audio_codec_ctx, audio_codec, NULL) &lt; 0) {&#xA;        fprintf(stderr, "Could not open codec\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Copy codec parameters from codec context to the stream&#xA;    if (avcodec_parameters_from_context(audio_stream->codecpar, *audio_codec_ctx) &lt; 0) {&#xA;        fprintf(stderr, "Could not copy codec parameters\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Open the output file&#xA;    if (!(fmt_ctx->oformat->flags &amp; AVFMT_NOFILE)) {&#xA;        if (avio_open(&amp;fmt_ctx->pb, filename, AVIO_FLAG_WRITE) &lt; 0) {&#xA;            fprintf(stderr, "Could not open output file\n");&#xA;            exit(1);&#xA;        }&#xA;    }&#xA;&#xA;    // Write the file header&#xA;    if (avformat_write_header(fmt_ctx, NULL) &lt; 0) {&#xA;        fprintf(stderr, "Error occurred when writing header\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    return fmt_ctx;&#xA;}&#xA;&#xA;void write_audio_frame(AVFormatContext *fmt_ctx, AVCodecContext *audio_codec_ctx, uint8_t *buffer, int buffer_size) {&#xA;    AVPacket pkt;&#xA;    AVFrame *frame;&#xA;    int ret;&#xA;    static int64_t frame_count = 0; // Ensure this is initialized correctly&#xA;    static double stream_time = 0;&#xA;&#xA;    // Initialize the packet&#xA;    av_init_packet(&amp;pkt);&#xA;    pkt.data = NULL;&#xA;    pkt.size = 0;&#xA;&#xA;    // Allocate and set up frame&#xA;    frame = av_frame_alloc();&#xA;    frame->nb_samples = audio_codec_ctx->frame_size;&#xA;    frame->channel_layout = audio_codec_ctx->channel_layout;&#xA;    frame->format = audio_codec_ctx->sample_fmt;&#xA;    frame->sample_rate = audio_codec_ctx->sample_rate;&#xA;&#xA;    ret = av_frame_get_buffer(frame, 0);&#xA;    if (ret &lt; 0) {&#xA;        fprintf(stderr, "Could not allocate frame buffer\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Initialize swresample context&#xA;    SwrContext *swr_ctx = swr_alloc();&#xA;    av_opt_set_int(swr_ctx, "in_channel_layout", frame->channel_layout, 0);&#xA;    av_opt_set_int(swr_ctx, "out_channel_layout", frame->channel_layout, 0);&#xA;    av_opt_set_int(swr_ctx, "in_sample_rate", 44100, 0);&#xA;    av_opt_set_int(swr_ctx, "out_sample_rate", 44100, 0);&#xA;    av_opt_set_sample_fmt(swr_ctx, "in_sample_fmt", AV_SAMPLE_FMT_S16, 0);&#xA;    av_opt_set_sample_fmt(swr_ctx, "out_sample_fmt", AV_SAMPLE_FMT_FLTP, 0);&#xA;&#xA;    if (swr_init(swr_ctx) &lt; 0) {&#xA;        fprintf(stderr, "Error initializing swresample context\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Calculate the number of samples based on buffer size and format&#xA;    int num_samples = buffer_size / (2 * channels); // 2 bytes per sample (S16)&#xA;    uint8_t *out_buffer = (uint8_t *)malloc(num_samples * 4); // 4 bytes per sample (float)&#xA;&#xA;    // Resample audio data&#xA;    ret = swr_convert(swr_ctx, &amp;out_buffer, num_samples, (const uint8_t **)&amp;buffer, num_samples);&#xA;    if (ret &lt; 0) {&#xA;        fprintf(stderr, "Error during resampling\n");&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Copy resampled data to the frame&#x27;s buffer&#xA;    int out_size = num_samples * av_get_bytes_per_sample(audio_codec_ctx->sample_fmt);&#xA;    memcpy(frame->data[0], out_buffer, out_size);&#xA;&#xA;    if (frame->data[0] == NULL) {&#xA;        fprintf(stderr, "Frame data is NULL\n");&#xA;    }&#xA;&#xA;    // Set timestamps for the packet&#xA;    pkt.pts = pkt.dts = (frame_count * audio_codec_ctx->frame_size * AV_TIME_BASE) / audio_codec_ctx->sample_rate;&#xA;    stream_time &#x2B;= (double)frame->nb_samples / audio_codec_ctx->sample_rate;&#xA;&#xA;    // Send the frame for encoding&#xA;    ret = avcodec_send_frame(audio_codec_ctx, frame);&#xA;    if (ret &lt; 0) {&#xA;        if (ret == AVERROR(EAGAIN)) {&#xA;            // Encoder is temporarily unavailable, wait or retry&#xA;            fprintf(stderr, "Encoder temporarily unavailable, retrying...\n");&#xA;            return;&#xA;        } else {&#xA;            // Another error occurred&#xA;            fprintf(stderr, "Error sending audio frame to encoder: %s\n", av_err2str(ret));&#xA;            exit(1);&#xA;        }&#xA;    }&#xA;&#xA;    // Receive the encoded packet&#xA;    ret = avcodec_receive_packet(audio_codec_ctx, &amp;pkt);&#xA;    if (ret &lt; 0) {&#xA;        if (ret == AVERROR(EAGAIN)) {&#xA;            // No packet is available yet, maybe retry later&#xA;            fprintf(stderr, "No packet available, retrying...\n");&#xA;            return;&#xA;        } else {&#xA;            fprintf(stderr, "Error encoding audio frame: %s\n", av_err2str(ret));&#xA;            exit(1);&#xA;        }&#xA;    }&#xA;&#xA;    pkt.stream_index = 0;&#xA;&#xA;    // Write the packet to the output&#xA;    ret = av_interleaved_write_frame(fmt_ctx, &amp;pkt);&#xA;    if (ret &lt; 0) {&#xA;        fprintf(stderr, "Error while writing frame\n");&#xA;        exit(1);&#xA;    }else if (ret==0){&#xA;&#xA;    printf("Writing frames successfully\n");&#xA;}&#xA;&#xA;    // Clean up&#xA;    av_frame_free(&amp;frame);&#xA;    av_packet_unref(&amp;pkt);&#xA;    free(out_buffer);&#xA;&#xA;    frame_count&#x2B;&#x2B;;  // Increment the frame count to track timestamps&#xA;}&#xA;&#xA;&#xA;&#xA;&#xA;int main() {&#xA;    snd_pcm_t *capture_handle;&#xA;    snd_pcm_hw_params_t *hw_params;&#xA;    int err;&#xA;    unsigned int sample_rate = 44100;&#xA;    snd_pcm_uframes_t frames = 32;&#xA;    char *buffer;&#xA;    int buffer_size;&#xA;&#xA;    // Register signal handler for termination (Ctrl&#x2B;C)&#xA;    signal(SIGINT, sigint_handler);&#xA;&#xA;    // Open the PCM device for recording (capture)&#xA;    if ((err = snd_pcm_open(&amp;capture_handle, "default", SND_PCM_STREAM_CAPTURE, 0)) &lt; 0) {&#xA;        fprintf(stderr, "cannot open audio device %s (%s)\n", "default", snd_strerror(err));&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Allocate the hardware parameters structure&#xA;    if ((err = snd_pcm_hw_params_malloc(&amp;hw_params)) &lt; 0) {&#xA;        fprintf(stderr, "cannot allocate hardware parameter structure (%s)\n", snd_strerror(err));&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Initialize the hardware parameters with default values&#xA;    if ((err = snd_pcm_hw_params_any(capture_handle, hw_params)) &lt; 0) {&#xA;        fprintf(stderr, "cannot initialize hardware parameter structure (%s)\n", snd_strerror(err));&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Set the desired hardware parameters&#xA;    if ((err = snd_pcm_hw_params_set_access(capture_handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED)) &lt; 0) {&#xA;        fprintf(stderr, "cannot set access type (%s)\n", snd_strerror(err));&#xA;        exit(1);&#xA;    }&#xA;&#xA;    if ((err = snd_pcm_hw_params_set_format(capture_handle, hw_params, SND_PCM_FORMAT_S16_LE)) &lt; 0) {&#xA;        fprintf(stderr, "cannot set sample format (%s)\n", snd_strerror(err));&#xA;        exit(1);&#xA;    }&#xA;&#xA;    if ((err = snd_pcm_hw_params_set_rate_near(capture_handle, hw_params, &amp;sample_rate, 0)) &lt; 0) {&#xA;        fprintf(stderr, "cannot set sample rate (%s)\n", snd_strerror(err));&#xA;        exit(1);&#xA;    }&#xA;&#xA;    if ((err = snd_pcm_hw_params_set_channels(capture_handle, hw_params, channels)) &lt; 0) {&#xA;        fprintf(stderr, "cannot set channel count (%s)\n", snd_strerror(err));&#xA;        exit(1);&#xA;    }&#xA;&#xA;    if ((err = snd_pcm_hw_params(capture_handle, hw_params)) &lt; 0) {&#xA;        fprintf(stderr, "cannot set parameters (%s)\n", snd_strerror(err));&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Free the hardware parameters structure&#xA;    snd_pcm_hw_params_free(hw_params);&#xA;&#xA;    // Prepare the PCM device for use&#xA;    if ((err = snd_pcm_prepare(capture_handle)) &lt; 0) {&#xA;        fprintf(stderr, "cannot prepare audio interface for use (%s)\n", snd_strerror(err));&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // Calculate buffer size&#xA;    buffer_size = frames * channels * 2; // 2 bytes/sample, 2 channels&#xA;    buffer = (char *) malloc(buffer_size);&#xA;&#xA;    // Initialize FFmpeg&#xA;    av_register_all();&#xA;&#xA;    // Initialize the output file and codec&#xA;    AVCodecContext *audio_codec_ctx = NULL;&#xA;    AVFormatContext *fmt_ctx = init_ffmpeg_writer("recorded_audio.mp4", &amp;audio_codec_ctx);&#xA;&#xA;    printf("Recording...\n");&#xA;&#xA;    // Record audio data until termination signal is received&#xA;    while (!terminate) {&#xA;        printf("entered while\n");&#xA;        if ((err = snd_pcm_readi(capture_handle, buffer, frames)) != frames) {&#xA;            fprintf(stderr, "read from audio interface failed (%s)\n", snd_strerror(err));&#xA;            exit(1);&#xA;        }&#xA;&#xA;        // Write audio frame to the MP4 file&#xA;        write_audio_frame(fmt_ctx, audio_codec_ctx, (uint8_t *)buffer, buffer_size);&#xA;    }&#xA;&#xA;    printf("Recording finished.\n");&#xA;&#xA;    // Write the file footer and close&#xA;    av_write_trailer(fmt_ctx);&#xA;    avcodec_free_context(&amp;audio_codec_ctx);&#xA;    avformat_close_input(&amp;fmt_ctx);&#xA;    avformat_free_context(fmt_ctx);&#xA;&#xA;    // Clean up ALSA resources&#xA;    snd_pcm_close(capture_handle);&#xA;    free(buffer);&#xA;&#xA;    return 0;&#xA;}&#xA;

    &#xA;

    Here I am attaching the logs too

    &#xA;

    Recording...&#xA;entered while&#xA;No packet available, retrying...&#xA;entered while&#xA;[mp4 @ 0x611490ddeb40] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly&#xA;[mp4 @ 0x611490ddeb40] Encoder did not produce proper pts, making some up.&#xA;Writing frames successfully&#xA;entered while&#xA;Writing frames successfully&#xA;entered while&#xA;Writing frames successfully&#xA;entered while&#xA;Writing frames successfully&#xA;

    &#xA;

    Can anyone help me how to resolve the above error by setting up the timestamp properly and record audio in mp4 file using ALSA .

    &#xA;

  • 7 Fintech Marketing Strategies to Maximise Profits in 2024

    24 juillet 2024, par Erin

    Fintech investment skyrocketed in 2021, but funding tanked in the following two years. A -63% decline in fintech investment in 2023 saw the worst year in funding since 2017. Luckily, the correction quickly floored, and the fintech industry will recover in 2024, but companies will have to work much harder to secure funds.

    F-Prime’s The 2024 State of Fintech Report called 2023 the year of “regulation on, risk off” amid market pressures and regulatory scrutiny. Funding is rising again, but investors want regulatory compliance and stronger growth performance from fintech ventures.

    Here are seven fintech marketing strategies to generate the growth investors seek in 2024.

    Top fintech marketing challenges in 2024

    Following the worst global investment run since 2017 in 2023, fintech marketers need to readjust their goals to adapt to the current market challenges. The fintech honeymoon is over for Wall Street with regulator scrutiny, closures, and a distinct lack of profitability giving investors cold feet.

    Here are the biggest challenges fintech marketers face in 2024 :

    • Market correction : With fewer rounds and longer times between them, securing funds is a major challenge for fintech businesses. F-Prime’s The 2024 State of Fintech Report warns of “a high probability of significant shutdowns in 2024 and 2025,” highlighting the importance of allocating resources and budgets effectively.
    • Contraction : Aside from VC funding decreasing by 64% in 2023, the payments category now attracts a large majority of fintech investment, meaning there’s a smaller share from a smaller pot to go around for everyone else.
    • Competition : The biggest names in finance have navigated heavy disruption from startups and, for the most part, emerged stronger than ever. Meanwhile, fintech is no longer Wall Street’s hottest commodity as investors turn their attention to AI.
    • Regulations : Regulatory scrutiny of fintech intensified in 2023 – particularly in the US – contributing to the “regulation on, risk off” summary of F-Prime’s report.
    • Investor scrutiny : With market and industry challenges intensifying, investors are putting their money behind “safer” ventures that demonstrate real, sustainable profitability, not short-term growth.
    • Customer loyalty : Even in traditional baking and finance, switching is surging as customers seek providers who better meet their needs. To achieve the sustainable growth investors are looking for, fintech startups need to know their ideal customer profile (ICP), tailor their products/services and fintech marketing campaigns to them, and retain them throughout the customer lifecycle.
    A tree map comparing fintech investment from 2021 to 2023
    (Source)

    The good news for fintech marketers is that the market correction is leveling out in 2024. In The 2024 State of Fintech Report, F-Prime says that “heading into 2024, we see the fintech market amid a rebound,” while McKinsey expects fintech revenue to grow “almost three times faster than those in the traditional banking sector between 2023 and 2028.”

    Winning back investor confidence won’t be easy, though. F-Prime acknowledges that investors are prioritising high-performance fintech ventures, particularly those with high gross margins. Fintech marketers need to abandon the growth-at-all-costs mindset and switch to a data-driven optimisation, growth and revenue system.

    7 fintech marketing strategies

    Given the current state of the fintech industry and relatively low levels of investor confidence, fintech marketers’ priority is building a new culture of sustainable profit. This starts with rethinking priorities and switching up the marketing goals to reflect longer-term ambitions.

    So, here are the fintech marketing strategies that matter most in 2024.

    1. Optimise for profitability over growth at all costs

    To progress from the growth-at-all-cost mindset, fintech marketers need to optimise for different KPIs. Instead of flexing metrics like customer growth rate, fintech companies need to take a more balanced approach to measuring sustainable profitability.

    This means holding on to existing customers – and maximising their value – while they acquire new customers. It also means that, instead of trying to make everyone a target customer, you concentrate on targeting the most valuable prospects, even if it results in a smaller overall user base.

    Optimising for profitability starts with putting vanity metrics in their place and pinpointing the KPIs that represent valuable business growth :

    • Gross profit margin
    • Revenue growth rate
    • Cash flow
    • Monthly active user growth (qualify “active” as completing a transaction)
    • Customer acquisition cost
    • Customer retention rate
    • Customer lifetime value
    • Avg. revenue per user
    • Avg. transactions per month
    • Avg. transaction value

    With a more focused acquisition strategy, you can feed these insights into every company level. For example, you can prioritise customer engagement, revenue, retention, and customer service in product development and customer experience (CX).

    To ensure all marketing efforts are pulling towards these KPIs, you need an attribution system that accurately measures the contribution of each channel.

    Marketing attribution (aka multi-touch attribution) should be used to measure every touchpoint in the customer journey and accurately credit them for driving revenue. This helps you allocate the correct budget to the channels and campaigns, adding real value to the business (e.g., social media marketing vs content marketing).

    Example : Mastercard helps a digital bank acquire 10 million high-value customers

    For example, Mastercard helped a digital bank in Latin America achieve sustainable growth beyond customer acquisition. The fintech company wanted to increase revenue through targeted acquisition and profitable engagement metrics.

    Strategies included :

    • A more targeted acquisition strategy for high-value customers
    • Increasing avg. spend per customer
    • Reducing acquisition cost
    • Customer retention

    As a result, Mastercard’s advisors helped this fintech company acquire 10 million new customers in two years. More importantly, they increased customer spending by 28% while reducing acquisition costs by 13%, creating a more sustainable and profitable growth model.

    2. Use web and app analytics to remotivate users before they disengage

    Engagement is the key to customer retention and lifetime value. To prevent valuable customers from disengaging, you need to intervene when they show early signs of losing interest, but they’re still receptive to your incentivisation tactics (promotions, rewards, milestones, etc.).

    By integrating web and app analytics, you can identify churn patterns and pinpoint the sequences of actions that lead to disengaging. For example, you might determine that customers who only log in once a month, engage with one dashboard, or drop below a certain transaction rate are at high risk for churn.

    Using a tool like Matomo for web and app analytics, you can detect these early signs of disengagement. Once you identify your churn risks, you can create triggers to automatically fire re-engagement campaigns. You can also use CRM and session data to personalize campaigns to directly address the cause of disengagement, e.g., valuable content or incentives to increase transaction rates.

    Example : Dynamic Yield fintech re-engagement case study

    In this Dynamic Yield case study, one leading fintech company uses customer spending patterns to identify those most likely to disengage. The company set up automated campaigns with personalised in-app messaging, offering time-bound incentives to increase transaction rates.

    With fully automated re-engagement campaigns, this fintech company increased customer retention through valuable engagement and revenue-driving actions.

    3. Identify the path your most valuable customers take

    Why optimise web experiences for everyone when you can tailor the online journey for your most valuable customers ? Use customer segmentation to identify the shared interests and habits of your most valuable customers. You can learn a lot about customers based on where the pages they visit and the content they engage with before taking action.

    Use these insights to optimise funnels that motivate prospects displaying the same customer behaviours as your most valuable customers.

    Get 20-40% more data with Matomo

    One of the biggest issues with Google Analytics and many similar tools is that they produce inaccurate data due to data sampling. Once you collect a certain amount of data, Google reports estimates instead of giving you complete, accurate insights.

    This means you could be basing important business decisions on inaccurate data. Furthermore, when investors are nervous about the uncertainty surrounding fintech, the last thing they want is inaccurate data.

    Matomo is the reliable, accurate alternative to Google Analytics that uses no data sampling whatsoever. You get 100% access to your web analytics data, so you can base every decision on reliable insights. With Matomo, you can access between 20% and 40% more data compared to Google Analytics.

    Matomo no data sampling

    With Matomo, you can confidently unlock the full picture of your marketing efforts and give potential investors insights they can trust.

    Try Matomo for Free

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

    No credit card required

    4. Reduce onboarding dropouts with marketing automation

    Onboarding dropouts kill your chance of getting any return on your customer acquisition cost. You also miss out on developing a long-term relationship with users who fail to complete the onboarding process – a hit on immediate ROI and, potentially, long-term profits.

    The onboarding process also defines the first impression for customers and sets a precedent for their ongoing experience.

    An engaging onboarding experience converts more potential customers into active users and sets them up for repeat engagement and valuable actions.

    Example : Maxio reduces onboarding time by 30% with GUIDEcx

    Onboarding optimisation specialists, GUIDEcx helped Maxio cut six weeks off their onboarding times – a 30% reduction.

    With a shorter onboarding schedule, more customers are committing to close the deal during kick-off calls. Meanwhile, by increasing automated tasks by 20%, the company has unlocked a 40% increase in capacity, allowing it to handle more customers at any given time and multiplying its capacity to generate revenue.

    5. Increase the value in TTFV with personalisation

    Time to first value (TTFV) is a key metric for onboarding optimisation, but some actions are more valuable than others. By personalising the experience for new users, you can increase the value of their first action, increasing motivation to continue using your fintech product/service.

    The onboarding process is an opportunity to learn more about new customers and deliver the most rewarding user experience for their particular needs.

    Example : Betterment helps users put their money to work right away

    Betterment has implemented a quick, personalised onboarding system instead of the typical email signup process. The app wants to help new customers put their money to work right away, optimising for the first transaction during onboarding itself.

    It personalises the experience by prompting new users to choose their goals, set up the right account for them, and select the best portfolio to achieve their goals. They can complete their first investment within a matter of minutes and professional financial advice is only ever a click away.

    Optimise account signups with Matomo

    If you want to create and optimise a signup process like Betterment, you need an analytics system with a complete conversion rate optimisation (CRO) toolkit. 

    A screenshot of conversion reporting in Matomo

    Matomo includes all the CRO features you need to optimise user experience and increase signups. With heatmaps, session recordings, form analytics, and A/B testing, you can make data-driven decisions with confidence.

    Try Matomo for Free

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

    No credit card required

    6. Use gamification to drive product engagement

    Gamification can create a more engaging experience and increase motivation for customers to continue using a product. The key is to reward valuable actions, engagement time, goal completions, and the small objectives that build up to bigger achievements.

    Gamification is most effective when used to help individuals achieve goals they’ve set for themselves, rather than the goals of others (e.g., an employer). This helps explain why it’s so valuable to fintech experience and how to implement effective gamification into products and services.

    Example : Credit Karma gamifies personal finance

    Credit Karma helps users improve their credit and build their net worth, subtly gamifying the entire experience.

    Users can set their financial goals and link all of their accounts to keep track of their assets in one place. The app helps users “see your wealth grow” with assets, debts, and investments all contributing to their next wealth as one easy-to-track figure.

    7. Personalise loyalty programs for retention and CLV

    Loyalty programs tap into similar psychology as gamification to motivate and reward engagement. Typically, the key difference is that – rather than earning rewards for themselves – you directly reward customers for their long-term loyalty.

    That being said, you can implement elements of gamification and personalisation into loyalty programs, too. 

    Example : Bank of America’s Preferred Rewards

    Bank of America’s Preferred Rewards program implements a tiered rewards system that rewards customers for their combined spending, saving, and borrowing activity.

    The program incentivises all customer activity with the bank and amplifies the rewards for its most active customers. Customers can also set personal finance goals (e.g., saving for retirement) to see which rewards benefit them the most.

    Conclusion

    Fintech marketing needs to catch up with the new priorities of investors in 2024. The pre-pandemic buzz is over, and investors remain cautious as regulatory scrutiny intensifies, security breaches mount up, and the market limps back into recovery.

    To win investor and consumer trust, fintech companies need to drop the growth-at-all-costs mindset and switch to a marketing philosophy of long-term profitability. This is what investors want in an unstable market, and it’s certainly what customers want from a company that handles their money.

    Unlock the full picture of your marketing efforts with Matomo’s robust features and accurate reporting. Trusted by over 1 million websites, Matomo is chosen for its compliance, accuracy, and powerful features that drive actionable insights and improve decision-making.

     Start your free 21-day trial now. No credit card required.

  • How to make Matomo GDPR compliant in 12 steps

    3 avril 2018, par InnoCraft

    Important note : this blog post has been written by digital analysts, not lawyers. The purpose of this article is to briefly show you where Matomo is entering into play within the GDPR process. This work comes from our interpretation of the UK privacy commission : ICO. It cannot be considered as professional legal advice. So as GDPR, this information is subject to change. We strongly advise you to have a look at the different privacy authorities in order to have up to date information.

    The General Data Protection Regulation (EU) 2016/679, also referred to RGPD in French, Datenschutz-Grundverordnung, DS-GVO in German, is a regulation on data protection and privacy for all individuals within the European Union. It concerns organizations worldwide dealing with EU citizens and will come into force on the 25th May 2018.

    The GDPR applies to ‘personal data’ meaning any information relating to an identifiable person who can be directly or indirectly identified in particular by reference to an identifier. It includes cookies, IP addresses, User ID, location, and any other data you may have collected.

    We will list below the 12 steps recommended by the UK privacy commissioner in order to be GDPR compliant and what you need to do for each step.

    The 12 steps of GDPR compliance according to ICO and how it fit with Matomo

    As mentioned in one of our previous blog post about GDPR, if you are not collecting any personal data with Matomo, then you are not concerned about what is written below.

    If you are processing personal data in any way, here are the 12 steps to follow along with some recommendations on how to be GDPR compliant with Matomo :

    1 – Awareness

    Make sure that people within your organization know that you are using Matomo in order to analyze traffic on the website/app. If needed, send them the link to the “What is Matomo ?” page.

    2 – Information you hold

    List all the personal data you are processing with Matomo within your record of processing activities. We are personally using the template provided by ICO which is composed of a set of 30 questions you need to answer regarding your use of Matomo. We have published an article which walks you through the list of questions specifically in the use case of Matomo Analytics. Please be aware that personal data may be also tracked in non-obvious ways for example as part of page URLs or page titles.

    3 – Communicating privacy information

    a – Add a privacy notice

    Add a privacy notice wherever you are using Matomo in order to collect personal data. Please refer to the ICO documentation in order to learn how to write a privacy notice. You can learn more in our article about creating your privacy notice for Matomo Analytics. Make sure that a privacy policy link is always available on your website or app.

    b – Add Matomo to your privacy policy page

    Add Matomo to the list of technologies you are using on your privacy policy page and add all the necessary information to it as requested in the following checklist. To learn more check out our article about Privacy policy.

    4 – Individuals’ rights

    Make sure that your Matomo installation respects all the individuals’ rights. To make it short, you will need to know the features in Matomo that you need to use to respect user rights (right of access, right of rectification, right of erasure…). These features are available starting in Matomo 3.5.0 released on May 8th : GDPR tools for Matomo (User guide).

    5 – Subject access requests

    Make sure that you are able to answer an access request from a data subject for Matomo. For example, when a person would like to access her or his personal data that you have collected about her or him, then you will need to be you able to provide her or him with this information. We recommend you design a process for this like “Who is dealing with it ?” and check that it is working. If you can answer to the nightmare letter, then you are ready. The needed features for this in Matomo will be available soon.

    6 – Lawful basis for processing personal data

    There are different lawful basis you can use under GDPR. It can be either “Legitimate interest” or “Explicit consent”. Do not forget to mention it within your privacy policy page. Read more in our article about lawful basis.

    7 – Consent

    Users should be able to remove their consent at any time. By chance, Matomo is providing a feature in order to do just that : add the opt-out feature to your privacy policy page.
    We are also offering a tool that allows you optionally to require consent before any data is tracked. This will be useful if a person should be only tracked after she or he has given explicit consent to be tracked.

    8 – Children

    If your website or app is targeted for children and you are using Matomo, extra measures will need to be taken. For example you will need to write your privacy policy even more clear and moreover getting parents consent if the child is below 13. As it is a very specific case, we strongly recommend you to follow this link for further information.

    9 – Data breaches

    As you may be collecting personal data with Matomo, you should also check your “data breach procedure” to define if a leak may have consequences on the privacy of the data subject. Please consult ICO’s website for further information.

    10 – Data Protection by Design and Data Protection Impact Assessments

    Ask yourself if you really need to process personal data within Matomo. If the data you are processing within Matomo is sensitive, we strongly recommend you to make a Data Protection Impact Assessment. A software is available from the The open source PIA software helps to carry out data protection impact assessment, by French Privacy Commissioner : CNIL.

    11 – Data Protection Officers

    If you are reading this article and you are the Data Protection Officer (DPO), you will not be concerned by this step. If that’s not the case, your duty is to provide to the DPO (if your business has a DPO) our blog post in order for her or him to ask you questions regarding your use of Matomo. Note that your DPO can also be interested in the different data that Matomo can process : “What data does Matomo track ?” (FAQ).

    12 – International

    Matomo data is hosted wherever you want. So according to the location of the data, you will need to show specific safeguard except for EU. For example regarding the USA, you will have to check if your web hosting platform is registered to the Privacy Shield : privacyshield.gov/list
    Note : our Matomo cloud infrastructure is based in France.

    That’s the end of this blog post. As GDPR is a huge topic, we will release many more blog posts in the upcoming weeks. If there are any Matomo GDPR topic related posts you would like us to write, please feel free to contact us.

    The post How to make Matomo GDPR compliant in 12 steps appeared first on Analytics Platform - Matomo.