Naukri’s JobsAdNetwork – Dynamic campaigning made easy

0.00 avg. rating (0% score) - 0 votes
 “Automation applied to an efficient operation will magnify the efficiency”. With this moto JobsAdNetwork was picked up.
We had our team doing marketing via Ads. And they had been doing that manually.
Process took a no of steps for each Ad to be posted
– Decide type of ad.
– Template design.
– Linking to our website (different urls).
– Posting group Ads (Multiple links in single Ad) was more difficult.
Due to the manual process involved the team was able to post very few ads. Also these ads were very generic in nature.
So we thought, why shouldn’t we simplify things and automate this process. We wanted to make things very simple.We finally build a system wherein a user can create configurable number of ads in a single shot.
ad-network
Tools
We used Adwords API and PHPExcel to build the system.
ad-network1
 ad-network2
Finally we ended up creating a system wherein a user sould enter some details like
Headline , Url , Template image in an excel sheet and upload it
User could get the status in reponse excel sheet
ad-network3
ad-network6
Response sheet specifies the status as well as size of ads as per the image.
Some Insights –
– Adwords Api’s exposed by google uses SOAP (Simple Object Access Protocol) to post Ads. We integrated this in our system. It provided support to buid Textual , Template as well as Banner Ads.
– Using PHPExcel we parsed the excel sheet to derive details. PHPExcel is php library which can be used to parse and fetch details from a .xlsx or .xls sheet.. We used it to fetch requirements from the input file. Post creation of Ads output file was written with status.
Challenge and Solution-
We had to reverse enginner things here as SOAP xml generated for the call was very big. and creating it would have been very expensive. Though Google library provided an interface to genarate SOAP xml, to verify and debug if SOAP xml was perfect was a very tedeous and time taking task. Towards the solution, we serialised and saved the object. Rather then creating an object and setting each and every details, only changes which were required were updated in the saved object.
We could specify every detail via Adwords interface which inturn would generate SOAP xml –
Below is a sample implementation of Google Ads Interface
$user = new AdWordsUser();
$adGroupAdService = $user->GetService(‘AdGroupAdService’, ‘v201109’);
$templateAd = new TemplateAd();
$templateAd->templateId = 190;
$templateAd->dimensions = new Dimensions(300, 250);
$templateAd->name = ‘Naukri.com – Pharma Jobs’;
$templateAd->displayUrl = ‘www.naukri.com’;
$templateAd->url = ‘http://www.naukri.com’;
$startImage = new Image();
$startImage->data = MediaUtils::GetBase64Data(‘http://nauk.in/pjMyt’);
$startImage->type = ‘IMAGE’;
$operations = array();
$adGroupAd = new AdGroupAd();
$adGroupAd->adGroupId = $adGroupId;
$adGroupAd->ad = $templateAd;
$operation = new AdGroupAdOperation();
$operation->operand = $adGroupAd;
$operation->operator = ‘ADD’; // We can set operation whether it is ADD or DELETE operations
$operations[] = $operation;
// We can add multiple operations in a single call
$result = $adGroupAdService->mutate($operations);
A part of SOAP xml which is generated which represents details of the Ad like – template details, landing page etc.

Image section –

<fields>
    <name>product3</name>
    <type>IMAGE</type>
    <fieldMedia xsi:type=”Image”>
    <mediaId>41840452</mediaId>
    <type>IMAGE</type>
    <referenceId>7140772687026061312</referenceId>
    <dimensions>
    <key>FULL</key>
    <value>
    <width>200</width>
    <height>132</height>
    </value>
    </dimensions>
    <urls>
    <key>FULL</key>
    <value>https://tpc.googlesyndication.com/pageadimg/imgad?id=CICAgMDO3ceMYxDIARiEASgBMghVsPxoASjagA</value>
    </urls>
    <mimeType>IMAGE_JPEG</mimeType>
    <sourceUrl>media://da/image?source=user_file&amp;id_from_source=phar3.jpg&amp;operation=original</sourceUrl>
    <Media.Type>Image</Media.Type>
    </fieldMedia>
</fields>
URL Part –
    <fields>
        <name>product2Url</name>
        <type>URL</type>
        <fieldText>http://jobsearch.naukri.com/job-listings-Key-Account-Manager-Sr-Key-Account-Manager-High-end-Antibiotics-Classic-Search-Pvt-Ltd-Kolkata-1-to-6-years-120112001413?xz=1_0_5&amp;xo=&amp;xp=10&amp;xid=132637893796331000&amp;qp=manager&amp;id=&amp;f=-120112001413</fieldText>
    </fields>
Font Details
    <fields>
    <name>text3Color</name>
        <type>ENUM</type>
        <fieldText>#ffffff</fieldText>
    </fields>
    <fields>
        <name>text3Font</name>
        <type>ENUM</type>
        <fieldText>arial</fieldText>
</fields>
AdText
    <fields>
        <name>text3</name>
        <type>TEXT</type>
        <fieldText>Key Accnt Manager -High end Antibiotics</fieldText>
    </fields>
Some Sample Ads
ad-network4 ad-network5
What we achieved –
  • Automated process for creation of Ads
  • Earlier only 3-4 ads were created in a day, now we are able to create numerous ads is a single call
  • Now we are able to target specific and latest jobs instead of generic Search Results Page
  • We can target multiple Jobs using single Ad.
Posted in Web Technology