AzoogleAds Soap API With PHP4

by Jeremy Schoemaker on June 26, 2008 · 48 comments

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]
$host = “https://home.azoogleads.com/soap/azads2_server.php”;
$soapclient = new nusoap_client($host);

$hash = $soapclient->call(‘authenticate’,
array (
“affil_id” => $params['ID'],
“login” => $params['login'],
“passhash” => $params['password'],
)
[/php]

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]
$today=date(“Y-m-d”);
$money = $soapclient->call(‘getSubHits’,
array (
“login_hash” => $hash,
“affiliate_id” => $params['ID'],
“offer_id” => ALL,
“start_date” => date(“$today”),
“end_date” => date(“$today”),
“traffic_type_id” => “”,
“sales_only” => true
)
);
print_r($money);
[/php]

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]

$msg = $soapclient->call(‘logout’,
array (“login_hash”=>$hash));
[/php]

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]
################ EDIT THIS ###############
include_once "/path/to/nusoap.php";

$loginid='put your username here';
$password='put your password here';
$affid='put your 5 digit affiliate id here';

################ STOP EDITING ############

$today=date("Y-m-d");

$login_info = array (
"AZOOGLE" => array ( ‘login’ => “$loginid”, ‘password’ => “$password”, ‘ID’ => “$affid”), // confirmed
);

$params = $login_info['AZOOGLE'];

$host = “https://home.azoogleads.com/soap/azads2_server.php”;
$soapclient = new nusoap_client($host);

$hash = $soapclient->call(‘authenticate’,
array (
“affil_id” => $params['ID'],
“login” => $params['login'],
“passhash” => $params['password'],
)
);

if (!$hash) {
die(‘no connection to Azoogle’);
}

echo “Connected to Azoogle ($hash)\n”;

// now I have the connection ($hash)
// load the sub report

//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)
// I use affil_id instead of affiliate_id because ‘authenticate’ function returns the connection handle, so I assume the parameter name is right

$hits = $soapclient->call(‘getSubHits’,
array (
“login_hash” => $hash,
“affiliate_id” => $params['ID'],
“offer_id” => ALL,
“start_date” => date(“$today”),
“end_date” => date(“$today”),
“traffic_type_id” => “”,
“sales_only” => true
)
);

// yields empty response all the time

print_r($hits);

$msg = $soapclient->call(‘logout’,
array (“login_hash”=>$hash));

// prints ‘Logged out successfully.’
echo $msg;

?>
[/php]

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!

About the author...

– who has written 2415 posts on ShoeMoney.com.

Hi I am Jeremy Schoemaker and ShoeMoney.com is my blog. 99% of the post here are done by me but you will see others occasionally make guest posts. This blog is fun to write but for my day job I run several online companies.

Images provided by ShutterStock


Mark recommends you read these posts also:

  1. Yahoo Analytics My Basic 3 Pronged Approach To Website Analytics
  2. pua Things Internet Marketers Can Learn From The Pickup Artist
  3. IMG_4833 If I could – starting over

{ 46 comments… read them below or add one }

1 shamess June 26, 2008 at 5:06 pm

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

Reply

2 Make Money Talks June 26, 2008 at 5:06 pm

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

Reply

3 Andre June 26, 2008 at 5:07 pm

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

Reply

4 ShoeMoney June 26, 2008 at 5:09 pm

lol thats probably why I am not a programmer

Reply

5 Melvin June 26, 2008 at 5:14 pm

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

Reply

6 john June 26, 2008 at 5:21 pm

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

Reply

7 JamiesB June 26, 2008 at 5:21 pm

Shoe THANKS I just tested and it works perfectly.

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

Reply

8 Winning Startups June 26, 2008 at 6:26 pm

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

Reply

9 Bryn (Internet Is My Life) June 26, 2008 at 6:26 pm

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

Reply

10 Jack June 26, 2008 at 6:43 pm

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

Reply

11 ddn June 26, 2008 at 7:03 pm

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

Reply

12 v1nce June 26, 2008 at 7:05 pm

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.

Reply

13 Small Dog breeds June 26, 2008 at 8:04 pm

confusing to say the least!

Reply

14 Austin(Cowsgonemadd3) June 26, 2008 at 9:09 pm

Yeah it looks confusing.

Reply

15 Sports Picks June 26, 2008 at 9:41 pm

a nerd post, sweet! :)

Reply

16 Tom June 26, 2008 at 10:24 pm

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

Reply

17 jatt June 26, 2008 at 10:32 pm

i joined azoogle ads..but no luck huhu

Reply

18 Roshan Bhattarai June 27, 2008 at 1:49 am

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…

Reply

19 Eva White June 27, 2008 at 2:45 am

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

Reply

20 mcQ June 27, 2008 at 4:41 am

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

Reply

21 Web Marketeer June 27, 2008 at 5:21 am

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

Reply

22 Web Marketeer June 27, 2008 at 5:25 am

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.

Reply

23 Web Marketeer June 27, 2008 at 5:27 am

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

Reply

24 Jagdeep June 27, 2008 at 7:11 am

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

Reply

25 Tech blog June 27, 2008 at 7:48 am

Azoogle is not good, they dont accept me :(

Reply

26 Geiger June 27, 2008 at 8:44 am

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.

Reply

27 Tyler Dewitt June 27, 2008 at 8:51 am

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 :) .

Reply

28 PPC June 27, 2008 at 9:58 am

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

Reply

29 PPC June 27, 2008 at 10:00 am

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

Reply

30 Hustle Strategy June 27, 2008 at 10:05 am

haha.

Reply

31 Geiger June 27, 2008 at 10:22 am

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

Reply

32 Geiger June 27, 2008 at 10:23 am

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.

Reply

33 Geiger June 27, 2008 at 12:37 pm

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

Reply

34 Paul June 27, 2008 at 5:10 pm

No problem at all

Reply

35 OSx86 June 28, 2008 at 3:19 pm

APIs Rock indeed, thanks for the details Shoe.

Reply

36 OSx86 June 28, 2008 at 3:28 pm

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

Reply

37 OSx86 June 28, 2008 at 3:29 pm

Easy, just some PHP. :)

Reply

38 DavidTan June 29, 2008 at 4:44 pm

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

Reply

39 shamess June 29, 2008 at 9:01 pm

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

Reply

40 Zak Show July 1, 2008 at 4:40 pm

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

Reply

41 Goran Website July 1, 2008 at 5:22 pm

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

Reply

42 Goran Website July 1, 2008 at 5:26 pm

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

Reply

43 Nintendo wii July 2, 2008 at 3:58 am

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

Reply

44 Binary Ant July 3, 2008 at 2:35 am

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.

Reply

45 Forumistan July 7, 2008 at 9:29 am

Man, I hate azoogle…

Reply

46 Adam March 17, 2010 at 5:08 pm

Seems like Azoogle can’t provide proper support for this API. Does any one know who can give me some answers regarding stuff I’d like to do with the API?

I’m a programmer, so it’s not like I need private lessons or anything, but there are some variables that are unexplained, and some obvious functionality that is either missing or not included in the documentation provided by Azoogle….

I asked my AM, but he could help or find anyone else who could (which is kind f annoying…. why give an API if you can’t support it?)

Reply

Leave a Comment

Previous post:

Next post: