[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:
    8 782
    J'aime reçus:
    240
    "Ç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:
    8 782
    J'aime reçus:
    240
    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
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
[Google AdWords] Thèmes de décembre AdWords 20 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
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice