หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
หากคุณต้องการเข้าถึงบัญชีผู้ใช้บัญชีเดียว ทุกอย่างจะเริ่มต้นด้วยวัตถุ AdsApp
How do I เข้าถึงเอนทิตีในบัญชีของฉันได้อย่างไร
ใช้เพื่อ AdsApp เข้าถึงเอนทิตีทั้งหมดในบัญชี วัตถุจะมีวิธีการเลือกสําหรับเอนทิตีแต่ละชนิด (ตัวอย่างเช่น แคมเปญ กลุ่มโฆษณา และคําสําคัญ) วิธีการเลือกส่งกลับเอนทิตีทั้งหมดสําหรับชนิดเอนทิตีนั้น ตัวอย่างเช่น เมื่อต้องการรับกลุ่มโฆษณาทั้งหมดในบัญชี ให้เรียกใช้เม adGroups() ธอด
var iterator = AdsApp.adGroups().get();
แต่ถ้าฉันต้องการเอนทิตีเฉพาะหรือชุดย่อยของเอนทิตีล่ะ
ตัวเลือกมีวิธีต่างๆ ในการกรองรายการเอนทิตี คุณสามารถใช้วิธีการของ withIds() ตัวเลือกเพื่อรับเอนทิตีที่ระบุตาม ID หรือคุณสามารถใช้ withCondition() เพื่อระบุเกณฑ์การเลือกสําหรับการเลือกเอนทิตี ตัวเลือกสําหรับชนิดเอนทิตีทั้งหมด ยกเว้นรายการคําสําคัญเชิงลบ จะมีความสามารถในการกรองรายการเอนทิตี
ใช้สัญกรณ์ของจุดเพื่อรวมตัวกรองหลายตัวเข้าด้วยกัน ถ้าคุณระบุตัวกรองหลายตัว ตัวกรองเหล่านั้นจะถือว่าเป็นการดําเนินการ AND โดยตัวเลือกจะส่งกลับเฉพาะเอนทิตีที่ตรงกับเงื่อนไขทั้งหมดเท่านั้น
เมื่อต้องการรับกลุ่มโฆษณาทั้งหมดในแคมเปญ ให้ใช้วิธีการ withCondition() ระบุชื่อของแคมเปญ
var campaignName = 'My Campaign';
var iterator = AdsApp.adGroups()
.withCondition(`CampaignName = '${campaignName}'`)
.get();
สําหรับรายการเงื่อนไขและตัวดําเนินการที่คุณสามารถใช้เพื่อกรองรายการของเอนทิตี ให้ดูวิธีการของ withCondition() ตัวเลือก ตัวอย่างเช่น สําหรับรายการเงื่อนไขของกลุ่มโฆษณา ให้ดูวิธีการ withCondition ของตัวเลือกกลุ่มโฆษณา
หากต้องการรับกลุ่มโฆษณาตาม ID ให้ใช้ withIds() วิธีการระบุกลุ่มโฆษณาที่จะได้รับ
var ids = ["123456789"];
var iterator = AdsApp.adGroups()
.withIds(ids)
.get();
หรือคุณสามารถรับกลุ่มโฆษณาตามชื่อได้
var campaignName = 'My Campaign';
var adGroupName = 'My AdGroup';
var iterator = AdsApp.adGroups()
.withCondition(`CampaignName = '${campaignName}'`)
.withCondition(`Name = '${adGroupName}'`)
.get();
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือก ให้ดูตัวเลือกคืออะไร
How do I ใช้ตัวเลือกเพื่อวนซ้ําผ่านรายการเอนทิตีที่กรองแล้วได้อย่างไร
คุณไม่ทําเช่นนั้น ตัวเลือกแค่กําหนดเอนทิตีที่คุณต้องการรับ เมื่อต้องการรับเอนทิตีจริงๆ คุณต้องใช้ตัววนซ้ํา เมื่อต้องการรับตัวทําซ้ํา ให้คุณเรียกใช้วิธีการของ get() ตัวเลือก
var ids = ["123456789"];
var iterator = AdsApp.adGroups()
.withIds(ids)
.get();
ใช้การวนรอบ While อย่างง่ายเพื่อทําซ้ํารายการของเอนทิตี
while (iterator.hasNext()) {
var adGroup = iterator.next();
// Do something with the entity
}
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับตัววนซ้ํา ให้ดูที่ ตัว วนซ้ําคืออะไร
How do I รับข้อมูลประสิทธิภาพสําหรับเอนทิตีได้อย่างไร
เอนทิตีส่วนใหญ่ให้คุณร้องขอข้อมูลประสิทธิภาพได้ ถ้ามี แต่ก่อนอื่น คุณต้องบอกสคริปต์ถึงช่วงวันที่สําหรับข้อมูลประสิทธิภาพเมื่อคุณระบุตัวเลือก เมื่อต้องการระบุช่วงวันที่ ให้ใช้สัญพจน์ที่กําหนดไว้ล่วงหน้า เช่น เมื่อวานนี้ หรือ LAST_MONTH หรือใช้วันที่เริ่มต้นและสิ้นสุด สําหรับข้อมูลเพิ่มเติม ให้ดู forDateRange(สตริง dateRange) และ forDateRange(วัตถุ dateFrom, วัตถุ dateTo)
var campaignName = 'My Campaign';
var adGroupName = 'My AdGroup';
var iterator = AdsApp.adGroups()
.forDateRange('LAST_30_DAYS')
.withCondition(`CampaignName = '${campaignName}'`)
.withCondition(`Name = '${adGroupName}'`)
.get();
while (iterator.hasNext()) {
var adGroup = iterator.next();
var stats = adGroup.getStats();
}
นอกจากนี้ คุณยังต้องระบุช่วงวันที่ถ้าคุณระบุคอลัมน์ข้อมูลประสิทธิภาพการทํางานในวิธีการของ withCondition() ตัวเลือก ตัวอย่างเช่น หากคุณต้องการเฉพาะกลุ่มโฆษณาที่มี CTR มากกว่า .22 เปอร์เซ็นต์ คุณต้องระบุช่วงวันที่
var startDate = {year: 2018, month: 6, day: 3};
var endDate = {year: 2018, month: 6, day: 13};
var iterator = AdsApp.adGroups()
.forDateRange(startDate, endDate)
.withCondition("Ctr > 0.22")
.get();
How do I เพิ่มเอนทิตี
เมื่อต้องการเพิ่มเอนทิตี คุณต้องใช้วัตถุตัวสร้าง เมื่อต้องการรับวัตถุตัวสร้าง ให้เรียกใช้เมธอด new* บนวัตถุแม่ที่คุณกําลังเพิ่มรายการย่อย ตัวอย่างเช่น เมื่อต้องการเพิ่มกลุ่มโฆษณาลงในแคมเปญ ให้เรียกใช้วิธีการของ newAdGroupBuilder() แคมเปญ
วัตถุตัวสร้างมีเมธอดสําหรับการตั้งค่าคุณสมบัติทั้งหมดของวัตถุที่คุณได้รับอนุญาตให้ระบุ นอกจากนี้ยังมี build() วิธีการที่คุณใช้เพื่อสร้างเอนทิตี ต่อไปนี้คือวิธีการสร้างกลุ่มโฆษณา (สําหรับข้อมูลเกี่ยวกับวิธีการรับวัตถุแคมเปญ ให้ดู รับแคมเปญตามชื่อ)
var adGroupName = "My ad group";
var endDate = {year: 2018, month: 6, day: 13};
var customParameters = {key1: 'value1', key2: 'value2', key3: 'value3'};
var adGroupOperation = campaign.newAdGroupBuilder()
.withName(adGroupName)
.withStatus('ENABLED')
.withLanguage('English')
.withBiddingStrategy('MANUAL_CPC')
.withCpc(1.2)
.withCustomParameters(customParameters)
.withEndDate(endDate)
.build();
buildเมธอดจะส่งกลับวัตถุการดําเนินการ ซึ่งคุณสามารถใช้เพื่อตรวจสอบว่าสคริปต์สร้างเอนทิตีสําเร็จหรือไม่ ต่อไปนี้แสดงรูปแบบการโทรทั่วไป เรียกใช้ getResult เมธอดก็ต่อเมื่อคุณต้องการเข้าถึงคุณสมบัติของเอนทิตีใหม่เท่านั้น
if (adGroupOperation.isSuccessful()) {
var adGroup = adGroupOperation.getResult();
}
else {
for (var error of adGroupOperation.getErrors()) {
Logger.log(`${error}\n`);
}
}
สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับตัวสร้างและข้อควรพิจารณาด้านประสิทธิภาพการทํางานเมื่อเรียกใช้วิธีการดําเนินการ ให้ดูตัว สร้างคืออะไร
How do I update an entity
หลังจากใช้วัตถุตัวสร้างเพื่อเพิ่มเอนทิตี คุณจะใช้วิธีการของเอนทิตีเพื่ออัปเดตคุณสมบัติของเอนทิตี ตัวอย่างต่อไปนี้จะอัปเดตราคาเสนอ CPC ของกลุ่มโฆษณา
var ids = ["123456789"];
var adGroups = AdsApp.adGroups()
.withIds(ids)
.get();
if (adGroups.hasNext()) {
var adGroup = adGroups.next();
adGroup.bidding().setCpc(2.5);
}
แต่ฉันจะรู้ได้อย่างไรว่าการอัปเดตได้ผล
ถ้าคุณพยายามอัปเดตคุณสมบัติที่มีค่าที่ไม่ถูกต้อง สคริปต์จะเขียนข้อผิดพลาดลงในบันทึกการเปลี่ยนแปลง แต่ไม่ส่งข้อยกเว้น ดังนั้นสคริปต์ของคุณจะยังคงดําเนินการต่อไป ไม่ได้รับคุณสมบัติหลังจากอัปเดตเพื่อตรวจสอบว่าคุณสมบัติมีค่าใหม่หรือไม่ การทําเช่นนี้จะส่งผลเสียต่อประสิทธิภาพการทํางาน
function main() {
var id = "123456789";
var bidAmount = -2.5;
var keyword = getKeyword(id);
if (keyword != null) {
keyword.bidding().setCpc(bidAmount); // Bid is not set because bid amount is not valid
}
}
function getKeyword(id) {
var keywords = AdsApp.keywords()
.withIds([id])
.get();
if (keywords.hasNext()) {
return keywords.next();
}
else {
return null;
}
}
การเขียนลงในไฟล์บันทึก
สคริปต์จะให้ไฟล์บันทึกสําหรับคุณในการเขียนข้อมูลการติดตามและการแก้จุดบกพร่อง สําหรับข้อมูล ให้ดูที่ บันทึกการเปลี่ยนแปลงและบันทึกข้อความ