Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

// Copyright 2012 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package adwords.axis.v201309.basicoperations;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.api.ads.adwords.axis.factory.AdWordsServices;
import com.google.api.ads.adwords.axis.v201309.cm.AdGroupAd;
import com.google.api.ads.adwords.axis.v201309.cm.AdGroupAdPage;
import com.google.api.ads.adwords.axis.v201309.cm.AdGroupAdServiceInterface;
import com.google.api.ads.adwords.axis.v201309.cm.OrderBy;
import com.google.api.ads.adwords.axis.v201309.cm.Paging;
import com.google.api.ads.adwords.axis.v201309.cm.Predicate;
import com.google.api.ads.adwords.axis.v201309.cm.PredicateOperator;
import com.google.api.ads.adwords.axis.v201309.cm.Selector;
import com.google.api.ads.adwords.axis.v201309.cm.SortOrder;
import com.google.api.ads.adwords.axis.v201309.cm.TextAd;
import com.google.api.ads.adwords.lib.client.AdWordsSession;
import com.google.api.ads.common.lib.auth.OfflineCredentials;
import com.google.api.ads.common.lib.auth.OfflineCredentials.Api;
import com.google.api.client.auth.oauth2.Credential;

/**
 * This example gets all text ads for a given ad group. To add an ad, run
 * AddTextAds.java.
 *
 * Credentials and properties in {@code fromFile()} are pulled from the
 * "ads.properties" file. See README for more info.
 *
 * Tags: AdGroupAdService.get
 *
 * Category: adx-exclude
 *
 * @author Kevin Winter
 */
public class GetTextAds {

        private static final int PAGE_SIZE = 100;

        /*public static void main(String[] args) throws Exception {


                runExample(adWordsServices, session, adGroupId);
        }*/

        public static List<Map<String, String>>  runExample(Long adGroupId) throws Exception {
                // Generate a refreshable OAuth2 credential similar to a ClientLogin token
                // and can be used in place of a service account.
                Credential oAuth2Credential = new OfflineCredentials.Builder()
                .forApi(Api.ADWORDS)
                .fromFile()
                .build()
                .generateCredential();

                // Construct an AdWordsSession.
                AdWordsSession session = new AdWordsSession.Builder()
                .fromFile()
                .withOAuth2Credential(oAuth2Credential)
                .build();

                AdWordsServices adWordsServices = new AdWordsServices();
                // Get the AdGroupAdService.
                AdGroupAdServiceInterface adGroupAdService =
                        adWordsServices.get(session, AdGroupAdServiceInterface.class);

                int offset = 0;
                boolean morePages = true;

                // Create selector.
                Selector selector = new Selector();
                selector.setFields(new String[] {"Id", "AdGroupId", "Headline", "Description1", "Description2", "DisplayUrl", "Url"});
                selector.setOrdering(new OrderBy[] {new OrderBy("Id", SortOrder.ASCENDING)});
                selector.setPaging(new Paging(offset, PAGE_SIZE));

                // Create predicates.
                Predicate adGroupIdPredicate =
                        new Predicate("AdGroupId", PredicateOperator.IN, new String[] {adGroupId.toString()});
                // By default disabled ads aren't returned by the selector. To return them
                // include the DISABLED status in a predicate.
                Predicate statusPredicate =
                        new Predicate("Status", PredicateOperator.IN,
                                        new String[] {"ENABLED", "PAUSED", "DISABLED"});
                Predicate adTypePredicate =
                        new Predicate("AdType", PredicateOperator.EQUALS, new String[] {"TEXT_AD"});
                selector.setPredicates(new Predicate[] {adGroupIdPredicate, statusPredicate, adTypePredicate});
                List<Map<String, String>> adgroupAdMainDataList = new ArrayList<Map<String,String>>();
                
                while (morePages) {
                        // Get all ads.
                        AdGroupAdPage page = adGroupAdService.get(selector);

                        // Display ads.
                        if (page.getEntries() != null && page.getEntries().length > 0) {
                                for (AdGroupAd adGroupAd : page.getEntries()) {
                                        System.out.println("Ad with id  \"" + adGroupAd.getAd().getId() + "\"" + " and type \""
                                                        + adGroupAd.getAd().getAdType() + "\" was found.");
                                        if(("TextAd").equalsIgnoreCase(adGroupAd.getAd().getAdType())){
                                                TextAd ad = (TextAd) adGroupAd.getAd();
                                                Map<String,String> adgroupAdMap = new HashMap<String,String>();
                                                adgroupAdMap.put("AdgroupId", adGroupAd.getAdGroupId()+"");
                                                adgroupAdMap.put("AdgroupAdId", adGroupAd.getAd().getId()+"");
                                                adgroupAdMap.put("Headline", ad.getHeadline());
                                                adgroupAdMap.put("DisplayUrl", ad.getDisplayUrl());
                                                adgroupAdMap.put("Descrption1", ad.getDescription1());
                                                adgroupAdMap.put("Descrption2", ad.getDescription2());
                                                adgroupAdMap.put("Url", ad.getUrl());
                                                adgroupAdMainDataList.add(adgroupAdMap);
                                        }
                                }
                        } else {
                                System.out.println("No ads were found.");
                        }

                        offset += PAGE_SIZE;
                        selector.getPaging().setStartIndex(offset);
                        morePages = offset < page.getTotalNumEntries();
                }
                return adgroupAdMainDataList;
        }
}