Reklamy natywne

Wstęp

Z tego przewodnika dowiesz się, jak korzystać z funkcji reklam natywnych Google Ad Managera w interfejsie API. Zanim zaczniesz, upewnij się, że znasz podstawy reklam natywnych w usłudze Ad Manager.

Pobierz format reklamy natywnej

Formaty reklam natywnych są reprezentowane przez CreativeTemplate w interfejsie API Ad Managera. Aby pobrać formaty natywne ze swojej sieci, użyj komponentu CreativeTemplateService. Aby odróżnić szablony kreacji od formatów reklam natywnych, użyj pola isNativeEligible. Jeśli to pole ma wartość prawda, szablon kreacji reprezentuje format reklamy natywnej.

Java

StatementBuilder statementBuilder = new StatementBuilder()
    .where("isNativeEligible = :isNativeEligible")
    .orderBy("id DESC")
    .limit(StatementBuilder.SUGGESTED_PAGE_LIMIT)
    .withBindVariableValue("isNativeEligible", true);;

CreativeTemplatePage page = creativeTemplateService.getCreativeTemplatesByStatement(
    statementBuilder.toStatement());

Wyświetl w GitHubie

Python

query = 'WHERE isNativeEligible = :isNativeEligible'
values = [
    {'key': 'isNativeEligible',
     'value': {
         'xsi_type': 'BooleanValue',
         'value': 'true'
     }},
]
statement = ad_manager.FilterStatement(query, values)

response = creative_template_service.getCreativeTemplatesByStatement(
    statement.ToStatement())

Wyświetl w GitHubie

PHP

$pageSize = StatementBuilder::SUGGESTED_PAGE_LIMIT;
$statementBuilder = (new StatementBuilder())
    ->where('isNativeEligible = :isNativeEligible')
    ->orderBy('id ASC')
    ->limit($pageSize)
    ->withBindVariableValue('isNativeEligible', true);

$page = $creativeTemplateService->getCreativeTemplatesByStatement(
    $statementBuilder->ToStatement());

Wyświetl w GitHubie

.NET

StatementBuilder statementBuilder = new StatementBuilder()
    .Where("isNativeEligible = :isNativeEligible")
    .OrderBy("id ASC")
    .Limit(StatementBuilder.SUGGESTED_PAGE_LIMIT)
    .AddValue("isNativeEligible", true);

CreativeTemplatePage page = creativeTemplateService.getCreativeTemplatesByStatement(
      statementBuilder.ToStatement());

Wyświetl w GitHubie

Ruby

query = 'WHERE isNativeEligible = :isNativeEligible'
values = [
  {
    :key => 'isNativeEligible',
    :value => {
      :xsi_type => 'BooleanValue',
      :value => 'true'
    }
  },
]
statement = AdManagerApi::FilterStatement.new(query, values)

page = creative_template_service.get_creative_templates_by_statement(
  statement.toStatement())

Wyświetl w GitHubie

Utwórz kreację natywną

Kreacje natywne korzystają z TemplateCreatives w interfejsie API Ad Managera. Nie są oni odrębnymi podmiotami. Aby utworzyć kreacje natywne, utwórz TemplateCreative dla CreativeTemplate odpowiedniego dla kreacji natywnej. Komponenty kreacji natywnej są przechowywane w obiektach CreativeTemplateVariable.

Kreacja natywna

W przypadku kreacji natywnych użyj pikseli 1 x 1. Rozmiar renderowanej reklamy można ustawić w polu NativeStyle lub definiować za pomocą renderowania niestandardowego.

Java

// Use the system defined native app install creative template.
long nativeAppInstallTemplateId = 10004400L;

// Use 1x1 as the size for native creatives.
Size size = new Size();
size.setWidth(1);
size.setHeight(1);
size.setIsAspectRatio(false);

TemplateCreative nativeAppInstallCreative = new TemplateCreative();
nativeAppInstallCreative.setName("Native creative #" + new Random().nextInt(Integer.MAX_VALUE));
nativeAppInstallCreative.setCreativeTemplateId(nativeAppInstallTemplateId);
nativeAppInstallCreative.setSize(size);

