47

AzoogleAds Soap API With PHP4

Posted June 26th, 2008 by Jeremy Schoemaker

I have been wanting to use the AzoogleAds SOAP API (Advanced Programing Interface) for some time now. Its one of those things that was "on the list" to get to eventually. Last week I got a wild hair and played around with it. I downloaded their PDF but kept getting all kinds of errors when trying to follow it. I pinged some of their developers and they told me to disregard the documentation and helped me get it working.

When I was searching the web I also noticed a lot of other people having the same problems I was so I thought I would post some very basic instructions to get it working.

The first thing you need to do is download the Nusoap library to proccess the SOAP stuff.

Unpack it somewhere on your server.

The first like of your code you will need to include where the nusoap file is like:

include_once "/home/websites/dev/lib/nusoap.php";

Each call to the API basically works like this.

  1. 1) Authenticate
  2. 2) Do what you want
  3. 3) Logout

In order to authenticate we make a call like this:

PHP:
  1. $host = "https://home.<a href="http://www.shoemoney.com/azoogleads.com" style="" target="_blank" rel="nofollow">azoogleads</a>.com/soap/azads2_server.php";
  2. $soapclient = new nusoap_client($host);
  3.  
  4. $hash = $soapclient->call('authenticate',
  5.     array (
  6.         "affil_id" => $params['ID'],
  7.         "login"    => $params['login'],
  8.         "passhash" => $params['password'],
  9.     )

The above code will give us our authentication "$hash" which we will need from now on in making requests to the API.

Next I want to make a call to the API that will give me all my revenue for today. So here is the code for that:

PHP:
  1. $today=date("Y-m-d");
  2. $money = $soapclient->call('getSubHits',
  3.     array (
  4.         "login_hash" => $hash,
  5.         "affiliate_id"   => $params['ID'],
  6.         "offer_id"   => ALL,
  7.         "start_date" => date("$today"),
  8.         "end_date"   => date("$today"),
  9.                                 "traffic_type_id" => "",
  10.         "sales_only" => true
  11.     )
  12. );
  13. print_r($money);

A couple things. As you can see you can start at a certain time and end at a certain time.

This outputs an array of data something like this (offer ids are changed to prevent saturation ;) ):

Array
(
    [0] => Array
        (
            [hits] => 822
            [leads] => 63
            [amount] => 567.000000
            [sub] => d15
            [offer_id] => 1000
        )

    [1] => Array
        (
            [hits] => 2
            [leads] => 1
            [amount] => 2.350000
            [sub] => altd15
            [offer_id] => 1000
        )

    [2] => Array
        (
            [hits] => 59
            [leads] => 2
            [amount] => 1.000000
            [sub] => alt2d15
            [offer_id] => 1000
        )

    [3] => Array
        (
            [hits] => 66
            [leads] => 1
            [amount] => 9.000000
            [sub] => super
            [offer_id] => 1000
        )

)

There are all kinds of functions you can do... search offers... whatever. Check the official AzoogleAds docs (its in your account) for more specifics.

Now when we are all done we need to logout.

PHP:
  1. $msg = $soapclient->call('logout',
  2. array ("login_hash"=>$hash));

And we are done.

Here is my full script putting everything all together. All you should need to do is download the soap library and input your account information.

