[API Adwords] création du compte sandbox

Discussion dans 'AdWords' créé par Ceubex, 8 Mai 2012.

  1. Ceubex
    Ceubex Nouveau WRInaute
    Inscrit:
    26 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    Bonjour,

    Je cherche à utiliser l'API Adwords en mode Sandbox (pour les tests). Mais je n'y arrive vraiment pas.
    Ils disent sur la page https://developers.google.com/adwords/api/docs/sandbox?hl=fr#getting-started qu'il faut faire une première connexion en get pour l'activer mais je ne comprends vraiment pas comment la faire.

    L'application que j'essaye de faire se trouve être en Java. J'ai essayé le code suivant mais ça n'a pas fonctionné.
    Est-ce que quelqu'un a une idée ?

    Code:
    			String email="monEmail";
    			String password="----";
    			String useragent="----";
    			String userID="-----";
    			String developerToken="----";
    			
    			// connexion
    			AdWordsServiceLogger.log();
    			AdWordsUser user = new AdWordsUser(email,password,userID,useragent,developerToken,true); //le true c'est pour la sandbox
    			
    			
    			
    			
    			CampaignServiceInterface campaignService = user.getService(AdWordsService.V201109.CAMPAIGN_SERVICE);
    			
    			Campaign campaign = new Campaign();
    		    campaign.setName("Interplanetary Cruise #" + System.currentTimeMillis());
    		    campaign.setStatus(CampaignStatus.PAUSED);
    		    campaign.setBiddingStrategy(new ManualCPC());
    		    
    		    Budget budget = new Budget();
    		    budget.setPeriod(BudgetBudgetPeriod.DAILY);
    		    budget.setAmount(new Money(null, 50000000L));
    		    budget.setDeliveryMethod(BudgetBudgetDeliveryMethod.STANDARD);
    		    campaign.setBudget(budget);
    		    
    		    CampaignOperation operation1 = new CampaignOperation();
    		    operation1.setOperand(campaign);
    		    operation1.setOperator(Operator.ADD);
    		    CampaignOperation[] operations1 = new CampaignOperation[] {operation1};
    		    
    		    CampaignReturnValue result = campaignService.mutate(operations1);
    		    
    		    if (result != null && result.getValue() != null) {
    		        for (Campaign campaignResult : result.getValue()) {
    		          System.out.println("Campaign with name \""
    		              + campaignResult.getName() + "\" and id \""
    		              + campaignResult.getId() + "\" was added.");
    		        }
    		      } else {
    		        System.out.println("No campaigns were added.");
    		      }
    			
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 168
    J'aime reçus:
    345
    "Ça ne fonctionne pas", en informatique dire ça ou rien c'est pareil.
    Tu as un message d'erreur ? T'as analysé où ça bloque ? ...
     
  3. Ceubex
    Ceubex Nouveau WRInaute
    Inscrit:
    26 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    J'ai ce message :

    Code:
    AxisFault
     faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server
     faultSubcode: 
     faultString: AuthenticationError.CUSTOMER_NOT_FOUND @ ; trigger:'Mon id Client' Service[CampaignService.mutate]
     faultActor: 
     faultNode: 
     faultDetail: 
    	{https://adwords.google.com/api/adwords/cm/v201109}ApiExceptionFault:<message>AuthenticationError.CUSTOMER_NOT_FOUND @ ; trigger:'Mon id Client' Service[CampaignService.mutate]</message><ApplicationException.Type>ApiException</ApplicationException.Type><errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AuthenticationError"><fieldPath/><trigger>Mon id Client</trigger><errorString>AuthenticationError.CUSTOMER_NOT_FOUND</errorString><ApiError.Type>AuthenticationError</ApiError.Type><reason>CUSTOMER_NOT_FOUND</reason></errors>
    
    AuthenticationError.CUSTOMER_NOT_FOUND @ ; trigger:'Mon id Client' Service[CampaignService.mutate]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:104)
    at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:90)
    at com.google.api.adwords.v201109.cm.ApiException.getDeserializer(ApiException.java:142)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154)
    at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84)
    at org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464)
    at org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547)
    at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157)
    at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at com.google.api.adwords.v201109.cm.CampaignServiceSoapBindingStub.mutate(CampaignServiceSoapBindingStub.java:1139)
     
  4. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 168
    J'aime reçus:
    345
    Ah ben voilà, ça parlera surement plus à ceux qui connaissent JAVA ... et sorry mais pas moi :mrgreen:
     
  5. Ceubex
    Ceubex Nouveau WRInaute
    Inscrit:
    26 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    Super j'adore quand on me fais la morale pour au final me dire que l'erreur nous apprend rien. En effet, connaissant le Java, je confirme qu'on en sait pas plus comme ça.
    Pour les autres que ça pourrait intéressé, j'ai trouvé comment faire (ça faisait 3 jours plein que j'étais sur ce problème. C'est dingue mais ils disent nul part comment faire). Donc pour créer une sandbox Adwords executer le code suivant en mettant à jour les variables de l'authProps. Vous pouvez ensuite verifier l'existance de votre compte grace à l'application sandbox-account-viewer.

    Code:
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		try {
    			
    			String email="monIdentif@gmail.com"; 
    			String password="monPass";
    			String developerToken="monIdentif@gmail.com++EUR";
    			Map<String, Object> authProps = new HashMap<String, Object>();
    		    
    		        authProps.put("email", email);
    		        authProps.put("password",password);
    		        authProps.put("useragent", "bla");
    		        authProps.put("developerToken", developerToken);
    		        authProps.put("useSandbox", "true");
    		    
    
    			
    			// connexio
    			AdWordsServiceLogger.log();
    
                AdWordsUser user = new AdWordsUser(authProps);
    
                
                
    			
    			// Get the CampaignService.
    		      CampaignServiceInterface campaignService1 =
    		          user.getService(AdWordsService.V201109.CAMPAIGN_SERVICE);
    
    		      // Create selector.
    		      Selector selector = new Selector();
    		      selector.setFields(new String[] {"Id", "Name"});
    		      selector.setOrdering(new OrderBy[] {new OrderBy("Name", SortOrder.ASCENDING)});
    		      
    		      // Get all campaigns.
    		      CampaignPage page = campaignService1.get(selector);
    
    		      // Display campaigns.
    		      if (page.getEntries() != null) {
    		        for (Campaign campaign1 : page.getEntries()) {
    		          System.out.println("Campaign with name \"" + campaign1.getName() + "\" and id \""
    		              + campaign1.getId() + "\" was found.");
    		        }
    		      } else {
    		        System.out.println("No campaigns were found.");
    		      }
    		    } catch (Exception e) {
    		      e.printStackTrace();
    		    }
    
    	}
     
  6. Ceubex
    Ceubex Nouveau WRInaute
    Inscrit:
    26 Février 2012
    Messages:
    12
    J'aime reçus:
    0
    Autre difficulté, une fois la sandbox installée, elle est en lecture seule (impossible par exemple d'ajouter une campagne). Pour ça, utilisez l'apli google sandbox viewer. A côté de l'user vous avez un numéro entre parenthèse. C'est le clientCustomerId. Ajoutez donc la ligne suivante à authProps pour vous identifier plus clairement :

    authProps.put("clientCustomerId", userID);

    J'espère que ces indications aideront qq1
     
Chargement...
Similar Threads - [API Adwords] création Forum Date
[API Google Hangout] qui sait comment intégrer l'API google Hangout sur sont site internet Développement d'un site Web ou d'une appli mobile 5 Avril 2012
[API google maps 3] recherche tuto FR + question technique Google : l'entreprise, les sites web, les services 26 Juin 2009
[API] Géoportail Développement d'un site Web ou d'une appli mobile 25 Mai 2009
[api facebook] authenification pour mon site perso ? Développement d'un site Web ou d'une appli mobile 26 Novembre 2007
[Api google] Problème d'encodage Google : l'entreprise, les sites web, les services 5 Septembre 2005
[API] Positionnement d'un site sur plusieurs mots-clés Google : l'entreprise, les sites web, les services 23 Juin 2005
[Api Google] donne les derniers résultats du moteur ? Google : l'entreprise, les sites web, les services 7 Juin 2005
Yahoo [API Yahoo Search] Résultats bizarres... Le café de WebRankInfo 30 Mai 2005
[API Google] Erreur pour une recherche Google : l'entreprise, les sites web, les services 26 Mai 2005
[API] Connaître le nombre d'AdWords sur une recherche Google Google : l'entreprise, les sites web, les services 15 Avril 2005
[API] Super newbie Google : l'entreprise, les sites web, les services 22 Mars 2005
[API Google] Encodage des caractères de la cat. DMOZ Google : l'entreprise, les sites web, les services 20 Mars 2005
[api google] Pb pour intégrer les resultats dans mon site Problèmes de référencement spécifiques à vos sites 24 Décembre 2004
[API GOOGLE] retirer le <b> de $r['title'] Problèmes de référencement spécifiques à vos sites 20 Mai 2004
Enlever les Mobiles et tablettes [campagnes AdWords] AdWords 29 Juillet 2013
[AdWords] Les annonces dynamiques ciblées sur les recherches AdWords 21 Octobre 2011
[Adwords] L'Autorité de la concurrence accepte les concessions de Google AdWords 28 Octobre 2010
[Google AdWords] Nouveau didacticiel AdWords 27 Novembre 2009
[Google AdWords] New search ad formats AdWords 27 Novembre 2009
[AdWords] Nouveautés : générateur de mots clés et de l'outil de sélection des emplacements AdWords 16 Novembre 2009