
Recherche avancée
Médias (91)
-
DJ Z-trip - Victory Lap : The Obama Mix Pt. 2
15 septembre 2011
Mis à jour : Avril 2013
Langue : English
Type : Audio
-
Matmos - Action at a Distance
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
DJ Dolores - Oslodum 2004 (includes (cc) sample of “Oslodum” by Gilberto Gil)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Danger Mouse & Jemini - What U Sittin’ On ? (starring Cee Lo and Tha Alkaholiks)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Cornelius - Wataridori 2
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
The Rapture - Sister Saviour (Blackstrobe Remix)
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (54)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)
Sur d’autres sites (7613)
-
How to track Google AdWords campaigns with Matomo
19 décembre 2017, par InnoCraftIn 2016, Google AdWords was the most popular ad service on earth. As a result, it may be your first source for ad spending. Are you interested in knowing whether you are making a profit out of it ? Would you like to know how to track users coming from AdWords with Matomo (Piwik) efficiently ? This is what this article is about.
What you need to know about Google AdWords
By default, each ad you create in Google AdWords is not tracked. Even worse than that, every click on your ad is identified in Matomo (Piwik) as an organic result coming from Google with the following value : “Keyword not defined”.
To make it simple, if you do not track your AdWords campaigns both your paid and organic traffic will be biased within your Matomo (Piwik) account. It will be impossible for you to measure your return on investment and it means that you are throwing your money down the drain.
In order to avoid this, we will show you how to track Google AdWords traffic into Matomo (Piwik).
How to track paid Google AdWords campaigns into Matomo
If you want to analyze Google AdWords campaigns within Matomo (Piwik) properly, you need to add additional tracking parameters to the final URL of each of your ads.
We recommend using the following tool to add the needed additional tracking parameters : https://matomo.org/docs/tracking-campaigns-url-builder/
You will then be able to push additional data to Matomo (Piwik) such as :
- pk_campaign : the name of your ad campaign
- pk_kwd : the keyword associated to this campaign
- pk_source : the source of your campaign
- pk_medium : the type of source, in our case either cpc, cpm, cpa
- pk_content : the content of your ad
If your campaign URL looks like this :
https://your-website.com/
, your campaign URL will then look like this after adding the campaign parameters :https://your-website.com/?pk_campaign=Name-Of-Your-Campaign&pk_kwd=Your-Keyword&pk_source=google&pk_medium=cpc&pk_content=My-Ad-Headline
As each ad URL can be fired by different keywords and can correspond to different campaigns or headlines, you will need to customize the campaign parameters for each URL.
Customizing all of your URLs individually would take you a lot of time under circumstances. That’s why you should know, that each URL parameter can be filled automatically in AdWords with a feature called “Tracking template”.
Simplifying the campaign URL parameters with tracking templates
You can define tracking templates either at the account, campaign or ad group level. For example, by using a tracking template at the account level, all your campaigns will have the same landing page with the URL parameters you defined in the tracking template. By defining it at the campaign level, it means that all your ad groups within the campaign will have the same landing page and so on and so forth. Any tracking template defined in a campaign, will overwrite a tracking template defined at the account level.
Tracking template at the account level
To edit the template at the account level, you need to click on “Settings”, then click on the “Account” settings tab and define your tracking template pattern. For example :
https://your-website.com/?url={lpurl}&pk_campaign=AdWords&pk_kwd=Your-Keyword&pk_source=google&pk_medium=cpc&pk_content=My-Ad-Headline
This will apply to all your URLs within your account. So it is only useful if your website domain is the same across all your ads. The URL parameter is compulsory here.
It can be limiting to have a static value for “pk_campaign” and “pk_kwd” so Google allows you to use dynamic insertion, such as follows :
https://your-landing-page.com/?url={lpurl}&pk_campaign={campaignid}&pk_kwd={keyword}&pk_source=google&pk_medium=cpc&pk_content={creative}
The “keyword” means that the data is automatically replaced with the keyword which fired the ad within your account.
Visit the following page if you want to know more about the different dynamic tags that AdWords supports : https://support.google.com/adwords/answer/6305348#urlinsertion
Tracking template at the campaign level
If you wish to define a tracking template at the campaign level, you will find this option within the “Campaign” settings under the campaign URL options :
Tracking template at the Ad Group level
You can also set it at the Ad Group level within the “Ad Group” settings :
As Google mentions : “If you set up URL options at the campaign level, ad group level, or ad level, those settings will override the account-level options“.
Now that your URLs are properly configured, you will be able to analyze AdWords traffic performances within Matomo (Piwik) once a click is coming from those sources.
Did you like this article ? If yes, do not hesitate to share it or give us your feedback about the topic you would like us to write about.
-
How to track Google AdWords campaigns with Piwik
19 décembre 2017, par InnoCraftIn 2016, Google AdWords was the most popular ad service on earth. As a result, it may be your first source for ad spending. Are you interested in knowing whether you are making a profit out of it ? Would you like to know how to track users coming from AdWords with Piwik efficiently ? This is what this article is about.
What you need to know about Google AdWords
By default, each ad you create in Google AdWords is not tracked. Even worse than that, every click on your ad is identified in Piwik as an organic result coming from Google with the following value : “Keyword not defined”.
To make it simple, if you do not track your AdWords campaigns both your paid and organic traffic will be biased within your Piwik account. It will be impossible for you to measure your return on investment and it means that you are throwing your money down the drain.
In order to avoid this, we will show you how to track Google AdWords traffic into Piwik.
How to track paid Google AdWords campaigns into Piwik
If you want to analyze Google AdWords campaigns within Piwik properly, you need to add additional tracking parameters to the final URL of each of your ads.
We recommend using the following tool to add the needed additional tracking parameters : https://piwik.org/docs/tracking-campaigns-url-builder/
You will then be able to push additional data to Piwik such as :
- pk_campaign : the name of your ad campaign
- pk_kwd : the keyword associated to this campaign
- pk_source : the source of your campaign
- pk_medium : the type of source, in our case either cpc, cpm, cpa
- pk_content : the content of your ad
If your campaign URL looks like this :
https://your-website.com/
, your campaign URL will then look like this after adding the campaign parameters :https://your-website.com/?pk_campaign=Name-Of-Your-Campaign&pk_kwd=Your-Keyword&pk_source=google&pk_medium=cpc&pk_content=My-Ad-Headline
As each ad URL can be fired by different keywords and can correspond to different campaigns or headlines, you will need to customize the campaign parameters for each URL.
Customizing all of your URLs individually would take you a lot of time under circumstances. That’s why you should know, that each URL parameter can be filled automatically in AdWords with a feature called “Tracking template”.
Simplifying the campaign URL parameters with tracking templates
You can define tracking templates either at the account, campaign or ad group level. For example, by using a tracking template at the account level, all your campaigns will have the same landing page with the URL parameters you defined in the tracking template. By defining it at the campaign level, it means that all your ad groups within the campaign will have the same landing page and so on and so forth. Any tracking template defined in a campaign, will overwrite a tracking template defined at the account level.
Tracking template at the account level
To edit the template at the account level, you need to click on “Settings”, then click on the “Account” settings tab and define your tracking template pattern. For example :
https://your-website.com/?url={lpurl}&pk_campaign=AdWords&pk_kwd=Your-Keyword&pk_source=google&pk_medium=cpc&pk_content=My-Ad-Headline
This will apply to all your URLs within your account. So it is only useful if your website domain is the same across all your ads. The URL parameter is compulsory here.
It can be limiting to have a static value for “pk_campaign” and “pk_kwd” so Google allows you to use dynamic insertion, such as follows :
https://your-landing-page.com/?url={lpurl}&pk_campaign={campaignid}&pk_kwd={keyword}&pk_source=google&pk_medium=cpc&pk_content={creative}
The “keyword” means that the data is automatically replaced with the keyword which fired the ad within your account.
Visit the following page if you want to know more about the different dynamic tags that AdWords supports : https://support.google.com/adwords/answer/6305348#urlinsertion
Tracking template at the campaign level
If you wish to define a tracking template at the campaign level, you will find this option within the “Campaign” settings under the campaign URL options :
Tracking template at the Ad Group level
You can also set it at the Ad Group level within the “Ad Group” settings :
As Google mentions : “If you set up URL options at the campaign level, ad group level, or ad level, those settings will override the account-level options“.
Now that your URLs are properly configured, you will be able to analyze AdWords traffic performances within Piwik once a click is coming from those sources.
Did you like this article ? If yes, do not hesitate to share it or give us your feedback about the topic you would like us to write about.
-
Can't play at a good framerate with JavaAV
31 mars 2017, par TW2I have a problem in framerate when I use JavaAV (which use JavaCPP + ffmpeg). When I set my framerate as mentionned at DemuxerExample.java, the frame change each 47000ms which is too long and false. It’s better when I set 1000 / demuxer.getFrameRate() * 1000 ( 47ms) but it’s also false. I can’t have a good framerate. Here is my player class :
package gr.av;
import hoary.javaav.Audio;
import hoary.javaav.AudioFrame;
import hoary.javaav.Demuxer;
import hoary.javaav.Image;
import hoary.javaav.JavaAVException;
import hoary.javaav.MediaFrame;
import hoary.javaav.VideoFrame;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JPanel;
public class Player extends JPanel {
VideoThread videoTHREAD;
AudioThread audioTHREAD;
BufferedImage img = null;
public Player() {
init();
}
private void init(){
videoTHREAD = new VideoThread(this);
audioTHREAD = new AudioThread();
}
public void setImage(BufferedImage img){
this.img = img;
repaint();
}
@Override
public void paint(Graphics g){
if(img != null){
g.drawImage(img, 0, 0, null);
}else{
g.setColor(Color.blue);
g.fillRect(0, 0, getWidth(), getHeight());
}
}
public void setFilename(String filename){
videoTHREAD.setFilename(filename);
audioTHREAD.setFilename(filename);
}
public void play(){
videoTHREAD.playThread();
audioTHREAD.playThread();
}
public void stop(){
videoTHREAD.stopThread();
audioTHREAD.stopThread();
}
public static class VideoThread extends Thread {
//The video filename and a controller
String filename = null;
private volatile boolean active = false;
//Panel to see video
Player player;
public VideoThread(Player player) {
this.player = player;
}
public void setFilename(String filename){
this.filename = filename;
}
public void playThread(){
if(filename != null && active == false){
active = true;
this.start();
}
}
public void stopThread(){
if(active == true){
active = false;
this.interrupt();
}
}
public void video() throws JavaAVException, InterruptedException, IOException, UnsupportedAudioFileException{
Demuxer demuxer = new Demuxer();
demuxer.open(filename);
MediaFrame mediaFrame;
while (active && (mediaFrame = demuxer.readFrame()) != null) {
if (mediaFrame.getType() == MediaFrame.Type.VIDEO) {
VideoFrame videoFrame = (VideoFrame) mediaFrame;
player.setImage(Image.createImage(videoFrame, BufferedImage.TYPE_3BYTE_BGR));
double FPS = demuxer.getFrameRate() * 1000d;
long ms = (long)(1000d / FPS);
System.out.println("FPS = " + FPS + " ; Milliseconds = " + ms);
java.util.concurrent.TimeUnit.MILLISECONDS.sleep(ms);
}
}
demuxer.close();
}
@Override
public void run() {
if(filename != null){
try {
video();
} catch (JavaAVException | InterruptedException | IOException | UnsupportedAudioFileException ex) {
Logger.getLogger(Player.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public static class AudioThread extends Thread {
//The video filename and a controller
String filename = null;
private volatile boolean active = false;
//Audio
AudioFormat format = new AudioFormat(44000, 16, 2, true, false);
AudioInputStream ais;
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
SourceDataLine soundLine;
public AudioThread() {
}
public void setFilename(String filename){
this.filename = filename;
}
public void playThread(){
if(filename != null && active == false){
active = true;
soundON();
this.start();
}
}
public void stopThread(){
if(active == true){
active = false;
soundOFF();
this.interrupt();
}
}
public void audio() throws JavaAVException, IOException {
Demuxer demuxer = new Demuxer();
demuxer.open(filename);
MediaFrame mediaFrame;
while (active && (mediaFrame = demuxer.readFrame()) != null) {
if (mediaFrame.getType() == MediaFrame.Type.AUDIO) {
AudioFrame audioFrame = (AudioFrame) mediaFrame;
byte[] bytes = Audio.getAudio16(audioFrame);
try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes)) {
ais = new AudioInputStream(bais, format, bytes.length / format.getFrameSize());
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
int nBufferSize = bytes.length * format.getFrameSize();
byte[] abBuffer = new byte[nBufferSize];
while (true){
int nBytesRead = ais.read(abBuffer);
if (nBytesRead == -1)
break;
baos.write(abBuffer, 0, nBytesRead);
}
byte[] abAudioData = baos.toByteArray();
soundLine.write(abAudioData, 0, abAudioData.length);
}
ais.close();
}
}
}
demuxer.close();
}
@Override
public void run() {
if(filename != null){
try {
audio();
} catch (JavaAVException | IOException ex) {
Logger.getLogger(Player.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
private void soundON(){
try {
soundLine = (SourceDataLine) AudioSystem.getLine(info);
soundLine.open(format);
soundLine.start();
} catch (LineUnavailableException ex) {
Logger.getLogger(Player.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void soundOFF(){
soundLine.drain();
soundLine.stop();
soundLine.close();
}
}
}