การกำหนดค่า

ไลบรารีของไคลเอ็นต์ 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

สุดท้าย ให้รวมไฟล์การกำหนดค่าใหม่ในโครงการของคุณ เปลี่ยนพร็อพเพอร์ตี้ของไฟล์นี้เป็น Only copy to exit folder

ตอนนี้สร้างและเรียกใช้โปรเจ็กต์ แอปพลิเคชันจะเริ่มเก็บค่า จากไฟล์การกำหนดค่าใหม่

การกำหนดค่าโดยใช้ไฟล์ 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 MB
  • MaxMetadataSizeInBytes: ใช้การตั้งค่านี้เพื่อเพิ่มขนาดสูงสุดของการตอบกลับข้อผิดพลาด API ที่ไลบรารีของไคลเอ็นต์จัดการได้ ค่าเริ่มต้นคือ 16 MB

ปรับการตั้งค่า MaxReceiveMessageLengthInBytes และ MaxMetadataSizeInBytes เพื่อแก้ไขข้อผิดพลาด ResourceExhausted บางอย่าง การตั้งค่าเหล่านี้แก้ไขข้อผิดพลาดของฟอร์ม Status(StatusCode="ResourceExhausted",Detail="Received message larger than max (423184132 versus 67108864)"

ในตัวอย่างนี้ ข้อผิดพลาดเกิดจากขนาดข้อความ (423184132 bytes) ใหญ่กว่าที่ไลบรารีจะจัดการได้ (67108864 bytes) เพิ่ม MaxReceiveMessageLengthInBytes เป็น 500000000 เพื่อหลีกเลี่ยงข้อผิดพลาดนี้

โปรดทราบว่าข้อผิดพลาดยังระบุว่าโค้ดของคุณจัดการกับออบเจ็กต์การตอบกลับที่มีขนาดใหญ่มาก (เช่น SearchGoogleAdsResponse ขนาดใหญ่) ซึ่งอาจมีผลกระทบต่อประสิทธิภาพสำหรับโค้ดของคุณเนื่องจากฮีปของออบเจ็กต์ขนาดใหญ่ของ .NET หากเรื่องนี้กลายเป็นข้อกังวลด้านประสิทธิภาพ คุณอาจต้องหาวิธีจัดระเบียบการเรียก API หรือออกแบบส่วนต่างๆ ของแอปใหม่

การตั้งค่า OAuth2

เมื่อใช้ OAuth2 เพื่อให้สิทธิ์การเรียกใช้กับเซิร์ฟเวอร์ Google Ads API คุณควรตั้งค่าคีย์การกำหนดค่าต่อไปนี้

  • AuthorizationMethod: ตั้งค่าเป็น OAuth2
  • OAuth2Mode: ตั้งค่าเป็น APPLICATION หรือ SERVICE_ACCOUNT
  • OAuth2ClientId: ตั้งค่านี้เป็นรหัสไคลเอ็นต์ OAuth2
  • OAuth2ClientSecret: ตั้งค่านี้เป็นรหัสไคลเอ็นต์ OAuth2 ของคุณ
  • OAuth2Scope: ตั้งค่านี้เป็นขอบเขตอื่นหากคุณต้องการให้สิทธิ์โทเค็น OAuth2 สำหรับ API หลายรายการ การตั้งค่านี้เป็นตัวเลือกที่ไม่บังคับ

หากใช้ OAuth2Mode == APPLICATION อยู่ คุณจะต้องตั้งค่าคีย์การกำหนดค่าเพิ่มเติมต่อไปนี้

  • OAuth2RefreshToken: ตั้งค่านี้เป็นโทเค็นการรีเฟรช OAuth2 ที่สร้างไว้ล่วงหน้า หากต้องการใช้โทเค็น OAuth2 ซ้ำ การตั้งค่านี้เป็นตัวเลือกที่ไม่บังคับ
  • OAuth2RedirectUri: ตั้งค่านี้เป็น URL เปลี่ยนเส้นทาง OAuth2 การตั้งค่านี้จะไม่บังคับ

ดูคำแนะนำต่อไปนี้สำหรับรายละเอียดเพิ่มเติม

หากใช้ OAuth2Mode == SERVICE_ACCOUNT คุณจะต้องตั้งค่าคีย์การกำหนดค่าเพิ่มเติมต่อไปนี้

  • OAuth2PrnEmail: ตั้งค่านี้เป็นอีเมลของบัญชีที่คุณแอบอ้างเป็นบุคคลอื่น
  • OAuth2SecretsJsonPath: ตั้งค่านี้เป็นเส้นทางไฟล์การกำหนดค่า OAuth2 JSON

โปรดดูรายละเอียดเพิ่มเติมในคู่มือขั้นตอนของบัญชีบริการ OAuth

การตั้งค่าการขนส่ง

  • UseGrpcCore: กำหนดการตั้งค่านี้เป็น true เพื่อใช้ไลบรารี Grpc.Core เป็นเลเยอร์การรับส่งข้อมูลพื้นฐาน ดูรายละเอียดเพิ่มเติมได้ที่คู่มือการสนับสนุน gRPC

การตั้งค่า Google Ads API

การตั้งค่าต่อไปนี้มีไว้สำหรับ Google Ads API โดยเฉพาะ

  • DeveloperToken: ตั้งค่านี้เป็นโทเค็นของนักพัฒนาของคุณ
  • LoginCustomerId: นี่คือรหัสลูกค้าของลูกค้าที่ได้รับสิทธิ์ให้ใช้ในคำขอ โดยไม่มีขีดกลาง (-)
  • LinkedCustomerId: ส่วนหัวนี้จำเป็นสำหรับวิธีการอัปเดตทรัพยากรของเอนทิตีเมื่อได้รับสิทธิ์ผ่านบัญชีที่ลิงก์ใน UI ของ Google Ads (ทรัพยากร AccountLink ใน Google Ads API) เท่านั้น ตั้งค่านี้เป็นรหัสลูกค้าของผู้ให้บริการข้อมูลที่อัปเดตทรัพยากรของรหัสลูกค้าที่ระบุ ควรตั้งค่าโดยไม่มีขีดกลาง (-) ดูข้อมูลเพิ่มเติมเกี่ยวกับบัญชีที่ลิงก์