如何从标准中获取 ipAddress 信息?
Posted
技术标签:
【中文标题】如何从标准中获取 ipAddress 信息?【英文标题】:how can I get ipAddress info from criterion? 【发布时间】:2015-09-18 08:50:38 【问题描述】:我正在使用 Google Adwords,目前无法获得具体信息。在我的 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 contains null)。
我能做什么?
【问题讨论】:
您好,您的问题没有解决方案,但也许您可以使用awql.me 更轻松地调试您的查询,这是一个查看 AWQL 查询结果的免费工具。有一个在线帮助和一个帮助构建查询。 感谢您的回答!我真的很感谢你的建议。目前,我已经找到了解决这个问题的方法,并且我正在开发我的另一部分。祝你工作愉快! 【参考方案1】:不幸的是,我不相信 AWQL 为被阻止 IP 的地址提供选择器。在任何情况下,您在上面使用的 AWQL 语句肯定不会提供它,它只带回 Id 字段:
String awql = "SELECT Id where IsNegative = true ORDER BY Id ASC LIMIT " + offset + "," + pageSize; try
这就是您的响应中值为 null 的原因。
我认为可能的唯一方法是使用该服务的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);
【讨论】:
以上是关于如何从标准中获取 ipAddress 信息?的主要内容,如果未能解决你的问题,请参考以下文章