Recherche avancée

Médias (3)

Mot : - Tags -/spip

Autres articles (86)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • Mediabox : ouvrir les images dans l’espace maximal pour l’utilisateur

    8 février 2011, par

    La visualisation des images est restreinte par la largeur accordée par le design du site (dépendant du thème utilisé). Elles sont donc visibles sous un format réduit. Afin de profiter de l’ensemble de la place disponible sur l’écran de l’utilisateur, il est possible d’ajouter une fonctionnalité d’affichage de l’image dans une boite multimedia apparaissant au dessus du reste du contenu.
    Pour ce faire il est nécessaire d’installer le plugin "Mediabox".
    Configuration de la boite multimédia
    Dès (...)

  • 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 (5541)

  • 7 Ecommerce Metrics to Track and Improve in 2024

    12 avril 2024, par Erin

    You can invest hours into market research, create the best ads you’ve ever seen and fine-tune your budgets. But the only way to really know if your digital marketing campaigns move the needle is to track ecommerce metrics.

    It’s time to put your hopes and gut feelings aside and focus on the data. Ecommerce metrics are key performance indicators that can tell you a lot about the performance of a single campaign, a traffic source or your entire marketing efforts. 

    That’s why it’s essential to understand what ecommerce metrics are, key metrics to track and how to improve them. 

    Ready to do all of the above ? Then, let’s get started.

    What are ecommerce metrics ? 

    An ecommerce metric is any metric that helps you understand the effectiveness of your digital marketing efforts and the extent to which users are taking a desired action. Most ecommerce metrics focus on conversions, which could be anything from making a purchase to subscribing to your email list.

    You need to track ecommerce metrics to understand how well your marketing efforts are working. They are essential to helping you run a cost-effective marketing campaign that delivers a return on investment. 

    For example, tracking ecommerce metrics will help you identify whether your digital marketing campaigns are generating a return on investment or whether they are actually losing money. They also help you identify your most effective campaigns and traffic sources. 

    Ecommerce metrics also help you spot opportunities for improvement both in terms of your marketing campaigns and your site’s UX. 

    For instance, you can use ecommerce metrics to track the impact on revenue of A/B tests on your marketing campaigns. Or you can use them to understand how users interact with your website and what, if anything, you can do to make it more engaging.

    What’s the difference between conversion rate and conversion value ?

    The difference between a conversion rate and a conversion value is that the former is a percentage while the latter is a monetary value. 

    There can be confusion between the terms conversion rate and conversion value. Since conversions are core metrics in ecommerce, it’s worth taking a minute to clarify. 

    Conversion rates measure the percentage of people who take a desired action on your website compared to the total number of visitors. If you have 100 visitors and one of them converts, then your conversion rate is 1%. 

    Here’s the formula for calculating your conversion rate :

    Conversion Rate (%) = (Number of conversions / Total number of visitors) × 100

    Conversion rate formula

    Using the example above :

    Conversion Rate = (1 / 100) × 100 = 1%

    Conversion value is a monetary amount you assign to each conversion. In some cases, this is the price of the product a user purchases. In other conversion events, such as signing up for a free trial, you may wish to assign a hypothetical conversion value. 

    To calculate a hypothetical conversion value, let’s consider that you have estimated the average revenue generated from a paying customer is $300. If the conversion rate from free trial to paying customer is 20%, then the hypothetical conversion value for each free trial signup would be $300 multiplied by 20%, which equals $60. This takes into account the number of free trial users who eventually become paying customers.

    So the formula for hypothetical conversion value looks like this :

    Hypothetical conversion value formula

    Hypothetical conversion value = (Average revenue per paying customer) × (Conversion rate)

    Using the values from our example :

    Hypothetical conversion value = $300 × 20% = $60

    The most important ecommerce metrics and how to track them

    There are dozens of ecommerce metrics you could track, but here are seven of the most important. 

    Conversion rate

    Conversion rate is the percentage of visitors who take a desired action. It is arguably one of the most important ecommerce metrics and a great top-level indicator of the success of your marketing efforts. 

    You can measure the conversion rate of anything, including newsletter signups, ebook downloads, and product purchases, using the following formula :

    Conversion rate

    Conversion rate = (Number of people who took action / Total number of visitors) × 100

    You usually won’t have to manually calculate your conversion rate, though. Almost every web analytics or ad platform will track the conversion rate automatically.

    Matomo, for instance, automatically tracks any conversion you set in the Goals report.

    A screenshot of Matomo's Goals report

    As you can see in the screenshot, your site’s conversions are plotted over a period of time and the conversion rate is tracked below the graph. You can change the time period to see how your conversion rate fluctuates.

    If you want to go even further, track your new visitor conversion rate to see how engaging your site is to first-time visitors. 

    Try Matomo for Free

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

    No credit card required

    Cost per acquisition

    Cost per acquisition (CPA) is the average cost of acquiring a new user. You can calculate your overall CPA or you can break CPA down by email campaign, traffic source, or any other criteria. 

    Calculate CPA by dividing your total marketing cost by the number of new users you acquire.

    Cost per acquisition = Total marketing cost / Number of customers acquired

    CPA = Total marketing cost​ / Number of new users acquired 

    So if your Google Ads campaign costs €1,000 and you acquire 100 new users, your CPA is €10 (1000/100=10).

    It’s important to note that CPA is not the same as customer acquisition cost. Customer acquisition cost considers the number of paying customers. CPA looks at the number of users taking a certain action, like subscribing to a newsletter, making a purchase, or signing up for a free trial.

    Cost per acquisition is a direct measure of your marketing efforts’ effectiveness, especially when comparing CPA to average customer spend and return on ad spend. 

    If your CPA is higher than the average customer spend, your marketing campaign is profitable. If not, then you can look at ways to either increase customer spend or decrease your cost per acquisition.

    Customer lifetime value

    Customer lifetime value (CLV) is the average amount of money a customer will spend with your ecommerce brand over their lifetime. 

    Customer value is the total worth of a customer to your brand based on their purchasing behaviour. To calculate it, multiply the average purchase value by the average number of purchases. For instance, if the average purchase value is €50 and customers make 5 purchases on average, the customer value would be €250.

    Use this formula to calculate customer value :

    Customer value = Average purchase value × Average number of purchases

    Customer value = Average purchase value × Average number of purchases

    Then you can calculate customer lifetime value using the following formula :

    Customer lifetime value = Customer value * Average customer lifespan

    CLV = Customer value × Average customer lifespan

    In another example, let’s say you have a software company and customers pay you €500 per year for an annual subscription. If the average customer lifespan is 5 years, then the Customer Lifetime Value (CLV) would be €2,500.

    Customer lifetime value = €500 × 5 = €2,500

    Knowing how much potential customers are likely to spend helps you set accurate marketing budgets and optimise the price of your products. 

    Return on investment

    Return on investment (ROI) is the amount of revenue your marketing efforts generate compared to total spend. 

    It’s usually calculated as a percentage using the following formula :

    Return On Investment = (Revenue / Total Spend) x 100

    ROI = (Revenue / Total spend) × 100

    If you spend €1,000 on a paid ad campaign and your efforts bring in €5,000, then your ROI is 500% (5,000/1,000 × 100).

    With a web analytics tool like Matomo, you can quickly see the revenue generated from each traffic source and you can drill down further to compare different social media channels, search engines, referral websites and campaigns to get more granular view. 

    Revenue by channel in Matomo

    In the example above in Matomo’s Marketing Attribution feature, we can see that social networks are generating the highest amount of revenue in the year. To calculate ROI, we would need to compare the amount of investment to each channel. 

    Let’s say we invested $1,000 per year in search engine optimisation and content marketing, the return on investment (ROI) stands at approximately 2576%, based on a revenue of $26,763.48 per year. 

    Conversely, for organic social media campaigns, where $5,000 was invested and revenue amounted to $71,180.22 per year, the ROI is approximately 1323%. 

    Despite differences in revenue generation, both channels exhibit significant returns on investment, with SEO and content marketing demonstrating a much higher ROI compared to organic social media campaigns. 

    With that in mind, we might want to consider shifting our marketing budget to focus more on search engine optimisation and content marketing as it’s a greater return on investment.

    Try Matomo for Free

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

    No credit card required

    Return on ad spend

    Return on ad spend (ROAS) is similar to return on investment, but it measures the profitability of a specific ad or campaign.

    Calculate ROAS using the following formula :

    Return on ad Spend = revenue / ad cost

    ROAS = Revenue / Ad cost 

    A positive ROAS means you are making money. If you generate €3 for every €1 you spend on advertising, for example, there’s no reason to turn off that campaign. If you only make €1 for every €2 you spend, however, then you need to shut down the campaign or optimise it. 

    Bounce rate

    Bounce rate is the percentage of visitors who leave your site without taking another action. Calculate it using the following formula :

    Bounce rate = (Number of visitors who bounce / Total number of visitors) * 100

    Bounce rate = (Number of visitors who bounce / Total number of visitors) × 100

    Some portion of users will always leave your site immediately, but you should aim to make your bounce rate as low as possible. After all, every customer that bounces is a missed opportunity that you may never get again. 

    You can check the bounce rate for each one of your site’s pages using Matomo’s page analytics report. Web analytics tools like Google Analytics can track bounce rates for online stores also. 

    A screenshot of Matomo's page view report A screenshot of Matomo's page view report

    Bounce rate is calculated automatically. You can sort the list of pages by bounce rate allowing you to prioritise your optimisation efforts. 

    Don’t stop there, though. Explore bounce rate further by comparing your mobile bounce rate vs. desktop bounce rate by segmenting your traffic. This will highlight whether your mobile site needs improving. 

    Try Matomo for Free

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

    No credit card required

    Click-through rate

    Your clickthrough rate (CTR) tells you the number of people who click on your ads as a percentage of total impressions. You can calculate it by dividing the number of clicks your ad gets by the total number of times people see it. 

    So the formula looks like this :

    Click-through Rate = (Number of clicks / Total impressions) × 100

    CTR (%) = (Number of clicks / Total impressions​) × 100

    If an ad gets 1,000 impressions and 10 people click on it, then the CTR will be 10/1,000 × 100 = 1%

    You don’t usually need to calculate your clickthrough rate manually, however. Most ad platforms like Google Ads will automatically calculate CTR.

    What is considered a good ecommerce sales conversion rate ?

    This question is so broad it’s almost impossible to answer. The thing is, sales conversion rates vary massively depending on the conversion event and the industry. A good conversion rate in one industry might be terrible in another. 

    That being said, research shows that the average website conversion rate across all industries is 2.35%. Of course, some websites convert much better than this. The same study found that the top 25% of websites across all industries have a conversion rate of 5.31% or higher. 

    How can you improve your conversion rate ?

    Ecommerce metrics don’t just let you track your campaign’s ROI, they help you identify ways to improve your campaign. 

    Use these five tips to start improving your marketing campaign’s conversion rates today :

    Run A/B tests

    The most effective way to improve almost all of the ecommerce metrics you track is to test, test, and test again.

    A/B testing or multivariate testing compares two different versions of the same content, such as a landing page or blog post. Seeing which version performs better can help you squeeze as many conversions as possible from your website and ad campaigns. But only if you test as many things as possible. This should include :

    • Ad placement
    • Ad copy
    • CTAs
    • Headlines
    • Straplines
    • Colours
    • Design

    To create and analyse tests and their results effectively, you’ll need either an A/B testing platform or a web analytics solution like Matomo, which offers one out of the box.

    A/B testing in Matomo analytics

    Matomo’s A/B Testing feature makes it easy to create and track tests over time, breaking down each test’s variations by the metrics that matter. It automatically calculates statistical significance, too, meaning you can be sure you’re making a change for the better. 

    Try Matomo for Free

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

  • ffmpeg android unable to build

    2 janvier 2014, par nmxprime

    My goal is to build ffmpeg static libraries so that i can use them with jni and call directly the functions defined in ffmpeg to encode series of images as h264 video stream and render it on screen using GLSurfaceVIew in android 2.3.6.

    Using https://www.ffmpeg.org/doxygen/0.6/api-example_8c-source.html i came to know that by having the required .so files and headers i can do that.

    I followed Android NDK & FFMPEG build and many others. Everywhere i found reference to the build scripts by roman10.

    I use Ubunthu 12.0.4 LTS with android-ndk-r9 and ffmpeg-0.10 source !

    Below is the built script i used !

    NDK=~/android-ndk-r9
    PLATFORM=$NDK/platforms/android-8/arch-arm/
    #PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.7/prebuilt/windows
    PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86

    function build_one
    {
    ./configure --target-os=linux \
    --prefix=$PREFIX \
    --enable-cross-compile \
    --extra-libs="-lgcc" \
    --arch=arm \
    --cc=$PREBUILT/bin/arm-linux-androideabi-gcc-4.8 \
    --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \  
    --nm=$PREBUILT/bin/arm-linux-androideabi-nm \
    --sysroot=$PLATFORM \
    --extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " \
    --disable-shared \
    --enable-static \
    --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog" \
    --disable-everything \
    --enable-demuxer=mov \
    --enable-demuxer=h264 \
    --disable-ffplay \
    --enable-protocol=file \
    --enable-avformat \
    --enable-avcodec \
    --enable-decoder=rawvideo \
    --enable-decoder=mjpeg \
    --enable-decoder=h263 \
    --enable-decoder=mpeg4 \
    --enable-decoder=h264 \
    --enable-parser=h264 \
    --disable-network \
    --enable-zlib \
    --disable-avfilter \
    --disable-avdevice \
    --disable-asm \
    $ADDITIONAL_CONFIGURE_FLAG

    make clean
    make  -j4 install
    $PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
    $PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -soname libffmpeg.so -shared -nostdlib  -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog  --warn-once  --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a
    }


    #arm v7vfpv3
    CPU=armv7-a
    OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
    PREFIX=./android/$CPU
    ADDITIONAL_CONFIGURE_FLAG=
    build_one

    When i run the script( test_build.sh) i get following

    Unknown option "".
    See ./configure --help for available options.
    ./test_build.sh: line 34: --nm=/home/user/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-nm: No such file or directory
    CC      ffmpeg.o
    CC      cmdutils.o
    CC      libavdevice/alldevices.o
    CC      libavdevice/avdevice.o
    CC      libavdevice/dv1394.o
    ffmpeg.c: In function âopt_input_fileâ:
    ffmpeg.c:3698:9: warning: âloop_inputâ is deprecated (declared at libavformat/avformat.h:1049) [-Wdeprecated-declarations]
    ffmpeg.c: In function âopt_output_fileâ:
    ffmpeg.c:4483:9: warning: âloop_outputâ is deprecated (declared at libavformat/avformat.h:1025) [-Wdeprecated-declarations]
    CC      libavdevice/fbdev.o
    CC      libavdevice/lavfi.o
    CC      libavdevice/oss_audio.o
    CC      libavdevice/v4l2.o
    CC      libavfilter/af_aconvert.o
    libavfilter/af_aconvert.c:53:5: warning: function declaration isnât a prototype[-Wstrict-prototypes]
    libavfilter/af_aconvert.c:105:5: warning: function declaration isnât a prototype[-Wstrict-prototypes]
    CC      libavfilter/af_aformat.o
    CC      libavfilter/af_amerge.o
    CC      libavfilter/af_anull.o
    CC      libavfilter/af_aresample.o
    CC      libavfilter/af_ashowinfo.o
    CC      libavfilter/af_asplit.o
    CC      libavfilter/af_astreamsync.o
    CC      libavfilter/af_earwax.o
    CC      libavfilter/af_pan.o
    CC      libavfilter/af_silencedetect.o
    CC      libavfilter/af_volume.o
    CC      libavfilter/allfilters.o
    CC      libavfilter/asink_anullsink.o
    libavfilter/af_volume.c: In function âfilter_samplesâ:
    ./libavutil/arm/intmath.h:104:5: error: invalid 'asm': invalid operand code 'R'
    ./libavutil/arm/intmath.h:104:5: error: invalid 'asm': invalid operand code 'R'
    make: *** [libavfilter/af_volume.o] Error 1
    make: *** Waiting for unfinished jobs....
    ./test_build.sh: line 61: /home/user/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-ar: cannot execute binary file
    ./test_build.sh: line 62: /home/user/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-ld: cannot  binary file

    How can i get it work, or am i trying in wrong way ? Any help is appriciated !!

    Also if some one point me out the reason for errors. I dont' know why nm is showing error although it exist on specified path !
    Thank You

  • Overthinking My Search Engine Problem

    31 décembre 2013, par Multimedia Mike — General

    I wrote a search engine for my Game Music Appreciation website, because the site would have been significantly less valuable without it (and I would eventually realize that the search feature is probably the most valuable part of this endeavor). I came up with a search solution that was a bit sketchy, but worked… until it didn’t. I thought of a fix but still searched for more robust and modern solutions (where ‘modern’ is defined as something that doesn’t require compiling a C program into a static CGI script and hoping that it works on a server I can’t debug on).

    Finally, I realized that I was overthinking the problem– did you know that a bunch of relational database management systems (RDBMSs) support full text search (FTS) ? Okay, maybe you did, but I didn’t know this.

    Problem Statement
    My goal is to enable users to search the metadata (title, composer, copyright, other tags) attached to various games. To do this, I want to index a series of contrived documents that describe the metadata. 2 examples of these contrived documents, interesting because both of these games have very different titles depending on region, something the search engine needs to account for :

    system : Nintendo NES
    game : Snoopy’s Silly Sports Spectacular
    author : None ; copyright : 1988 Kemco ; dumped by : None
    additional tags : Donald Duck.nsf Donald Duck
    

    system : Super Nintendo
    game : Arcana
    author : Jun Ishikawa, Hirokazu Ando ; copyright : 1992 HAL Laboratory ; dumped by : Datschge
    additional tags : card.rsn.gamemusic Card Master Cardmaster

    The index needs to map these documents to various pieces of game music and the search solution needs to efficiently search these documents and find the various game music entries that match a user’s request.

    Now that I’ve been looking at it for long enough, I’m able to express the problem surprisingly succinctly. If I had understood that much originally, this probably would have been simpler.

    First Solution & Breakage
    My original solution was based on SWISH-E. The CGI script was a C program that statically linked the SWISH-E library into a binary that miraculously ran on my web provider. At least, it ran until it decided to stop working a month ago when I added a new feature unrelated to search. It was a very bizarre problem, the details of which would probably bore you to tears. But if you care, the details are all there in the Stack Overflow question I asked on the matter.

    While no one could think of a direct answer to the problem, I eventually thought of a roundabout fix. The problem seemed to pertain to the static linking. Since I couldn’t count on the relevant SWISH-E library to be on my host’s system, I uploaded the shared library to the same directory as the CGI script and used dlopen()/dlsym() to fetch the functions I needed. It worked again, but I didn’t know for how long.

    Searching For A Hosted Solution
    I know that anything is possible in this day and age ; while my web host is fairly limited, there are lots of solutions for things like this and you can deploy any technology you want, and for reasonable prices. I figured that there must be a hosted solution out there.

    I have long wanted a compelling reason to really dive into Amazon Web Services (AWS) and this sounded like a good opportunity. After all, my script works well enough ; if I could just find a simple Linux box out there where I could install the SWISH-E library and compile the CGI script, I should be good to go. AWS has a free tier and I started investigating this approach. But it seems like a rabbit hole with a lot of moving pieces necessary for such a simple task.

    I had heard that AWS had something in this area. Sure enough, it’s called CloudSearch. However, I’m somewhat discouraged by the fact that it would cost me around $75 per month to run the smallest type of search instance which is at the core of the service.

    Finally, I came to another platform called Heroku. It’s supposed to be super-scalable while having a free tier for hobbyists. I started investigating FTS on Heroku and found this article which recommends using the FTS capabilities of their standard hosted PostgreSQL solution. However, the free tier of Postgres hosting only allows for 10,000 rows of data. Right now, my database has about 5400 rows. I expect it to easily overflow the 10,000 limit as soon as I incorporate the C64 SID music corpus.

    However, this Postgres approach planted a seed.

    RDBMS Revelation
    I have 2 RDBMSs available on my hosting plan– MySQL and SQLite (the former is a separate service while SQLite is built into PHP). I quickly learned that both have FTS capabilities. Since I like using SQLite so much, I elected to leverage its FTS functionality. And it’s just this simple :

    CREATE VIRTUAL TABLE gamemusic_metadata_fts USING fts3
    ( content TEXT, game_id INT, title TEXT ) ;
    

    SELECT id, title FROM gamemusic_metadata_fts WHERE content MATCH "arcana" ;
    479|Arcana

    The ‘content’ column gets the metadata pseudo-documents. The SQL gets wrapped up in a little PHP so that it queries this small database and turns the result into JSON. The script is then ready as a drop-in replacement for the previous script.