PHP:
  1. <?
  2. ################  EDIT THIS ###############
  3. include_once "/path/to/nusoap.php";
  4.  
  5. $loginid='put your username here';
  6. $password='put your password here';
  7. $affid='put your 5 digit affiliate id here';
  8.  
  9. ################  STOP EDITING ############
  10.  
  11. $today=date("Y-m-d");
  12.  
  13. $login_info = array (
  14.     "AZOOGLE" => array ( 'login' => "$loginid", 'password' => "$password", 'ID' => "$affid"), // confirmed
  15. );
  16.  
  17. $params = $login_info['AZOOGLE'];
  18.  
  19. $host = "https://home.azoogleads.com/soap/azads2_server.php";
  20. $soapclient = new nusoap_client($host);
  21.  
  22. $hash = $soapclient->call('authenticate',
  23.     array (
  24.         "affil_id" => $params['ID'],
  25.         "login"    => $params['login'],
  26.         "passhash" => $params['password'],
  27.     )
  28. );
  29.  
  30. if (!$hash) {
  31.     die('no connection to Azoogle');
  32. }
  33.  
  34. echo "Connected to Azoogle ($hash)\n";
  35.  
  36. // now I have the connection ($hash)
  37. // load the sub report
  38.  
  39. //array getSubHits(string login_hash, int affiliate_id, int offer_id, string start_date, string end_date, int traffic_type_id = null, boolean sales_only = null)
  40. // I use affil_id instead of affiliate_id because 'authenticate' function returns the connection handle, so I assume the parameter name is right
  41.  
  42.  
  43. $hits = $soapclient->call('getSubHits',
  44.     array (
  45.         "login_hash" => $hash,
  46.         "affiliate_id"   => $params['ID'],
  47.         "offer_id"   => ALL,
  48.         "start_date" => date("$today"),
  49.         "end_date"   => date("$today"),
  50.                                 "traffic_type_id" => "",
  51.         "sales_only" => true
  52.     )
  53. );
  54.  
  55. // yields empty response all the time
  56.  
  57. print_r($hits);
  58.  
  59. $msg = $soapclient->call('logout',
  60. array ("login_hash"=>$hash));
  61.  
  62. // prints 'Logged out successfully.'
  63. echo $msg;
  64.  
  65.  
  66. ?>

So what can you do with this now? Well you can format the array and pass it to mail so it can email you updates throughout the day. You could get more advanced and set thresholds throughout the day...

If you want to get really badass you could tie it into the Adwords API and crank up or lower your spend on specific keywords based on trends.

APIS ROCK!

Disclaimer

Before acting on this post, be sure to read my Disclaimer.

- Comment Likes - Comment Dislikes

