jeudi 22 janvier 2015

Combien rapporte un site web ? Voici quelques statistiques sur le gain potentiel d'un site Web avec Google Adsense

Je vais ici partager quelques statistiques de gain avec un site web et Google Adsense :


Le coût par clic :  D’après Google, Le coût par clic (CPC) correspond au montant que vous gagnez chaque fois qu'un internaute clique sur votre annonce. Pour chaque annonce, le CPC est déterminé par l'annonceur. Certains annonceurs peuvent choisir de payer davantage par clic que d'autres, en fonction des produits ou services dont ils font la publicité.

Vous voyez ici 2 valeurs possibles pour le coût par clic sur 2 sites que je possède. Sur un site de basse qualité le CPC est de 8 centimes alors que sur un site de bonnes qualités le CPC peut aller jusqu’à 1 euro 58.



Un site de bonne qualité va donc avoir un CPC beaucoup plus élevé, dans mon exemple c'est un CPC plus élevé de 20 fois par rapport à un site de basse qualité.

Le taux de clics (CTR) des pages est obtenu en divisant le nombre de clics sur les annonces par le nombre de pages vues.
Par exemple, si vous avez reçu 8 clics sur 1 000 pages vues, le CTR de votre bloc d'annonces sera égal à 0,8 %. (8/1000 = 0,8 %)
Voici quelques statistiques de CTR que j'ai obtenu sur plusieurs sites :

Dans mon cas avec les différents site que j'ai j'ai un CTR de à peu prés 0.5%. C'est à dire que lorsque j'ai 1 000 visites, j'ai 5 clics. (5/1000 = 0,5 %). C'est bien ça la dur réalité !!!
Le Gain : 
Le gain est égal : ( Impressions de Pubs ou page vues * CTR / 100 * CPC).

Par exemple : avec un CTR de 0.5%, un CPC de 0.13 euro, et un 100 000 impressions, le gain est de (100 000 * 0.5/100 * 0.13) = 65 euro.
Voici un extrait de mon compte google Adsense avec des informations réelles :
 
Et oui c'est dur, avec prés de 80 000 vues j'ai gagner à peu prés 50 Euro. Beaucoup de travail pour pas beaucoup d'argent je dirais.

lundi 20 mai 2013

Java Google APP Engine Proxy pour résoudre les problèmes de cross domain

Vous êtes peut être en train de développer une application java, peut être sous google appengine, vous voulez manipuler des images ou des ressources qui sont sur d'autres serveurs mais malheureusement vous avez un problème de cross domain. La solution c'est de faire un proxy.

Voici le code d'un proxy qui marche niquel sous sous App Angine. Vous avez le test ici : http://paint.mcbjam.com/proxy?fwdurl=http://fr.wikipedia.org/wiki/Maison-Blanche


dimanche 12 mai 2013

Cloudinary pour réaliser un upload d'image en Jquery avec un back end java

Vous connaissez peut être Cloudinary  qui propose une api pour manager des photos dans le cloud. Cette api permet de réaliser des uploads d'image de différent format en directement en Jquery. Vous avez en plus accès dans la version gratuite à 500 mo d'images une api pour faire des transformations d'images.


Dans ce tutoriel je vous propose de vous montrer comment utiliser Cloudinary pour réaliser un upload en Jquery.

Vous devez pour cela avoir un compte Cloudinary. Vous pouvez en créez un ici : https://cloudinary.com/users/register/free

L'utilisation de Cloudinary pour réaliser un upload nécessite un code HTML/Javascript et un code coté serveur. Dans mon tutorial l'implémentation coté serveur est une imlémentation Java.

lundi 6 mai 2013

Api Twitter Sans authentification Utilisateur


La plus part des méthodes de l'api twitter nécessite une authentification utilisateur.

On peut par exemple regarder la documentation officiel de la méthde "GET statuses/user_timeline" pour se rendre compte que cette méthode nécessite une authentification.



