public void Run(AdWordsUser user, long adGroupId)
{
// Get the AdGroupAdService.
AdGroupAdService service =
(AdGroupAdService) user.GetService(AdWordsService.v201306.AdGroupAdService);
// Create a selector.
Selector selector = new Selector();
selector.fields = new string[] {"Id", "Status", "Url", "DisplayUrl", "RichMediaAdSnippet"};
// Set the sort order.
OrderBy orderBy = new OrderBy();
orderBy.field = "Id";
orderBy.sortOrder = SortOrder.ASCENDING;
selector.ordering = new OrderBy[] {orderBy};
// Restrict the fetch to only the selected ad group id.
Predicate adGroupPredicate = new Predicate();
adGroupPredicate.field = "AdGroupId";
adGroupPredicate.@operator = PredicateOperator.EQUALS;
adGroupPredicate.values = new string[] {adGroupId.ToString()};
// Retrieve only third party redirect ads.
Predicate typePredicate = new Predicate();
typePredicate.field = "AdType";
typePredicate.@operator = PredicateOperator.EQUALS;
typePredicate.values = new string[] {"THIRD_PARTY_REDIRECT_AD"};
// By default disabled ads aren't returned by the selector. To return
// them include the DISABLED status in the statuses field.
Predicate statusPredicate = new Predicate();
statusPredicate.field = "Status";
statusPredicate.@operator = PredicateOperator.IN;
statusPredicate.values = new string[] {AdGroupAdStatus.ENABLED.ToString(),
AdGroupAdStatus.PAUSED.ToString(), AdGroupAdStatus.DISABLED.ToString()};
selector.predicates = new Predicate[] {adGroupPredicate, statusPredicate, typePredicate};
// Select the selector paging.
selector.paging = new Paging();
int offset = 0;
int pageSize = 500;
AdGroupAdPage page = new AdGroupAdPage();
try {
do {
selector.paging.startIndex = offset;
selector.paging.numberResults = pageSize;
// Get the third party redirect ads.
page = service.get(selector);
// Display the results.
if (page != null && page.entries != null) {
int i = offset;
foreach (AdGroupAd adGroupAd in page.entries) {
ThirdPartyRedirectAd thirdPartyRedirectAd = (ThirdPartyRedirectAd) adGroupAd.ad;
Console.WriteLine("{0}) Ad id is {1} and status is {2}", i, thirdPartyRedirectAd.id,
adGroupAd.status);
Console.WriteLine(" Url: {0}\n Display Url: {1}\n Snippet:{2}",
thirdPartyRedirectAd.url, thirdPartyRedirectAd.displayUrl,
thirdPartyRedirectAd.snippet);
i++;
}
}
offset += pageSize;
} while (offset < page.totalNumEntries);
Console.WriteLine("Number of third party redirect ads found: {0}", page.totalNumEntries);
} catch (Exception ex) {
throw new System.ApplicationException("Failed to get third party redirect ad(s).", ex);
}
}