List<BaseCreativeTemplateVariableValue> templateVariables = Lists.newArrayList();

// Set the star rating.
StringCreativeTemplateVariableValue starRatingVariableValue =
    new StringCreativeTemplateVariableValue();
starRatingVariableValue.setUniqueName("Starrating");
starRatingVariableValue.setValue("4");
templateVariables.add(starRatingVariableValue);

Wyświetl w GitHubie

Python

# Use the system defined native app install creative template.
native_app_install_template_id = '10004400'

creative = {
    'xsi_type': 'TemplateCreative',
    'name': 'Native creative',
    'creativeTemplateId': native_app_install_template_id,
    'size': {'width': 1, 'height': 1, 'isAspectRatio': false},
    'creativeTemplateVariableValues': [
        {
            'xsi_type': 'StringCreativeTemplateVariableValue',
            'uniqueName': 'Starrating',
            'value': '4'
        }
    ]
}

Wyświetl w GitHubie

PHP

// Use the system defined native app install creative template.
$nativeAppInstallTemplateId = 10004400;

// Use 1x1 as the size for native creatives.
$size = new Size();
$size->width = 1;
$size->height = 1;
$size->isAspectRatio = false;

$nativeAppInstallCreative = new TemplateCreative();
$nativeAppInstallCreative->name = 'Native creative #' . uniqid();
$nativeAppInstallCreative->creativeTemplateId = $nativeAppInstallTemplateId;
$nativeAppInstallCreative->size = $size;

$starRatingVariableValue = new StringCreativeTemplateVariableValue();
$starRatingVariableValue->uniqueName = 'Starrating';
$starRatingVariableValue->value = '4';
$nativeAppInstallCreative->creativeTemplateVariableValues[] =
    $starRatingVariableValue;

Wyświetl w GitHubie

C#

// Use the system defined native app install creative template.
long nativeAppInstallTemplateId = 10004400L;

TemplateCreative nativeAppInstallCreative = new TemplateCreative();
nativeAppInstallCreative.name =
    String.Format("Native creative #{0}", new Random().Next(int.MaxValue));
nativeAppInstallCreative.creativeTemplateId = nativeAppInstallTemplateId;

// Use 1x1 as the size for native creatives.
Size size = new Size();
size.width = 1;
size.height = 1;
size.isAspectRatio = false;
nativeAppInstallCreative.size = size;

List<BaseCreativeTemplateVariableValue> templateVariables =
    new List<BaseCreativeTemplateVariableValue>();

templateVariables.Add(new StringCreativeTemplateVariableValue() {
  uniqueName = "Starrating",
  value = "4"
});

Wyświetl w GitHubie

Ruby

# Use the system defined native app install creative template.
creative_template_id = 10004400

creative = {
    :xsi_type => 'TemplateCreative',
    :name => "Native creative %d" % Time.new.to_i,
    :creative_template_id => creative_template_id,
    :size => {:width => 1, :height => 1, :is_aspect_ratio => false}
}

starrating_variable_value = {
    :xsi_type => 'StringCreativeTemplateVariableValue',
    :unique_name => 'Starrating',
    :value => '4'
}

creative[:creative_template_variable_values] = [
    starrating_variable_value
]

Wyświetl w GitHubie

Utwórz styl natywny

Style natywne można tworzyć za pomocą NativeStyleService. Obecnie interfejs API nie sprawdza poprawności podanych przez Ciebie fragmentów kodu CSS i HTML. Podczas ustawiania informacji o kierowaniu jedyne obsługiwane pola to inventoryTargeting i customTargeting.

Java

long nativeAppInstallTemplateId = 10004400L;

// Create a native style for native app install ads.
NativeStyle nativeStyle = new NativeStyle();
nativeStyle.setName("Native style #" + new Random().nextInt(Integer.MAX_VALUE));
nativeStyle.setCreativeTemplateId(nativeAppInstallTemplateId);
nativeStyle.setSize(size);
nativeStyle.setHtmlSnippet(htmlSnippet);
nativeStyle.setCssSnippet(cssSnippet);

Wyświetl w GitHubie

