我正在使用谷歌广告,目前无法获得具体信息。在我的Adwords帐户上,我设置了3个IP地址排除IP地址。我想从我的代码中获得这些IP:
AdWordsUser user = new AdWordsUser();
var campaignService = (CampaignCriterionService)user.GetService(AdWordsService.v201506.CampaignCriterionService);
int offset = 0;
int pageSize = 500;
var page = new CampaignCriterionPage();
String awql = "SELECT Id where IsNegative = true ORDER BY Id ASC LIMIT " + offset + "," + pageSize;
try
{
do
{
page = campaignService.query(awql);
// Display the results.
if (page != null && page.entries != null)
{
int i = offset;
foreach (var item in page.entries)
{
var t = item; //my work logic here ....
i++;
}
}
offset += pageSize;
} while (offset < page.totalNumEntries);
Debug.WriteLine("Number of items found: {0}", page.totalNumEntries);
}
catch (Exception e)
{
throw new System.ApplicationException("Failed to retrieve campaigns", e);
}查询返回结果数: 3,但没有关于ipAddress的实际信息(ipAddress包含null)。
我能做什么?
发布于 2016-04-27 06:13:37
不幸的是,我不相信AWQL为一个被阻止的IP地址提供了一个选择器。在任何情况下,它肯定不会与您在上面使用的AWQL语句一起提供,该语句只返回Id字段:
字符串awql = "SELECT Id where IsNegative = true ORDER BY Id ASC LIMIT“+ offset + ",”+ pageSize;try
这就是响应中的值为空的原因。
我认为唯一可能的方法是使用该服务的Selector和Predicate对象,并使用get()方法而不是query()方法。
此解决方案适用于我(诚然,使用较新版本的API)
var campaignCriterionService = (CampaignCriterionService)user.GetService(AdWordsService.v201601.CampaignCriterionService);
int offset = 0;
int pageSize = 500;
var page = new CampaignCriterionPage();
try
{
do
{
page = campaignCriterionService.get(new Selector
{
fields = new string[] { IpBlock.Fields.Id, IpBlock.Fields.IpAddress },
predicates = new Predicate[]
{
new Predicate
{
field = IpBlock.Fields.CriteriaType,
@operator = PredicateOperator.EQUALS,
values = new string[] { "IP_BLOCK" }
}
}
});
// Display the results.
if (page != null && page.entries != null)
{
int i = offset;
foreach (var item in page.entries)
{
var t = item; //my work logic here ....
i++;
}
}
offset += pageSize;
} while (offset < page.totalNumEntries);
Debug.WriteLine("Number of items found: {0}", page.totalNumEntries);
}
catch (Exception e)
{
throw new System.ApplicationException("Failed to retrieve campaigns", e);
}https://stackoverflow.com/questions/32647758
复制相似问题