golang Google Adwords非官方API接口插件库gads的使用
golang Google Adwords非官方API接口插件库gads的使用
简介
gads包提供了对Google Adwords SOAP API的封装。
安装
go get github.com/emiddleton/gads
设置
要访问API,您需要注册一个MMC账户,获取开发者令牌并设置认证。在setup_oauth2目录中有一个工具可以帮助您设置配置文件。
使用示例
该包由用于操作各种Adwords结构的服务组成。要访问服务,您需要创建一个gads.Auth并将其传递给服务初始化器,然后可以在服务对象上调用服务方法。
package main
import (
"context"
"fmt"
"github.com/emiddleton/gads"
)
func main() {
// 初始化认证配置
authConf, err := NewCredentials(context.TODO())
if err != nil {
fmt.Printf("认证配置错误: %v\n", err)
return
}
// 创建Campaign服务
campaignService := gads.NewCampaignService(&authConf.Auth)
// 获取广告系列列表
campaigns, totalCount, err := campaignService.Get(
gads.Selector{
Fields: []string{
"Id",
"Name",
"Status",
},
},
)
if err != nil {
fmt.Printf("获取广告系列错误: %v\n", err)
return
}
// 打印结果
fmt.Printf("共找到 %d 个广告系列:\n", totalCount)
for _, campaign := range campaigns {
fmt.Printf("ID: %d, 名称: %s, 状态: %s\n",
campaign.Id,
campaign.Name,
campaign.Status)
}
}
注意事项
请注意:这个包是一个正在进行的工作,可能会偶尔进行不向后兼容的更改。
关于
Gads由Edward Middleton开发。
更多关于golang Google Adwords非官方API接口插件库gads的使用的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于golang Google Adwords非官方API接口插件库gads的使用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
使用gads库访问Google AdWords非官方API
gads是一个非官方的Golang库,用于访问Google AdWords API。虽然Google现在主要推广其官方Google Ads API,但gads仍然可以用于一些遗留系统的集成。
安装gads库
首先需要安装gads库:
go get github.com/emiddleton/gads
基本使用示例
1. 初始化认证
package main
import (
"fmt"
"log"
"os"
"github.com/emiddleton/gads"
)
func main() {
// 从环境变量获取认证信息
developerToken := os.Getenv("ADWORDS_DEVELOPER_TOKEN")
clientId := os.Getenv("ADWORDS_CLIENT_ID")
clientSecret := os.Getenv("ADWORDS_CLIENT_SECRET")
refreshToken := os.Getenv("ADWORDS_REFRESH_TOKEN")
// 创建认证配置
authConfig := &gads.AuthConfig{
ClientId: clientId,
ClientSecret: clientSecret,
RefreshToken: refreshToken,
DeveloperToken: developerToken,
}
// 创建AdWords服务
adWordsService, err := gads.NewAdWordsClient(authConfig)
if err != nil {
log.Fatalf("创建AdWords客户端失败: %v", err)
}
// 现在可以使用adWordsService进行API调用
}
2. 获取广告系列列表
func listCampaigns(adWordsService *gads.AdWordsClient) {
// 创建CampaignService
campaignService := adWordsService.CampaignService()
// 设置选择器
selector := gads.Selector{
Fields: []string{
"Id",
"Name",
"Status",
"Amount",
"BudgetId",
},
}
// 获取广告系列
campaigns, err := campaignService.Get(selector)
if err != nil {
log.Fatalf("获取广告系列失败: %v", err)
}
// 打印结果
fmt.Println("广告系列列表:")
for _, campaign := range campaigns {
fmt.Printf("ID: %d, 名称: %s, 状态: %s\n",
campaign.Id,
campaign.Name,
campaign.Status,
)
}
}
3. 创建新广告系列
func createCampaign(adWordsService *gads.AdWordsClient) {
campaignService := adWordsService.CampaignService()
newCampaign := gads.Campaign{
Name: "测试广告系列_" + time.Now().Format("20060102150405"),
Status: "PAUSED",
Budget: &gads.Budget{
Amount: 50000000, // 50美元(单位是百万分之一货币单位)
DeliveryMethod: "STANDARD",
},
AdvertisingChannelType: "SEARCH",
}
campaigns, err := campaignService.Mutate(
gads.CampaignOperations{
"ADD": []gads.Campaign{newCampaign},
},
)
if err != nil {
log.Fatalf("创建广告系列失败: %v", err)
}
fmt.Printf("成功创建广告系列,ID: %d\n", campaigns[0].Id)
}
4. 获取广告组
func listAdGroups(adWordsService *gads.AdWordsClient, campaignId int64) {
adGroupService := adWordsService.AdGroupService()
selector := gads.Selector{
Fields: []string{
"Id",
"Name",
"Status",
"CampaignId",
},
Predicates: []gads.Predicate{
{
Field: "CampaignId",
Operator: "EQUALS",
Values: []string{fmt.Sprintf("%d", campaignId)},
},
},
}
adGroups, err := adGroupService.Get(selector)
if err != nil {
log.Fatalf("获取广告组失败: %v", err)
}
fmt.Println("广告组列表:")
for _, adGroup := range adGroups {
fmt.Printf("ID: %d, 名称: %s, 状态: %s\n",
adGroup.Id,
adGroup.Name,
adGroup.Status,
)
}
}
注意事项
-
认证信息:需要从Google Cloud Console获取OAuth2客户端ID和密钥,并生成刷新令牌。
-
开发者令牌:必须向Google申请AdWords API开发者令牌。
-
速率限制:AdWords API有严格的速率限制,需要合理控制请求频率。
-
错误处理:API调用可能会因各种原因失败,建议实现重试逻辑。
-
替代方案:Google现在推荐使用官方Google Ads API,gads库可能不会持续更新。
-
测试环境:建议先在沙盒环境中测试代码,避免影响生产账户。
总结
gads库为Golang开发者提供了访问Google AdWords API的便捷方式,虽然它是非官方库,但对于需要快速集成AdWords功能的项目来说仍然是一个不错的选择。使用时需要注意认证配置和API限制,并考虑未来迁移到官方Google Ads API的可能性。