Python

native_app_install_template_id = '10004400'

# Create a style for native app install ads.
native_style = {
    'name': 'Native style #%d' % uuid.uuid4(),
    'htmlSnippet': html_snippet,
    'cssSnippet': css_snippet,
    'creativeTemplateId': native_app_install_template_id,
    'size': {
        'width': width,
        'height': height,
        'isAspectRatio': False
    }
}

Wyświetl w GitHubie

PHP

$nativeAppInstallTemplateId = 10004400;

// Create a style for native app install ads.
$nativeStyle = new NativeStyle();
$nativeStyle->setName('Native style #'. uniqid());
$nativeStyle->setCreativeTemplateId($nativeAppInstallTemplateId);
$nativeStyle->setSize($size);
$nativeStyle->setHtmlSnippet($htmlSnippet);
$nativeStyle->setCssSnippet($cssSnippet);

Wyświetl w GitHubie

C#

long nativeAppInstallTemplateId = 10004400L;

// Create a style for native app install ads.
NativeStyle nativeStyle = new NativeStyle();
nativeStyle.name = string.Format("Native style #{0}", new Random().Next());
nativeStyle.creativeTemplateId = nativeAppInstallTemplateId;
nativeStyle.size = size;
nativeStyle.htmlSnippet = htmlSnippet;
nativeStyle.cssSnippet = cssSnippet;

Wyświetl w GitHubie

Ruby

native_app_install_template_id = 10004400

# Create a style for native app install ads.
native_style = {
  :name => 'Native style #%d' % (Time.new.to_f * 1000),
  :html_snippet => html_snippet,
  :css_snippet => css_snippet,
  :creative_template_id => native_app_install_template_id,
  :size => size
}

Wyświetl w GitHubie

Jeśli styl dotyczy rozmiaru elastycznego, ustaw w polu isFluid wartość „true” (prawda), a w size ustaw piksele 1 x 1.

Trafikowanie reklamy natywnej

Podczas tworzenia elementu LineItem na potrzeby reklamy natywnej CreativePlaceholder powinien ustawić typ CreativeSizeType na NATIVE oraz ustawić creativeTemplateId odpowiedni format reklamy natywnej.

Java

// Create creative placeholder size.
Size size = new Size();
size.setWidth(1);
size.setHeight(1);
size.setIsAspectRatio(false);

long nativeAppInstallTemplateId = 10004400L;

// Create the creative placeholder.
CreativePlaceholder creativePlaceholder = new CreativePlaceholder();
creativePlaceholder.setSize(size);
creativePlaceholder.setCreativeTemplateId(nativeAppInstallTemplateId);
creativePlaceholder.setCreativeSizeType(CreativeSizeType.NATIVE);

Python

native_app_install_template_id = '10004400'

# Create the creative placeholder.
creative_placeholder = {
    'size': {
        'width': '1',
        'height': '1'
    },
    'creativeTemplateId': native_app_install_template_id,
    'creativeSizeType': 'NATIVE'
}

PHP

$nativeAppInstallTemplateId = 10004400;

// Create the creative placeholder.
$creativePlaceholder = new CreativePlaceholder();
$creativePlaceholder->setSize(new Size(1, 1, false));
$creativePlaceholder->setCreativeTemplateId($nativeAppInstallTemplateId);
$creativePlaceholder->setCreativeSizeType(CreativeSizeType::NATIVE);

C#

// Create the creative placeholder size.
Size size = new Size();
size.width = 1;
size.height = 1;
size.isAspectRatio = false;

long nativeAppInstallTemplateId = 10004400L;

// Create the creative placeholder.
CreativePlaceholder creativePlaceholder = new CreativePlaceholder();
creativePlaceholder.size = size;
creativePlaceholder.creativeTemplateId = nativeAppInstallTemplateId;
creativePlaceholder.creativeSizeType = CreativeSizeType.NATIVE;

Ruby

# Create the creative placeholder.
creative_placeholder = {
    :size => {:width => 1, :height => 1, :is_aspect_ratio => false},
    :creative_template_id => 10004400,
    :creative_size_type => 'NATIVE'
}