Aracılığıyla paylaş


Reklamları yönetmek için betik örnekleri

Aşağıdaki bölümlerde, reklamlara karşı çeşitli eylemler gerçekleştiren betik örnekleri gösterilir.

Not

  • Genişletilmiş metin reklamlarınızı 1 Şubat 2023'e kadar duyarlı arama reklamlarına yükseltin. Bu tarihten sonra artık yeni reklam oluşturamayacak veya mevcut genişletilmiş metin reklamlarını düzenleyemezsiniz. Daha fazla bilgi için bkz . Duyarlı arama reklamları hakkında.
  • Mevcut genişletilmiş metin reklamları yayınlanmaya devam eder ve bu reklamların performansına ilişkin raporları görüntüleyebilirsiniz.
  • Genişletilmiş metin reklamlarınızı duraklatabilir, etkinleştirebilir veya kaldırabilirsiniz. Aksi takdirde, genişletilmiş metin reklamları ekleme veya güncelleştirme girişimleri hataya CampaignServiceAdTypeInvalid neden olur.
  • Bu değişiklik hakkında daha fazla bilgi edinin.

Reklam ekleme

Reklam eklemek için önce reklamı eklemek istediğiniz reklam grubunu alın. AdGroupSelector nesnesini kullanarak reklam grubunu seçin. yönteminin withIds kullanılması, ad grubunun adını withCondition yöntemine geçirmekten daha iyi performans sağlar.

Ardından, reklam grubunun newAd yöntemini çağırarak, reklamın özelliklerini belirtmek için kullandığınız bir oluşturucu alın. Diğer varlık türlerinden farklı olarak yöntemi, newAd oluşturmak istediğiniz reklam türü için oluşturucuyu almaya yönelik yöntemleri içeren bir AdBuilderSpace nesnesi döndürür. Bu örnekte genişletilmiş bir metin reklamı eklediği için genişletilmiş bir metin reklam oluşturucusu elde etmek için yöntemini çağırır expandedTextAdBuilder .

Genişletilmiş metin reklamlar için aşağıdaki özellikleri belirtmeniz gerekir:

  • Açıklama
  • FinalUrl
  • Başlık Bölümü1
  • Başlık Bölümü2

Bu özelliklerin birleşimi, genişletilmiş bir metin reklamını benzersiz olarak tanımlar. Diğer özellikler isteğe bağlıdır.

Oluşturucunun build yöntemini çağırmak, reklamı zaman uyumsuz olarak oluşturur; Betikler, betik sonlandırilmeden önce veya derleme işleminin yöntemlerinden birini çağırırsanız, reklamı bir noktada ekler. Bu işlem hakkında bilgi için bkz. Oluşturucu nedir?

function main() {
    var adGroupId = "AD GROUP ID GOES HERE";
    var adGroup = getAdGroup(adGroupId);

    if (adGroup != null) {

        // Get an expanded text ad builder, specify the ad's 
        // properties, and add the ad to the build queue.
        var operation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("AD COPY GOES HERE")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("AD TITLE PART 1 GOES HERE")
            .withHeadlinePart2("AD TITLE PART 2 GOES HERE")
            .build();

        if (!operation.isSuccessful()) {
            for (var error of operation.getErrors()) {
                Logger.log(error);
            }
        }
    }
    else {
        Logger.log(`Failed to get ad group, ${adGroupId}.`);
    }
}

function getAdGroup(id) {
    var adGroups = AdsApp.adGroups()
        .withIds([id])
        .get();

    if (adGroups.hasNext()) {
        return adGroups.next();
    }
    else {
        return null;
    }
}

Gerekli alanların birleşimi için aynı değerlere sahip daha önce eklenmiş bir reklam varsa, hizmet reklamı eklemez, bunun yerine daha önce eklenen reklamı ve kimliği döndürür. Ancak aynı reklamlar aynı derleme kuyruğunda işlenirse ikinci reklam CampaignServiceDuplicateAd ile başarısız olur. Örneğin, aşağıdaki örnekteki reklamlar aynı olduğundan, bunlardan biri başarısız olur.

    if (adGroup != null) {
        var adOperation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("ad copy")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("title part 1")
            .withHeadlinePart2("title part 2")
            .build();

        operations.push(adOperation);

        adOperation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("ad copy")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("title part 1")
            .withHeadlinePart2("title part 2")
            .build();

        operations.push(adOperation);
        
        for (var operation of operations) {
            if (!operation.isSuccessful()) {
                for (var error of operation.getErrors()) {
                    Logger.log(error);
                }
            }
        }
    }

