ไลบรารีของไคลเอ็นต์ Google Ads API มีการตั้งค่าการกําหนดค่าหลายรายการที่คุณสามารถใช้เพื่อปรับแต่งลักษณะการทํางานของไลบรารี
กำหนดค่าไลบรารีที่รันไทม์
วิธีกำหนดค่าไลบรารีของไคลเอ็นต์ที่แนะนำคือการเริ่มต้นค่าออบเจ็กต์ GoogleAdsConfig
ขณะรันไทม์ โดยทำดังนี้
GoogleAdsConfig config = new GoogleAdsConfig()
{
DeveloperToken = "******",
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "******.apps.googleusercontent.com",
OAuth2ClientSecret = "******",
OAuth2RefreshToken = "******"
};
GoogleAdsClient client = new GoogleAdsClient(config);
ตัวเลือกการกำหนดค่าอื่นๆ
นอกจากนี้ เรายังมีตัวเลือกเพิ่มเติมในการกําหนดค่าคลังไลบรารีไคลเอ็นต์ด้วย โดยให้เพิ่มการอ้างอิง Nuget ไปยังGoogle.Ads.GoogleAds.Extensions
แพ็กเกจในโปรเจ็กต์เพื่อเปิดใช้
หากใช้ตัวเลือกใดตัวเลือกหนึ่งเหล่านี้ ระบบจะไม่รับการตั้งค่าการกําหนดค่าโดยอัตโนมัติ คุณควรโหลดการตั้งค่าดังกล่าวอย่างชัดเจนตามที่แสดงด้านล่าง
กำหนดค่าโดยใช้ App.config
การตั้งค่าทั้งหมดสำหรับ Google Ads API
จะจัดเก็บไว้ในโหนด GoogleAdsApi
ของไฟล์ App.config
การกำหนดค่า App.config
ทั่วไปมีดังนี้
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler" />
</configSections>
<GoogleAdsApi>
<!-- Set the service timeout in milliseconds. -->
<add key="Timeout" value="2000" />
<!-- Proxy settings for library. -->
<add key="ProxyServer" value="http://localhost:8888"/>
<add key="ProxyUser" value=""/>
<add key="ProxyPassword" value=""/>
<add key="ProxyDomain" value=""/>
<!-- API-specific settings -->
<add key="DeveloperToken" value="******"/>
<!-- OAuth2 settings -->
<add key = "OAuth2Mode" value="APPLICATION"/>
<add key = "OAuth2ClientId" value = "******.apps.googleusercontent.com" />
<add key = "OAuth2ClientSecret" value = "******" />
<add key = "OAuth2RefreshToken" value = "******" />
</GoogleAdsApi>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
หากต้องการโหลดการตั้งค่าการกําหนดค่าจากไฟล์ App.config
ให้เรียกใช้เมธอด LoadFromDefaultAppConfigSection
ในออบเจ็กต์ GoogleAdsConfig
ดังนี้
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromDefaultAppConfigSection();
GoogleAdsClient client = new GoogleAdsClient(config);
ระบุไฟล์ App.config แยกต่างหาก
หากไม่ต้องการให้ App.config
รกเกินไป คุณสามารถย้ายการกำหนดค่าเฉพาะไลบรารีไปยังไฟล์การกำหนดค่าของไลบรารีนั้นๆ ได้โดยใช้พร็อพเพอร์ตี้ configSource
ขั้นตอนที่ 1: ระบุ configSource ใน App.config
แก้ไข App.config
ให้มีลักษณะดังนี้
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="GoogleAdsApi" type="System.Configuration.DictionarySectionHandler"/>
</configSections>
<GoogleAdsApi configSource="GoogleAdsApi.config"/>
...
</configuration>
ขั้นตอนที่ 2: ระบุเนื้อหาของไฟล์การกําหนดค่า
ตอนนี้ให้สร้างไฟล์การกําหนดค่าอีกไฟล์หนึ่งโดยใช้ชื่อที่คุณระบุใน configSource
แล้วย้ายโหนดการกําหนดค่าจาก App.config
ไปยังไฟล์นี้
<?xml version="1.0" encoding="utf-8" ?>
<GoogleAdsApi>
... More settings.
</GoogleAdsApi>
ขั้นตอนที่ 3: แก้ไขกฎการสร้างใน csproj
สุดท้าย ให้รวมไฟล์การกําหนดค่าใหม่ไว้ในโปรเจ็กต์ เปลี่ยนพร็อพเพอร์ตี้ของไฟล์นี้เป็นคัดลอกไปยังโฟลเดอร์เอาต์พุตเสมอ
จากนั้นสร้างและเรียกใช้โปรเจ็กต์ แอปพลิเคชันจะเริ่มรับค่าจากไฟล์การกําหนดค่าใหม่
การกําหนดค่าโดยใช้ไฟล์ JSON ที่กําหนดเอง
คุณสามารถใช้อินสแตนซ์ IConfigurationRoot
เพื่อกําหนดค่าไลบรารีไคลเอ็นต์ได้
สร้างไฟล์ JSON
สร้างไฟล์ JSON ชื่อ GoogleAdsApi.json
ที่มีโครงสร้างคล้ายกับไฟล์ App.config
{
"Timeout": "2000",
"ProxyServer": "http://localhost:8888",
"ProxyUser": "",
"ProxyPassword": "",
"ProxyDomain": "",
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
}
โหลดการกําหนดค่า
จากนั้นโหลดไฟล์ JSON ลงใน IConfigurationRoot
ConfigurationBuilder builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("GoogleAdsApi.json");
IConfigurationRoot configRoot = builder.Build();
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationRoot(configRoot);
GoogleAdsClient client = new GoogleAdsClient(config);
การกําหนดค่าโดยใช้ settings.json
ขั้นตอนนี้คล้ายกับการใช้ JSON ที่กําหนดเอง ยกเว้นว่าคีย์ควรอยู่ในส่วนที่ชื่อ GoogleAdsApi
{
"GoogleAdsApi":
{
"DeveloperToken": "******",
"OAuth2Mode": "APPLICATION",
"OAuth2ClientId": "******.apps.googleusercontent.com",
"OAuth2ClientSecret": "******",
"OAuth2RefreshToken": "******",
...
}
// More settings...
}
จากนั้น คุณจะใช้อินสแตนซ์ IConfiguration
ในหน้าเว็บได้โดยทำดังนี้
IConfigurationSection section = Configuration.GetSection("GoogleAdsApi");
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromConfigurationSection(section);
GoogleAdsClient client = new GoogleAdsClient(config);
การกําหนดค่าโดยใช้ตัวแปรสภาพแวดล้อม
คุณยังเริ่มต้น GoogleAdsClient
โดยใช้ตัวแปรสภาพแวดล้อมได้ด้วย โดยทำดังนี้
GoogleAdsConfig config = new GoogleAdsConfig();
config.LoadFromEnvironmentVariables();
GoogleAdsClient client = new GoogleAdsClient(config);
ดูรายการตัวแปรสภาพแวดล้อมทั้งหมดที่รองรับ
ฟิลด์การกําหนดค่า
ต่อไปนี้เป็นรายการการตั้งค่าที่ไลบรารี .NET ของ Google Ads รองรับ
การตั้งค่าการเชื่อมต่อ
Timeout
: ใช้คีย์นี้เพื่อตั้งค่าการหมดเวลาของบริการเป็นมิลลิวินาที ระบบจะตั้งค่าเริ่มต้นตามการตั้งค่าmethod_config/timeout
ใน googleads_grpc_service_config.json ตั้งค่าให้ต่ำลงหากต้องการจำกัดเวลาสูงสุดในการเรียก API ให้สั้นลง คุณสามารถตั้งค่าการหมดเวลาเป็น 2 ชั่วโมงขึ้นไปได้ แต่ API อาจยังคงหมดเวลาสำหรับคำขอที่ใช้เวลานานมากและแสดงข้อผิดพลาดDEADLINE_EXCEEDED
ProxyServer
: ตั้งค่านี้เป็น URL ของพร็อกซีเซิร์ฟเวอร์ HTTP หากคุณใช้พร็อกซีเพื่อเชื่อมต่ออินเทอร์เน็ตProxyUser
: ตั้งค่านี้เป็นชื่อผู้ใช้ที่คุณต้องการใช้ตรวจสอบสิทธิ์กับพร็อกซีเซิร์ฟเวอร์ เว้นว่างไว้หากไม่จําเป็นต้องใช้ชื่อผู้ใช้ProxyPassword
: ตั้งค่านี้เป็นรหัสผ่านของProxyUser
หากคุณตั้งค่าให้กับProxyUser
ProxyDomain
: ตั้งค่านี้เป็นโดเมนสำหรับProxyUser
หากพร็อกซีเซิร์ฟเวอร์กำหนดให้ต้องตั้งค่าMaxReceiveMessageLengthInBytes
: ใช้การตั้งค่านี้เพื่อเพิ่มขนาดสูงสุดของคําตอบ API ที่ไลบรารีของไคลเอ็นต์จัดการได้ ค่าเริ่มต้นคือ 64 MBMaxMetadataSizeInBytes
: ใช้การตั้งค่านี้เพื่อเพิ่มขนาดสูงสุดของคำตอบข้อผิดพลาดของ API ที่ไลบรารีของไคลเอ็นต์จัดการได้ ค่าเริ่มต้นคือ 16 MB
ปรับการตั้งค่า
MaxReceiveMessageLengthInBytes
และMaxMetadataSizeInBytes
เพื่อแก้ไขข้อผิดพลาดบางอย่างของResourceExhausted
การตั้งค่าเหล่านี้จะแก้ไขข้อผิดพลาดในรูปแบบStatus(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"
ในตัวอย่างนี้ ข้อผิดพลาดเกิดจากขนาดข้อความ (
423184132 bytes
) ใหญ่กว่าที่ไลบรารีจัดการได้ (67108864 bytes
) ให้เพิ่มMaxReceiveMessageLengthInBytes
เป็น500000000
เพื่อหลีกเลี่ยงข้อผิดพลาดนี้โปรดทราบว่าข้อผิดพลาดนี้ยังบ่งชี้ว่าโค้ดของคุณจัดการออบเจ็กต์ Response ขนาดใหญ่ (เช่น
SearchGoogleAdsResponse
ขนาดใหญ่) ซึ่งอาจส่งผลต่อประสิทธิภาพของโค้ดเนื่องจากกองออบเจ็กต์ขนาดใหญ่ของ .NET หากปัญหานี้กลายเป็นข้อกังวลด้านประสิทธิภาพ คุณอาจต้องหาวิธีจัดระเบียบการเรียก API ใหม่หรือออกแบบบางส่วนของแอปใหม่
การตั้งค่า OAuth2
เมื่อใช้ OAuth2 เพื่อให้สิทธิ์การเรียกใช้เซิร์ฟเวอร์ Google Ads API คุณควรตั้งค่าคีย์การกําหนดค่าต่อไปนี้
AuthorizationMethod
: ตั้งค่าเป็นOAuth2
OAuth2Mode
: ตั้งค่าเป็นAPPLICATION
หรือSERVICE_ACCOUNT
OAuth2ClientId
: ตั้งค่านี้เป็นรหัสไคลเอ็นต์ OAuth2OAuth2ClientSecret
: ตั้งค่านี้เป็นรหัสลับไคลเอ็นต์ OAuth2OAuth2Scope
: ตั้งค่านี้เป็นขอบเขตอื่นหากต้องการให้สิทธิ์โทเค็น OAuth2 สําหรับ API หลายรายการ การตั้งค่านี้ไม่บังคับ
หากใช้ OAuth2Mode == APPLICATION
คุณจะต้องตั้งค่าคีย์การกําหนดค่าเพิ่มเติมต่อไปนี้
OAuth2RefreshToken
: ตั้งค่านี้เป็นโทเค็นการรีเฟรช OAuth2 ที่สร้างขึ้นล่วงหน้าหากต้องการใช้โทเค็น OAuth2 ซ้ำ การตั้งค่านี้ไม่บังคับOAuth2RedirectUri
: ตั้งค่านี้เป็น URL เปลี่ยนเส้นทาง OAuth2 การตั้งค่านี้ไม่บังคับ
ดูรายละเอียดเพิ่มเติมได้ในคู่มือต่อไปนี้
หากใช้ OAuth2Mode == SERVICE_ACCOUNT
คุณจะต้องตั้งค่าคีย์การกําหนดค่าเพิ่มเติมต่อไปนี้
OAuth2PrnEmail
: ตั้งค่านี้เป็นอีเมลของบัญชีที่คุณแอบอ้างเป็นOAuth2SecretsJsonPath
: กําหนดค่านี้เป็นเส้นทางไฟล์การกําหนดค่า JSON ของ OAuth2
ดูรายละเอียดเพิ่มเติมได้ในคู่มือขั้นตอนการตั้งค่าบัญชีบริการ OAuth
การตั้งค่าการขนส่ง
UseGrpcCore
: ตั้งค่านี้เป็นtrue
เพื่อใช้ไลบรารีGrpc.Core
เป็นเลเยอร์การขนส่งพื้นฐาน ดูหัวข้อใช้ไลบรารี Grpc รุ่นเดิม
การตั้งค่า Google Ads API
การตั้งค่าต่อไปนี้มีไว้สำหรับ Google Ads API โดยเฉพาะ
DeveloperToken
: ตั้งค่านี้เป็นโทเค็นของนักพัฒนาซอฟต์แวร์LoginCustomerId
: รหัสลูกค้าที่ได้รับอนุญาตให้ใช้ในคำขอ โดยไม่มีขีดกลาง (-
)LinkedCustomerId
: ส่วนหัวนี้จําเป็นสําหรับเมธอดที่อัปเดตแหล่งข้อมูลของเอนทิตีเมื่อได้รับสิทธิ์ผ่านบัญชีที่ลิงก์ใน UI ของ Google Ads เท่านั้น (แหล่งข้อมูลAccountLink
ใน Google Ads API) ตั้งค่านี้เป็นรหัสลูกค้าของผู้ให้บริการข้อมูลที่จะอัปเดตทรัพยากรของรหัสลูกค้าที่ระบุ โดยควรตั้งค่าโดยไม่มีขีดกลาง (-
) ดูข้อมูลเพิ่มเติมเกี่ยวกับบัญชีที่ลิงก์