Une méthode (l'unique) permet d'obtenir des tweet sans authentification. Cette méthode est 
GET search. Pour commencer à utiliser cette api, commencer avec le code ici : http://jsfiddle.net/73L4c/6/


J'utilise cette api dans les pages suivantes : 




samedi 27 avril 2013

API Facebook : Uploader une photo avec le SDK facebook javascript

Voici le code pour uploader une photo sur facebook à partir d'une URL :


function uploadphoto() {
     var imgURL = 'URL de la photo a uploader';
 
    FB.api('/10151524688338614/photos', 'post', {
        message: ' Ma photo',
        url: imgURL,
   
    }, function (response) {
        if (!response || response.error) {
       
        } else {
            alert('Your Photo was upload on Facebook');
        }
    });
}

Le numéro 10151524688338614 est le numéro de l'album photo dans le quel on veut uploader la photo. NB : Si l'album n’existe pas il sera créer.


Pour utiliser ce code vous devez déjà avoir une application facebook qui permet à l'utilisateur de s'authentifier. Voici un Tutorial complet pour créer la première application facebook :
http://mcbjam.blogspot.fr/2013/04/voici-un-demarrer-avec-facebook-et-son.html


J'utilise ce code dans l'application suivante que j'ai développer : Paint Jam


vendredi 26 avril 2013

Démarrer avec l'api Facebook en javascript.




Voici un Tutorial pour démarrer avec Facebook et son api.

Dans la suite de ce tutoriel je vous montrerai comment créer une application utilisant l'API facebook. L'application est en HTML javascript uniquement?





Pour commencer créer une application facebook ici :
https://developers.facebook.com/apps

Vous devez bien sur avoir un compte facebook pour cela. Vous devez egalement aimer la page developpers de facebook pur pouvoir créer une application.




Donnez un nom à l'application et un un espace de nom



Indiquez le domaine de votre site web :


Cela est suffisant pour avoir une application facebook intégré à son site web.


Créer une simple page HTML et incluez le code suivant :

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Facebook Sample</title>
</head>
<body>
    <script>
    //-----  Load facebook  --->
    $(document).ready(function () {
        var fbAppId = 'YOUR_APP_KEY';

        window.fbAsyncInit = function () {
            FB.init({
                appId: fbAppId,        // App ID
                status: true,           // check login status
                cookie: true,           // enable cookies to allow the server to access the session
                xfbml: true            // parse page for xfbml or html5 social plugins like login button below
            });
        };

        // Load the SDK asynchronously
        (function (d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) { return; }
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/en_US/all.js";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));
    })
    //-----  End Load facebook ------------------------------->
    </script>
</body>
</html>


Modifier le code en y remplaçant YOUR_APP_KEY par la clé de votre application facebook obtenu lors de la création de cette dernière.

Ce code permet d'initialer facebook et le sdk javascript de facebook.

Nous allons maintenant rajouter un bouton de login pour l'utilisateur. Rajouter le code suivant dans votre HTML :

 <input type="button" onclick="loginaction()" value="connect to facebook"/>


La fonction loginaction : 


 function loginaction() {
            // Demander a Facebook si l'utilisateur est connecté à Facebook et est autorisé pour notre application
            FB.getLoginStatus(function (response) {
                //L'utilisateur et authentifié à Facebook et est autorisé à utiliser notre application
                if (response.status === 'connected') {
                    showprofil();
                } else if (response.status === 'not_authorized') {
                    // L'utilisateur est connecté à Facebook mais n'est pas autorisé à utilisée notre application
                    login();
                } else {
                    // L'utilisateur n'est pas connecté à Facebook
                    login();
                }
            });
        }


La fonction loginaction commence à demander à Facebook si l'utilisateur est connecté à Facebook et est autorisé pour notre application. La méthode utilisé est FB.getLoginStatus(funtion) donné dans par le SDK facebook. La réponse peut être :

  1. Connected : Connecté à facebook et autorisé sur l'application
  2. not_authorized : L'utilisateur est connecté à facebook mais n'est pas autorisé à utiliser notre application
  3. L'utilisateur n'est pas connecté à facebook.

Dans le cas 2 et 3, nous appelons la méthode login() pour réaliser la connection. Dans le cas 1, on va appeler la méthode showprofil() qui va afficher le profil de l'utilisateur.


La fonction login : 

 function login() {
            FB.login(function (response) {
                if (!response.authResponse) {
                    alert(response);
                }
            });
        }
La fonction login fait simplement l'appel facebook FB.login(funtion) qui permet de s'authentifier à travers une popup d'authentification facebook. La fonctino FB.login demande également à l'utilisateur s'l désire interagir avec notre application. Si la connexion est un echec, la fonction login affiche simplement l'erreur.

La fonction showprofil :

    function showprofil() {
        FB.api('/me?fields=picture,name', function (response) {
            $('#profil').empty();
            $('#profil').show();
            $('#profil').append('<img src="' + response.picture.data.url + '">');
            $('#profil').append('<a href="' + response.link + '">' + response.name + '</a>');

        });
    }


La fonction showprofil utilise l'Open Graph de facebook pour récupérer l'image et le nom de l'utilisateur authentifié. L'appel est simple est est de la forme FB.api ( 'requete', function())

Vous pouvez explorer les requêtes possible ici : https://developers.facebook.com/tools/explorer?method=GET&path=660718613%3Ffields%3Did%2Cname

La fonction affiche ensuite à l'aide de Jquery le nom et l'image de l’utilisateur dans la balise balise profil :
    <div id="profil"></div>


Pour inclure Jquery inserez simplement dans votre page :
 <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
Vous pouvez bien sur réaliser la meme chose sans Jquery, l'utilisation de Jquery ne modifie en rien l'intégration avec l'API facebook.


Le code final de votre page HTML est :

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Facebook Sample</title>
</head>
<body>
    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
 
    <script>
    //-----  Load facebook for like buttoon and comment at least --->
    $(document).ready(function () {
        var fbAppId = '445930615488341';
        var accesstoken = '';


        window.fbAsyncInit = function () {
            FB.init({
                appId: fbAppId,        // App ID
                status: true,           // check login status
                cookie: true,           // enable cookies to allow the server to access the session
                xfbml: true            // parse page for xfbml or html5 social plugins like login button below
            });
        };

        // Load the SDK asynchronously
        (function (d, s, id) {
            var js, fjs = d.getElementsByTagName(s)[0];
            if (d.getElementById(id)) { return; }
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/en_US/all.js";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));
    })
        //-----  End Load facebook ------------------------------->


    function showprofil() {
        FB.api('/me?fields=picture,name', function (response) {
            $('#profil').empty();
            $('#profil').show();
            $('#profil').append('<img src="' + response.picture.data.url + '">');
            $('#profil').append( response.name);

        });
    }

        function login() {
            FB.login(function (response) {
                if (response.authResponse) {
                    accesstoken = FB.getAuthResponse()['accessToken'];
                    //dojob();
                } else {
                    alert(response);
                }
            });
        }

        function loginaction() {
            // Demander a Facebook si l(utilisateur est connecté à Facebook et est autorisé pour notre application
            FB.getLoginStatus(function (response) {
                //L'utilisateur et authentifié à Facebook et est autorisé à utiliser notre application
                if (response.status === 'connected') {
                    showprofil();
                } else if (response.status === 'not_authorized') {
                    // L'utilisateur est connecté à facebook mais n'est pas autorisé à utilisée notre application
                    login();
                } else {
                    // L'utilisateur n'est pas connecté à facebook
                    login();
                }
            });
        }
    </script>
     <div id="fb-root"></div>

    <input type="button" onclick="loginaction()" value="connect to facebook"/>
    <div id="profil"></div>
</body>
</html>


Vous pouvez recuperer le code ici :

McbJam Blog: Simple facebook javascript starter kit




jeudi 18 avril 2013

Blogger API javascript Starter Kit. Tutorial pour l'utilisation de l'api Blogger de Google en javascript

Voilà ce que je vous propose de réaliser dans ce Tutorial : Blogger API Exemple

Une petite application de 2 fichier html qui permet de récupérer son blog hébergé dans blogger et de l'afficher en javascript.

Vous pouvez essayer l'application avec votre blog blogger maintenant en utilisant l'url suivante et en mettant votre blogid.

http://www.mcbjam.com/blog.html?blogid=9148154939134531051

Vous avez le code de l'application ici sur github : http://j.gs/25NE

L'application contient 2 fichier. Le fichier blog.html permet de simplement récupérer la liste des posts d'un blog donné. Le fichier post.html récupérer et affiche un post donné. L'id du post est donné dans l'url de l'appel.

Pour utiliser l'application il vous faut une application google, voici le lien pour la créer :
https://code.google.com/apis/console/

Pur installer l'application, il suffit de télécharger le dossier dans github, de mettre votre clé de l'application google dans les 2 fichiers et de déployer le répertoire.

Vous trouverez d'autres code sur ce site.

mardi 16 avril 2013

Editer des Photos facebook en ligne

J'ai réaliser une application web qui permet d'éditer les photo facebook en ligne et gratuitment.

Cette application permet de choisir facilement une photo dans un album donné, puis d'utiliser l'éditeur de d'image Aviary pour éditer les photos.

Ensuite il est possible d'uploader la nouvelle photo obtenu sur facebook, en un seul clic :p

Voici cette application Paint Jam :Facebook Photo Edit

lundi 15 avril 2013

Gérer ces images dans le cloud. Développer un serveur d'images

Vous êtes en train de développer un site web, un blog une application et vous désirez avoir un serveur d'images ou de photos rapidement pour pouvoir stocker des photos, uploder des photos, rechercher dans les photos .....

Voici une solution facile mais un peu technique pour avoir un serveur d'image rapidement et gratuitement

Il suffit d'utiliser APPFOGE avec Cloudinary

Cloudinary offre un stockage d'image de 50GB ainsi qu'une api accessible en plusieurs langage notamenet php, Jquery ou node.js. Cloudinary donne un script pour manipuler les images.

APPFOGE offre un hébergement gratuit pour les technologies fonctionnant avec les technologies Cloudinary.

Voilà, un serveur pour uploader ces images, les stocker, les récupérer et tout ca gratuitement dans les limites de CLoudinary.

Si vous êtes intéressé par cette solution vous pouvez me contacter.





samedi 13 avril 2013

Formulaire de contact pour site web avec Google drive en HTML et javascript.


Pour réaliser rapidement une formulaire de contact pour nu site web en javascript et sans base de données,  on peut utiliser Google Form. Cela prend 5 minutes si on a un compte google.

Le résultat qui sera obtenu en 5 minute sera celui là : Démo

Commencer par aller chercher le template de ce form sur google form ici, puis cliquer sur "use this template" en haut à droite.

Modifier le texte et les champs du form comme cous le souhaitez.

Cliquez sur "More Actions" et choisissez "Embeded". Copiez le code obtenu dans votre site web. Ca ressemble à ça :

<iframe src="https://docs.google.com/spreadsheet/embeddedform?formkey=dDFsUVdaNmpmT1lFSEhlaHZxLVRFYmc6MA" width="760" height="1072" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe>


Enregistrez ce dernier. Vous arrivez sur le tableau Excel dans lequel sont stocké les demandes de mises en contact.

Pour ne pas perdre ce lien, mettez le lien dans une page admin de votre site web, ou bien il est disponible via google Drive.


vendredi 12 avril 2013

Simple facebook javascript starter kit


Comment démarrer avec Facebook, comment créer rapidement une application utilisant facebook et comment gérer les authentifications ?

Voici une démo de ce que je vous propose de réaliser ici.

Vous avez le code de cette démo ici http://mcbjam.github.io/SimpleFacebook/

Cette petite application utilise le SDK de facebook pour réaliser une authentification, des requêtes pour obtenir des informations sur la personne authentifiée ainsi que ces amis, et finit en postant dans le feed de facebook.

Voici un Tutorial pour créer sa première application facebook.

Une fois l'application créer, récupérer le code de mon application exemple et modifier la ligne  4 du script simplefacebook.js pour y indiquer votre appkey?

Cette application utilise Jquery et Bootstrap standart actuelle, je vous conseille vivement d'utiliser ces bibliothèques extensible et robuste permettant de réduire considérablement le code à écrire pour faire du html et du js.

Je vous conseille ensuite d'explorer l'API facebook ici : Facebook Explorer

Puis regarder la documentation ici pour commencer.

Voilà une autre application que j'ai fait intégrant Facebook. Elle permet de récupérer les albums de l'utilisateur et ensuite de poster une nouvelle photo dans un album.

Si vous avez des questions concernant facebook ou le développement html5 et bootstrao, n'hésitez à me laisser un message ou un commentaire.


mardi 2 avril 2013

Industrialisation et agilité :



Les moyens à mettre en œuvre pour réussir la reprise et l’industrialisation d’une application tout en maintenant une forte agilité vis-à-vis des utilisateurs sont les suivants :

-          Implication des utilisateurs et des différents interlocuteurs dans le processus de reprise et d’industrialisation.
-          Implication des utilisateurs et différents interlocuteurs dans le processus de sécurisation de l’application.
-          Organiser des points réguliers avec les personnes qui expriment le besoin
-          Différencier les évolutions en termes de sécurisation de l’application (supervision, exploitation, packaging, robustesse, performance, maintenabilité …) des évolutions métier
-          Sensibiliser les utilisateurs et les différents interlocuteurs  sur la valeur ajoutée induite par la sécurisation de l’application
-          Mettre en place des évolutions par lot, et livrer le plus souvent possible des versions opérationnelles de l’application
-          Définir un Interlocuteur unique qui recueille les besoins auprès des utilisateurs et les priorise
-          Former les utilisateurs et les différents interlocuteurs sur les différents outils permettant l’industrialisation : Gestionnaire de bugs, suivi des écarts,
-          Mettre en place une méthodologie orienté Produit et non pas projet
-          Réutiliser au maximum les outils et les processus en place avant la reprise et l’industrialisation
-          Différencier de manière significative les processus d’exploitation de l’application des processus d’évolution métier de l’application. Réaliser les 2 activités par des équipes différentes.
-          Concevoir les éléments de type packaging et supervision de manière à ne pas modifier l’utilisation métier actuelle de l’application.
-          Réaliser des améliorations ayant pour objectif d’améliorer la maintenabilité de l’application dans l’unique objectif de rendre plus aisé l’évolution métier de l’application.
-          Définir une Road map de l’évolution métier de l’application à moyen et long terme afin de bien maitrisé l’évolution technique et d’architecture de l’application.
-          Différencier les plate-forme de test métier et les plate-forme de test liée à la supervision, la robustesse et la performance. Avoir des cahiers de test métier et des cahiers de test en terme de sécurisation différent.
-          Découper les évolutions en terme d’industrialisation en lot, permettant ainsi de garantir des livraisons fréquentes de l’application, et de ne pas bloquer les évolutions métier.