47 comments. What say you?

  1. Good Comment?
    Forumistan

    Man, I hate azoogle…

  2. Good Comment?
    Binary Ant

    Cool! I like to work with API’s. You can customize better the appearance, select only the information you want and extend and change the functionality of the standard features :D . I pin this post in my reader in case I apply Azoogle.

  3. Good Comment?
    Nintendo wii

    cool working fine. Yes good to use API its rocks. Thanks again for such detail code.

  4. Good Comment?
    Goran Website

    Thats simple, its a marketing position, no need for development.

  5. Good Comment?
    Goran Website

    I agree with you PPC, its all code to me.

  6. Good Comment?
    Zak Show

    ehhggg, that’s too complicated to apply! How do you lean these stuff J ?

  7. Good Comment?
    shamess

    Where’d you get that assumption from? Am I missing something?

  8. Good Comment?
    DavidTan

    na, scripts written in php4 will still continue to run. nothing fancy with the code above too.

  9. Good Comment?
    OSx86

    Easy, just some PHP. :)

  10. Good Comment?
    OSx86

    I just joined them too, used Shoes affiliate Link. :)

  11. Good Comment?
    OSx86

    APIs Rock indeed, thanks for the details Shoe.

  12. Good Comment?
    Paul

    No problem at all

  13. Good Comment?
    Geiger

    How can you be in PPC and not know a thing about programming?

  14. Good Comment?
    Geiger

    Yes, they are very bad at accepting new unproven people. Personally I kept sending them emails until I was accepted. I also named dropped Shoe’s real names and led them to believe we were friends. I didn’t lie about it, just led Azoogle to believe it. It all worked out and last year I brought in over $100,000 in revenue for them.

  15. Good Comment?
    Geiger

    Nerd posts help people out big time. I was looking for examples before and I found zilch! Thanks again shoe.

  16. Good Comment?
    Hustle Strategy

    haha.

  17. Good Comment?
    PPC

    A BIG nerd post too! Dunno how developers can live with all this code. Scary stuff.

  18. Good Comment?
    PPC

    I am soooo glad I’m not a coder / developer. It all looks like greek to me!

  19. Good Comment?
    Tyler Dewitt

    LOL Too funny…

    You could consider your self a programmer because you do have experience with it. It’s just not your thing like you said, but that’s funny. I got a bit humor out of it :) .

  20. Good Comment?
    Geiger

    The API has been around for a while. It simply didn’t work for me either. I use .Net though. I’ll have to try it again now and hopefully do a write up for that programming language.

  21. Good Comment?
    Tech blog

    Azoogle is not good, they dont accept me :(

  22. Good Comment?
    Jagdeep

    im sure theres a 3rd party app already available to track your commissions daily

  23. Good Comment?
    Web Marketeer

    #1 on Google for “azoogle ads soap api problems” – excellent!

  24. Good Comment?
    Web Marketeer

    That’s why we love your site, Jeremy. Information like this is priceless. Noe let’s see how well you rank in Google for your keywords, so the whole world can find these instructions when they encounter similar issues with AzoogleAds Soap API.

  25. Good Comment?
    Web Marketeer

    Hahahahah….that’s a bit tough on the poor chap, ain’t it?

  26. Good Comment?
    mcQ

    Thanks for your time to put this one ur site….

  27. Good Comment?
    Eva White

    Never gone so much in detail into coding before. I guess I’ll just leave that to the pros.

  28. Good Comment?
    Roshan Bhattarai

    Thanks a lot for the code but I think it should also work for PHP5 as well…

    @ v1nce – nusoap client library is easier to use and provide much easier coding to consume and provide web services than the PHP5’s built in soap library…

  29. Good Comment?
    jatt

    i joined azoogle ads..but no luck huhu

  30. Good Comment?
    Tom

    Can you send me the script after you have dillsmack program it to adjust ad spend based on campaign performance? Thanks.

  31. Good Comment?
    Sports Picks

    a nerd post, sweet! :)

  32. Good Comment?
    Austin(Cowsgonemadd3)

    Yeah it looks confusing.

  33. Good Comment?
    Small Dog breeds

    confusing to say the least!

  34. Good Comment?
    v1nce

    If you want forward compatibility I would definitely suggest staying away from php4 and nusoap. PHP5 has a soap library in core – http://www.php.net/manual/en/ref.soap.php.

  35. Good Comment?
    ddn

    I’m gonna go ahead and guess you’ve never done anything worthwhile in your life.

  36. Good Comment?
    Jack

    Thanks Jeremy, I started writing PHP web services this month with NuSoap so it’s great to see a real-world example.

  37. Good Comment?
    Bryn (Internet Is My Life)

    Hmm interesting, I just signed up with azoogle last week so I’ll have to check this out

  38. Good Comment?
    Winning Startups

    What the hell are you talking about? That went way over my head!

  39. Good Comment?
    JamiesB

    Shoe THANKS I just tested and it works perfectly.

    I also was one of those who “some day” was going to do this.

  40. Good Comment?
    john

    That hurt my brain a little bit! Too much to think about.

  41. Good Comment?
    Melvin

    i’m pretty messed up ryt now with API and have been really trying to learn a lot about it…

  42. Good Comment?
    ShoeMoney

    lol thats probably why I am not a programmer

  43. Good Comment?
    Andre

    API == Application Programming Interface
    API != Advanced Programming Interface

  44. Good Comment?
    Make Money Talks

    Looking good to use API,
    but sometimes is hard to setup without pro help!

  45. Good Comment?
    shamess

    PHP4? Don’t you think that’s a bit dangerous, now that it’s not even supported?

Join the Discussion

*Discount rate good on new registrations only. Credits or refunds cannot be issued on previous registrations. Discount rate good through February 6, 2010, prevailing rate applies after that.