Reklam alma

Hiyerarşide bulunduğunuz yere bağlı olarak reklam almak için çeşitli seçenekleriniz vardır.

Bir reklam grubundan reklam alma

Bir AdGroup nesneniz varsa, reklam grubuna ait reklamların listesini almak için nesnenin ads yöntemini çağırın. Bu örnek, gruptaki tüm reklamları alır ve yazdırır, ancak reklam listesini filtrelemek için reklam seçicinin yöntemlerini kullanabilirsiniz.

function main() {
    var adGroups = AdsApp.adGroups()
        .withIds(["AD GROUP ID GOES HERE"])
        .get();

    if (adGroups.hasNext()) {
        var adGroup = adGroups.next();

        var ads = adGroup.ads().get();
        
        while (ads.hasNext()) {
            var ad = ads.next();

            if (ad.isType().expandedTextAd()) {
                var expandedAd = ad.asType().expandedTextAd();
            }
        }
    } 
}

Kampanyadan reklam alma

Kampanya nesneniz varsa, kampanyadaki reklam gruplarına ait reklamların listesini almak için nesnenin ads yöntemini çağırın. Bu örnekte reklam seçicisinin withCondition yöntemi, reklam listesini foo adını içeren reklam gruplarındakilere göre filtrelemek için kullanılır.

function main() {
    var campaigns = AdsApp.campaigns()
        .withIds(["CAMPAIGN ID GOES HERE"])
        .get();

    while (campaigns.hasNext()) {
        var campaign = campaigns.next();

        var ads = campaign.ads()
            .withCondition("AdGroupName CONTAINS_IGNORE_CASE 'foo'")
            .get();
        
        while (ads.hasNext()) {
            var ad = ads.next();

            if (ad.isType().expandedTextAd()) {
                var expandedAd = ad.asType().expandedTextAd();
            }
        }
    } 
}

Hesaptaki tüm reklamları alma

Bir hesaptaki tüm reklamları almak için AdsApp nesnesinde yöntemini çağırınads. Reklam listesini kampanyalara, reklam gruplarına veya reklam performansına göre filtrelemek için reklam seçicinin yöntemlerini kullanabilirsiniz. Bu örnek hesaptan tüm reklamları alır.

function main() {
    var ads = AdsApp.ads().get();

    while (ads.hasNext()) {
        var ad = ads.next();

        if (ad.isType().expandedTextAd()) {
            var expandedAd = ad.asType().expandedTextAd();
        }
    }
} 

Reklamı duraklatma

Bir reklamı duraklatmak için reklamın yöntemini çağırın pause . pause yöntemi temel Ad nesnesinde olduğundan, önce türetilmiş nesneyi almanız gerekmez.

Bir reklamı etkinleştirmek veya kaldırmak istiyorsanız, reklamın enable veya remove yöntemini çağırmanız yeter. Reklamın etkin veya duraklatılmış olup olmadığını denetlemek için veya isPaused yöntemini çağırınisEnabled.

Belirli bir duruma sahip reklamlar almak için reklam seçicinin withCondition yöntemini kullanın. Örneğin, withCondition("Status = PAUSED).

function main() {
    var ads = AdsApp.ads()
        .forDateRange("LAST_WEEK")
        .withCondition("AdGroupName CONTAINS_IGNORE_CASE 'foo'")
        .withCondition('Status = ENABLED')
        .withCondition('Clicks < 5')
        .get();
 
    while (ads.hasNext()) {
        var ad = ads.next();
        ad.pause();
    }
}

Onaylanmamış reklamları alma

Onaylanmamış reklamlar alan bir örnek için bkz. Onaylanmamış reklamları bulma.