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

1 回复

更多关于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,
		)
	}
}

注意事项

  1. 认证信息:需要从Google Cloud Console获取OAuth2客户端ID和密钥,并生成刷新令牌。

  2. 开发者令牌:必须向Google申请AdWords API开发者令牌。

  3. 速率限制:AdWords API有严格的速率限制,需要合理控制请求频率。

  4. 错误处理:API调用可能会因各种原因失败,建议实现重试逻辑。

  5. 替代方案:Google现在推荐使用官方Google Ads API,gads库可能不会持续更新。

  6. 测试环境:建议先在沙盒环境中测试代码,避免影响生产账户。

总结

gads库为Golang开发者提供了访问Google AdWords API的便捷方式,虽然它是非官方库,但对于需要快速集成AdWords功能的项目来说仍然是一个不错的选择。使用时需要注意认证配置和API限制,并考虑未来迁移到官方Google Ads API的可能性。

回到顶部